顺胜组织架构图补丁包开发

上海顺胜组织架构图v2
Chengliang 1 year ago
parent fb415853fd
commit 076f42849b

@ -24,6 +24,8 @@ public class ResourceChartPO {
private String lastName; private String lastName;
private String managerId;
private String sex; private String sex;
private Integer departmentId; private Integer departmentId;

@ -4,6 +4,7 @@ import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam;
import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.param.SearchTemplateParam;
import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.entity.searchtree.SearchTreeParams;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -179,4 +180,14 @@ public interface HrmResourceService {
Map<String, Object> chartResourceList(Integer departmentId,String versionId,String dimension); Map<String, Object> chartResourceList(Integer departmentId,String versionId,String dimension);
/**
* @Description:
* @Author: liang.cheng
* @Date: 2024/5/11 5:47 PM
* @param: [departmentId]
* @return: java.util.List<java.lang.Integer>
*/
List<Integer> getAllSubDepartment(String departmentId);
} }

@ -1,5 +1,6 @@
package com.engine.organization.service.impl; package com.engine.organization.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
@ -368,15 +369,21 @@ public class ChartServiceImpl extends Service implements ChartService {
if (isRealDimension) { if (isRealDimension) {
sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid,b."+levelFieldId+" as levelvalue from hrmresource a left join cus_fielddata b on a.id = b.id and scopeid = 3 where a.status < 4 and a.departmentid = ? "; sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid,b."+levelFieldId+" as levelvalue from hrmresource a left join cus_fielddata b on a.id = b.id and scopeid = 3 where a.status < 4 and a.departmentid = ? ";
} else { } else {
List<Integer> allSubDepartment = ServiceUtil.getService(HrmResourceServiceImpl.class, user).getAllSubDepartment(departmentId);
String join = CollectionUtil.join(allSubDepartment, ",");
sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid,c."+levelFieldId+" as levelvalue from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid " + sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear,a.managerid,c."+levelFieldId+" as levelvalue from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid " +
" left join cus_fielddata c on b.resourceid = c.id and scopeid = 3 where a.status < 4 and b.departmentid = ? "; " left join cus_fielddata c on b.resourceid = c.id and scopeid = 3 where a.status < 4 and b.departmentid in ("+join+")";
rs.executeQuery(sql);
} }
} else { } else {
sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear,a.manager from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and versionid = " + versionId; sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear,a.manager from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and versionid = " + versionId;
} }
List<ChartPO> personList = new ArrayList<>(); List<ChartPO> personList = new ArrayList<>();
rs.executeQuery(sql, departmentId); if (isRealDimension) {
rs.executeQuery(sql, departmentId);
}
while (rs.next()) { while (rs.next()) {
String managerId; String managerId;
if (isRealTime) { if (isRealTime) {
@ -393,19 +400,31 @@ public class ChartServiceImpl extends Service implements ChartService {
//Map<String, String> managerToFobjidMap = personList.stream() //Map<String, String> managerToFobjidMap = personList.stream()
// .collect(Collectors.toMap(ChartPO::getManagerId, ChartPO::getFobjid,(existingValue, newValue) -> newValue)); // .collect(Collectors.toMap(ChartPO::getManagerId, ChartPO::getFobjid,(existingValue, newValue) -> newValue));
Map<String, ChartPO> map = personList.stream()
.collect(Collectors.toMap(ChartPO::getFobjid,
chartPO -> chartPO,
(existing, replacement) -> existing));
personList = new ArrayList<>(map.values());
Map<String, String> managerToFobjidMap = personList.stream() Map<String, String> managerToFobjidMap = personList.stream()
.collect(Collectors.toMap(ChartPO::getFobjid, ChartPO::getManagerId)); .collect(Collectors.toMap(ChartPO::getFobjid, ChartPO::getManagerId));
// Map<String, String> managerToFobjidMap = personList.stream().collect(Collectors.toMap(ChartPO::getManagerId, ChartPO::getFobjid,(oldValue, newValue) -> newValue));
personList.forEach(chart -> { personList.forEach(chart -> {
String managerId = managerToFobjidMap.get(chart.getManagerId()); String fobjId = managerToFobjidMap.get(chart.getManagerId());
if (StringUtils.isNotEmpty(managerId)) { if (StringUtils.isNotEmpty(fobjId)) {
chart.setParentId(chart.getManagerId()); chart.setParentId(chart.getManagerId());
} }
}); });
dataList.addAll(personList); dataList.addAll(personList);
departmentChartPO.setFonjob(personList.size());
}
if (isRealDimension) {
departmentChartPO.setFonjob(departmentOnJob);
} }
departmentChartPO.setFonjob(departmentOnJob);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();

@ -1,5 +1,6 @@
package com.engine.organization.service.impl; package com.engine.organization.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption; import com.api.browser.bean.SearchConditionOption;
@ -52,6 +53,7 @@ import com.engine.organization.util.db.MapperProxyFactory;
import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.detach.DetachUtil;
import com.engine.organization.util.page.PageUtil; import com.engine.organization.util.page.PageUtil;
import com.engine.organization.util.tree.SearchTreeUtil; import com.engine.organization.util.tree.SearchTreeUtil;
import lombok.SneakyThrows;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.json.JSONException; import org.json.JSONException;
@ -61,6 +63,7 @@ import weaver.conn.RecordSet;
import weaver.general.StringUtil; import weaver.general.StringUtil;
import weaver.general.TimeUtil; import weaver.general.TimeUtil;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.companyvirtual.DepartmentVirtualComInfo;
import weaver.hrm.definedfield.HrmFieldManager; import weaver.hrm.definedfield.HrmFieldManager;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -69,7 +72,6 @@ import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static weaver.general.Util.getIntValue; import static weaver.general.Util.getIntValue;
@ -491,8 +493,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
} }
} }
} else { } else {
rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + List<Integer> allSubDepartment = getAllSubDepartment(String.valueOf(departmentId));
" from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and v.departmentid = ?", dimension, departmentId); String join = CollectionUtil.join(allSubDepartment, ",");
rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile,h.managerid " +
" from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and v.departmentid in ("+join+")", dimension);
while (rs.next()) { while (rs.next()) {
ResourceChartPO build = ResourceChartPO.builder() ResourceChartPO build = ResourceChartPO.builder()
.id((long) Util.getIntValue(rs.getString("id"))) .id((long) Util.getIntValue(rs.getString("id")))
@ -508,6 +512,13 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
resourceChartPOS.add(build); resourceChartPOS.add(build);
} }
resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS);
//虚拟维度去重
Map<Long, ResourceChartVO> map = resourceChartVOS.stream()
.collect(Collectors.toMap(ResourceChartVO::getId,
resourceChartVO -> resourceChartVO,
(existing, replacement) -> existing));
resourceChartVOS = new ArrayList<>(map.values());
} }
dataMap.put("columns", resourceListColumns); dataMap.put("columns", resourceListColumns);
@ -1343,4 +1354,13 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
return selectKeys; return selectKeys;
} }
@Override
public List<Integer> getAllSubDepartment(String departmentId){
DepartmentVirtualComInfo comInfo = new DepartmentVirtualComInfo();
ArrayList subList = new ArrayList();
comInfo.getAllChildDeptByDepId(subList, departmentId);
subList.add(departmentId);
return subList;
}
} }

Loading…
Cancel
Save