From b38f98693bc5a985c0853a1d72ced65f992c047e Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 3 Jul 2024 10:49:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E8=83=9Cv5.0=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/chart/ChartDepartmentModeVO.java | 2 + .../organization/entity/chart/ChartPO.java | 1 + .../service/impl/ChartServiceImpl.java | 53 +++++++++++++++---- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/com/engine/organization/entity/chart/ChartDepartmentModeVO.java b/src/com/engine/organization/entity/chart/ChartDepartmentModeVO.java index 53339d71..64222578 100644 --- a/src/com/engine/organization/entity/chart/ChartDepartmentModeVO.java +++ b/src/com/engine/organization/entity/chart/ChartDepartmentModeVO.java @@ -22,4 +22,6 @@ public class ChartDepartmentModeVO { private String leaderName; private Integer colorCheck; + + private String jobType; } diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index ce8538d5..dcd65ff8 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -53,6 +53,7 @@ public class ChartPO { private String level; + private String jobType; private String id; private String key; diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index f506ab38..7c36bb94 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -146,6 +146,7 @@ public class ChartServiceImpl extends Service implements ChartService { ChartDepartmentModeVO departmentModeVO = selectModeInfo(rs.getString("id")); topChartPO.setColorCheck(departmentModeVO.getColorCheck()); topChartPO.setFleader(departmentModeVO.getLeaderName()); + topChartPO.setJobType(departmentModeVO.getJobType()); } filterAndAddData(dataList, topChartPO, hideDepartment); //dataList.add(topChartPO); @@ -227,6 +228,7 @@ public class ChartServiceImpl extends Service implements ChartService { ChartDepartmentModeVO departmentModeVO = selectModeInfo(rs.getString("id")); chartPO.setColorCheck(departmentModeVO.getColorCheck()); chartPO.setFleader(departmentModeVO.getLeaderName()); + chartPO.setJobType(departmentModeVO.getJobType()); } } } @@ -430,8 +432,6 @@ public class ChartServiceImpl extends Service implements ChartService { (existing, replacement) -> existing)); personList = new ArrayList<>(map.values()); - Map managerToFobjidMap = personList.stream() - .collect(Collectors.toMap(ChartPO::getFobjid, ChartPO::getManagerId)); List finalPersonList = personList; personList.forEach(element -> finalPersonList.stream() @@ -439,13 +439,8 @@ public class ChartServiceImpl extends Service implements ChartService { .findFirst() .ifPresent(matched -> element.setParentId(matched.getId()))); - -// personList.forEach(chart -> { -// String fobjId = managerToFobjidMap.get(chart.getManagerId()); -// if (StringUtils.isNotEmpty(fobjId)) { -// chart.setParentId(chart.getManagerId()); -// } -// }); + personList.sort(Comparator.comparing(ChartServiceImpl::safeConvertToInteger, Comparator.nullsLast(Comparator.reverseOrder())) + .thenComparing(ChartServiceImpl::safeConvertToDouble, Comparator.nullsLast(Comparator.reverseOrder()))); dataList.addAll(personList); departmentChartPO.setFonjob(personList.size()); @@ -462,6 +457,30 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + private static Integer safeConvertToInteger(ChartPO chartPO) { + String level = chartPO.getLevel(); + if (level == null || !level.matches("-?\\d+")) { + return null; + } + try { + return Integer.parseInt(level); + } catch (NumberFormatException e) { + return null; + } + } + + private static Double safeConvertToDouble(ChartPO chartPO) { + String companyWorkYear = chartPO.getCompanyWorkYear(); + if (companyWorkYear == null) { + return null; + } + try { + return Double.parseDouble(companyWorkYear); + } catch (NumberFormatException e) { + return null; + } + } + @Override public String selectVersionDate(String id) { RecordSet rs = new RecordSet(); @@ -1619,6 +1638,7 @@ public class ChartServiceImpl extends Service implements ChartService { ChartDepartmentModeVO departmentModeVO = selectModeInfo(recordSet.getString("id")); chartPO.setColorCheck(departmentModeVO.getColorCheck()); chartPO.setFleader(departmentModeVO.getLeaderName()); + chartPO.setJobType(departmentModeVO.getJobType()); } // 小于、等于所选层级元素展开 chartPO.setExpand(inDepth(selectDepth, chartPO.getDepartmentDepth()) ? "1" : "0"); @@ -1897,16 +1917,29 @@ public class ChartServiceImpl extends Service implements ChartService { int colorCheck = 1; String leaderId = ""; String leaderName = ""; - rs.executeQuery("select bmfzrid,bjtp from uf_xnbmfzr where xnzzid = ?",departmentId); + String jobType = ""; + rs.executeQuery("select bmfzrid,bjtp,rzlx from uf_xnbmfzr where xnzzid = ?",departmentId); if (rs.next()){ colorCheck = Util.getIntValue(rs.getString("bjtp"),1); leaderId = Util.null2String(rs.getString("bmfzrid")); leaderName = com.getLastname(leaderId); + jobType = Util.null2String(rs.getString("rzlx")); + } + + + if (StringUtils.isNotEmpty(jobType)) { + String propValue = new BaseBean().getPropValue("hrmOrganization", "jobTypeField"); + rs.executeQuery("select selectname from workflow_selectitem where fieldid = ? and selectvalue = ?",propValue,jobType); + if (rs.next()) { + jobType = Util.null2String(rs.getString("selectname")); + } } + return ChartDepartmentModeVO.builder() .leaderId(leaderId) .leaderName(leaderName) .colorCheck(colorCheck) + .jobType(jobType) .build(); }