From f529143e62cbb2972dc06ea07cb68838d5cc7a8a Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 29 Jul 2024 16:06:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=AF=E6=B9=BE=E6=89=B9=E9=87=8F=E8=B0=83?= =?UTF-8?q?=E8=96=AA=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/dto/pltxEmployeeDTO.java | 7 +++++ .../impl/SalaryAcctExcelServiceImpl.java | 28 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryacct/dto/pltxEmployeeDTO.java b/src/com/engine/salary/entity/salaryacct/dto/pltxEmployeeDTO.java index 2fb7d7231..13fdcab05 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/pltxEmployeeDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/pltxEmployeeDTO.java @@ -26,6 +26,13 @@ public class pltxEmployeeDTO { private String bmName; + // 岗位信息 + private Long jobTitleId; + + // 岗位名称 + private String jobTitleName; + + // 个税扣缴义务人 private String gskjywr; diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index a1cdcabc5..51b518036 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1696,6 +1696,9 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List result = new ArrayList<>(); RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); + if (StringUtils.isBlank(param.getSxrq())) { + throw new SalaryRunTimeException("生效日期不能为空"); + } if (param.getTxcj() == 0) { // 第一层级,带出所有的被调薪人 rs.execute("select bdxr,gskjywr from uf_pltxjzgljmb "); @@ -1721,6 +1724,20 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List taxAgentEmpList = allEmps.stream().map(emp -> emp.getTaxAgentId() + "-" + emp.getEmployeeId()).collect(Collectors.toList()); List salaryArchivePOS = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().employeeIds(empIds).build()); List employeeList = getSalaryEmployeeService(user).listByIds(empIds); + // 查询这些人的去年绩效分数 + int lastYear = new Integer(param.getSxrq()) - 1; + List> partition = Lists.partition(empIds, 500); + Map lastYearJxMap = new HashMap<>(); + partition.forEach(part -> { + String empIdStr = StringUtils.join(part, ","); + rs.execute("select jxjg,ygxm from uf_jxjjmb where nd = '" + lastYear +"' and ygxm in ( "+ empIdStr + " )"); + while (rs.next()) { + double jxjg = rs.getDouble("jxjg") == -1 ? 0 : rs.getDouble("jxjg"); + int ygxm = rs.getInt("ygxm"); + lastYearJxMap.put(Long.valueOf(ygxm), jxjg); + } + }); + Map employeeMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); // 过滤薪资档案 salaryArchivePOS = salaryArchivePOS.stream().filter(po -> taxAgentEmpList.contains(po.getTaxAgentId()+"-"+po.getEmployeeId())).collect(Collectors.toList()); @@ -1740,7 +1757,11 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc .employeeName(e.getUsername()) .bmId(e.getDepartmentId()) .bmName(e.getDepartmentName()) + .jobTitleId(e.getJobtitleId()) + .jobTitleName(e.getJobtitleName()) .gskjywr(taxAgentNameMap.get(emp.getTaxAgentId())).build(); + Double lastYearJxValue = lastYearJxMap.get(emp.getEmployeeId()) == null ? new Double(0) : lastYearJxMap.get(emp.getEmployeeId()); + dto.setQnjxfs(lastYearJxValue); if (archiveId != null) { SalaryArchiveItemPO salaryArchiveItemPO = salaryArchiveItemMap.get(archiveId + "_" + salaryItemId); if (salaryArchiveItemPO != null) { @@ -1801,14 +1822,17 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc */ @Override public List pltxFilterData(PltxInitEmployeeParam param) { + BaseBean baseBean = new BaseBean(); ValidUtil.doValidator(param); RecordSet rs = new RecordSet(); List fieldList = Arrays.asList("dxyjspr", "dxejspr", "dxsajspr", "dxsijspr", "dxwjspr", "dxljspr"); List canManageList = new ArrayList<>(); + baseBean.writeLog("批量调薪过滤查看, 查看人:" + param.getSpr() + ",查看时间:" + SalaryDateUtil.getFormatLocalDate(new Date()) + ",层级:" + param.getTxcj()); if (param.getTxcj() == 0) { // 一级 rs.execute(" SELECT bdxr,gskjywr FROM uf_pltxjzgljmb where dxyjspr= " + param.getSpr()); + baseBean.writeLog("exc sql => SELECT bdxr,gskjywr FROM uf_pltxjzgljmb where dxyjspr= " + param.getSpr()); while (rs.next()) { int bdxr = rs.getInt("bdxr"); String gskjywr = rs.getString("gskjywr"); @@ -1817,14 +1841,16 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } else { buildCanManageList(param, fieldList, canManageList); } + baseBean.writeLog("批量调薪过滤查看, 结果" + canManageList.stream().map(pltxEmployeeDTO::getEmployee)); return canManageList; } private void buildCanManageList(PltxInitEmployeeParam param, List fieldList, List canManageList ) { + BaseBean baseBean = new BaseBean(); Integer txcj = param.getTxcj(); RecordSet rs = new RecordSet(); rs.execute("SELECT bdxr,gskjywr FROM uf_pltxjzgljmb where " + fieldList.get(txcj) + "=" + param.getSpr()); - + baseBean.writeLog("exc sql => SELECT bdxr,gskjywr FROM uf_pltxjzgljmb where " + fieldList.get(txcj) + "=" + param.getSpr()); // List sprList = new ArrayList<>(); // for (int i = txcj; i > 0 ; i--) {