commit
8d9802a2ca
@ -0,0 +1,144 @@
|
||||
package com.api.browser.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.api.browser.service.BrowserService;
|
||||
import com.api.browser.util.BrowserConstant;
|
||||
import com.api.hrm.bean.TreeNode;
|
||||
import com.cloudstore.eccom.result.WeaResultMsg;
|
||||
import com.engine.organization.component.OrganizationWeaTable;
|
||||
import com.engine.organization.entity.browser.bo.CusBowserTreeBO;
|
||||
import com.engine.organization.entity.browser.enums.TreeNodeTypeEnum;
|
||||
import com.engine.organization.entity.browser.po.CusBrowserTree;
|
||||
import com.engine.organization.entity.job.vo.JobBrowserVO;
|
||||
import com.engine.organization.entity.searchtree.SearchTree;
|
||||
import com.engine.organization.entity.searchtree.SearchTreeParams;
|
||||
import com.engine.organization.service.impl.JobServiceImpl;
|
||||
import com.engine.organization.util.OrganizationFormItemUtil;
|
||||
import com.engine.organization.util.db.DBType;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class JobBrowserService extends BrowserService {
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getBrowserData(Map<String, Object> params) {
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
String datatype = Util.null2String(params.get("datatype"));
|
||||
if ("tree".equals(datatype)) {
|
||||
List<TreeNode> nodeData = new ArrayList<>();
|
||||
String id = Util.null2String(params.get("id"));
|
||||
SearchTreeParams searchTreeParams = new SearchTreeParams();
|
||||
if (StringUtils.isBlank(id)) {
|
||||
Map<String, Object> searchTree = new JobServiceImpl().getSearchTree(searchTreeParams);
|
||||
Map<String, Object> datas = (Map<String, Object>) searchTree.get("datas");
|
||||
// 集团
|
||||
SearchTree rootCompany = (SearchTree) datas.get("rootCompany");
|
||||
nodeData.add(rootCompany);
|
||||
} else if ("0".equals(id)) {
|
||||
Map<String, Object> searchTree = new JobServiceImpl().getSearchTree(searchTreeParams);
|
||||
Map<String, Object> datas = (Map<String, Object>) searchTree.get("datas");
|
||||
SearchTree rootCompany = (SearchTree) datas.get("rootCompany");
|
||||
nodeData.addAll(rootCompany.getSubs());
|
||||
} else {
|
||||
String[] idArray = id.split("_");
|
||||
if (idArray.length == 2) {
|
||||
if (TreeNodeTypeEnum.TYPE_COMP.getName().equals(idArray[0])) {
|
||||
searchTreeParams.setType(TreeNodeTypeEnum.TYPE_COMP.getValue());
|
||||
} else if (TreeNodeTypeEnum.TYPE_DEPT.getName().equals(idArray[0])) {
|
||||
searchTreeParams.setType(TreeNodeTypeEnum.TYPE_DEPT.getValue());
|
||||
}
|
||||
searchTreeParams.setId(idArray[1]);
|
||||
Map<String, Object> searchTree = new JobServiceImpl().getSearchTree(searchTreeParams);
|
||||
List<TreeNode> datas = (List<TreeNode>) searchTree.get("datas");
|
||||
nodeData.addAll(datas.get(0).getSubs());
|
||||
}
|
||||
}
|
||||
List<CusBrowserTree> cusBrowserTrees = CusBowserTreeBO.convertSearchTreeToBorwserTree(nodeData);
|
||||
resultMap.put("datas", cusBrowserTrees);
|
||||
System.err.println(JSON.toJSONString(cusBrowserTrees));
|
||||
} else {
|
||||
OrganizationWeaTable<JobBrowserVO> table = new OrganizationWeaTable<>(user, JobBrowserVO.class);
|
||||
String sqlWhere = buildSqlWhere(params);
|
||||
table.setSqlwhere(sqlWhere);
|
||||
WeaResultMsg result = new WeaResultMsg(false);
|
||||
result.putAll(table.makeDataResult());
|
||||
result.success();
|
||||
resultMap.putAll(result.getResultMap());
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getBrowserConditionInfo(Map<String, Object> map) {
|
||||
Map<String, List<SearchConditionItem>> apiDatas = new HashMap<>();
|
||||
List<SearchConditionItem> conditions = new ArrayList<>();
|
||||
// 编号
|
||||
SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "jobNo");
|
||||
// 名称
|
||||
SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "jobName");
|
||||
// 所属分部
|
||||
SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "164", "ecCompany", "");
|
||||
// 所属部门
|
||||
SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "4", "ecDepartment", "");
|
||||
|
||||
conditions.add(jobNoItem);
|
||||
conditions.add(jobNameItem);
|
||||
conditions.add(parentCompBrowserItem);
|
||||
conditions.add(parentDeptBrowserItem);
|
||||
apiDatas.put(BrowserConstant.BROWSER_RESULT_CONDITIONS, conditions);
|
||||
return apiDatas;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询条件
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
private String buildSqlWhere(Map<String, Object> params) {
|
||||
DBType dbType = DBType.get(new RecordSet().getDBType());
|
||||
String sqlWhere = " where t.delete_type ='0' ";
|
||||
String jobNo = Util.null2String(params.get("jobNo"));
|
||||
if (StringUtils.isNotBlank(jobNo)) {
|
||||
sqlWhere += " AND t.job_no " + dbType.like(jobNo);
|
||||
}
|
||||
String jobName = Util.null2String(params.get("jobName"));
|
||||
if (StringUtils.isNotBlank(jobName)) {
|
||||
sqlWhere += " AND t.job_name " + dbType.like(jobName);
|
||||
}
|
||||
String ecCompany = Util.null2String(params.get("ecCompany"));
|
||||
if (StringUtils.isNotBlank(jobName)) {
|
||||
sqlWhere += " AND t.ec_company = '" + Long.parseLong(ecCompany) + "'";
|
||||
}
|
||||
String ecDepartment = Util.null2String(params.get("ecDepartment"));
|
||||
if (StringUtils.isNotBlank(jobName)) {
|
||||
sqlWhere += " AND t.ec_department = '" + Long.parseLong(ecDepartment) + "'";
|
||||
}
|
||||
String treeKey = Util.null2String(params.get("treeKey"));
|
||||
if (StringUtils.isNotBlank(treeKey)) {
|
||||
String[] keyArray = treeKey.split("_");
|
||||
if (keyArray.length == 2) {
|
||||
if (TreeNodeTypeEnum.TYPE_COMP.getName().equals(keyArray[0])) {
|
||||
sqlWhere += " AND t.parent_comp = '" + Long.parseLong(keyArray[1]) + "'";
|
||||
} else if (TreeNodeTypeEnum.TYPE_DEPT.getName().equals(keyArray[0])) {
|
||||
sqlWhere += " AND t.parent_dept = '" + Long.parseLong(keyArray[1]) + "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
return sqlWhere;
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.engine.organization.entity.browser.bo;
|
||||
|
||||
import com.api.hrm.bean.TreeNode;
|
||||
import com.engine.organization.entity.browser.enums.TreeNodeTypeEnum;
|
||||
import com.engine.organization.entity.browser.po.CusBrowserTree;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class CusBowserTreeBO {
|
||||
|
||||
/**
|
||||
* 树转换
|
||||
*
|
||||
* @param searchTree
|
||||
* @return
|
||||
*/
|
||||
public static List<CusBrowserTree> convertSearchTreeToBorwserTree(List<TreeNode> searchTree) {
|
||||
List<CusBrowserTree> collect = searchTree.stream().map(item ->
|
||||
CusBrowserTree.builder()
|
||||
.domid("sel_" + item.getId())
|
||||
.hasChild(CollectionUtils.isNotEmpty(item.getSubs()))
|
||||
.isLeaf(CollectionUtils.isEmpty(item.getSubs()))
|
||||
.isopen(false)
|
||||
.key(getKey(item))
|
||||
.name(item.getName())
|
||||
.build()).collect(Collectors.toList());
|
||||
return collect;
|
||||
}
|
||||
|
||||
private static String getKey(TreeNode treeNode) {
|
||||
if (TreeNodeTypeEnum.TYPE_COMP.getValue().equals(treeNode.getType())) {
|
||||
return TreeNodeTypeEnum.TYPE_COMP.getName() + "_" + treeNode.getId();
|
||||
} else if (TreeNodeTypeEnum.TYPE_DEPT.getValue().equals(treeNode.getType())) {
|
||||
return TreeNodeTypeEnum.TYPE_DEPT.getName() + "_" + treeNode.getId();
|
||||
}
|
||||
return treeNode.getId();
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.engine.organization.entity.browser.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum TreeNodeTypeEnum {
|
||||
TYPE_COMP("company", "1"),
|
||||
TYPE_DEPT("department", "2");
|
||||
|
||||
|
||||
private String name;
|
||||
private String value;
|
||||
|
||||
TreeNodeTypeEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.engine.organization.entity.browser.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CusBrowserTree {
|
||||
private String domid;
|
||||
private boolean hasChild;
|
||||
private boolean isLeaf;
|
||||
private boolean isopen;
|
||||
private String key;
|
||||
private String name;
|
||||
|
||||
public boolean getIsLeaf() {
|
||||
return isLeaf;
|
||||
}
|
||||
|
||||
public void setIsLeaf(boolean leaf) {
|
||||
isLeaf = leaf;
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.engine.organization.entity.job.vo;
|
||||
|
||||
import com.cloudstore.eccom.pc.table.WeaTableType;
|
||||
import com.engine.organization.annotation.OrganizationTable;
|
||||
import com.engine.organization.annotation.OrganizationTableColumn;
|
||||
import com.engine.organization.annotation.OrganizationTableOperate;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@OrganizationTable(pageId = "98e9c62f-cd12-11ec-a15f-00ffcbed7123",
|
||||
fields = "t.id," +
|
||||
"t.job_no," +
|
||||
"t.job_name as name ",
|
||||
fromSql = "FROM jcl_org_job t ",
|
||||
orderby = "job_no",
|
||||
sortway = "asc",
|
||||
primarykey = "id",
|
||||
operates = {
|
||||
@OrganizationTableOperate(index = "0", text = "编辑"),
|
||||
@OrganizationTableOperate(index = "1", text = "删除")
|
||||
},
|
||||
tableType = WeaTableType.CHECKBOX
|
||||
)
|
||||
public class JobBrowserVO {
|
||||
|
||||
@OrganizationTableColumn(column = "id", display = false)
|
||||
private Long id;
|
||||
|
||||
@OrganizationTableColumn(text = "编号", width = "25%", column = "job_no")
|
||||
private String jobNo;
|
||||
|
||||
@OrganizationTableColumn(text = "方案名称", width = "25%", column = "name")
|
||||
private String jobName;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.engine.organization.service;
|
||||
|
||||
import com.api.browser.bean.BrowserBean;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CustomBrowserBean extends BrowserBean {
|
||||
|
||||
|
||||
private String leftToSearchKey;
|
||||
private boolean hasLeftTree;
|
||||
private Map<String,Object> leftTreeParams;
|
||||
private String leftTreeUrl;
|
||||
private boolean resize;
|
||||
}
|
Loading…
Reference in New Issue