From 81e87ec9ce37340db5dc6170096c593e2ae7eb1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 20 May 2025 16:44:46 +0800 Subject: [PATCH 01/33] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=97=B6=E8=BF=87=E6=BB=A4=E7=A9=BA=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/util/excel/ExcelUtil.java | 31 ++++++++----- .../salary/util/excel/ExcelUtilPlus.java | 45 ++++++++++++------- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/src/com/engine/salary/util/excel/ExcelUtil.java b/src/com/engine/salary/util/excel/ExcelUtil.java index 5b7410994..6877e7e03 100644 --- a/src/com/engine/salary/util/excel/ExcelUtil.java +++ b/src/com/engine/salary/util/excel/ExcelUtil.java @@ -1,5 +1,6 @@ package com.engine.salary.util.excel; +import cn.hutool.core.util.StrUtil; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationLaborListDTO; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -139,8 +140,10 @@ public class ExcelUtil { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); @@ -235,8 +238,10 @@ public class ExcelUtil { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); @@ -311,8 +316,10 @@ public class ExcelUtil { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); @@ -377,8 +384,10 @@ public class ExcelUtil { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -458,8 +467,10 @@ public class ExcelUtil { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); diff --git a/src/com/engine/salary/util/excel/ExcelUtilPlus.java b/src/com/engine/salary/util/excel/ExcelUtilPlus.java index 3c86c6e95..96cff32ec 100644 --- a/src/com/engine/salary/util/excel/ExcelUtilPlus.java +++ b/src/com/engine/salary/util/excel/ExcelUtilPlus.java @@ -1,5 +1,6 @@ package com.engine.salary.util.excel; +import cn.hutool.core.util.StrUtil; import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.util.SalaryDateUtil; import org.apache.commons.collections4.CollectionUtils; @@ -191,8 +192,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { if (lastRowRed && rowIndex == rowList.size() - 1) { cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex))); @@ -200,8 +203,7 @@ public class ExcelUtilPlus { cell.setCellStyle(numberCellStyleMap.get(patternList.get(cellIndex))); } cell.setCellType(CellType.NUMERIC); - double value = o == null ? 0 : ((BigDecimal) o).doubleValue(); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -221,6 +223,7 @@ public class ExcelUtilPlus { } return workbook; } + public static XSSFWorkbook genWorkbookV2(List> rowList, String sheetName) { XSSFWorkbook workbook = new XSSFWorkbook(); @@ -281,11 +284,13 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -368,8 +373,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -477,11 +484,13 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -675,8 +684,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { if (lastRowRed && rowIndex == rowList.size() - 1) { cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex))); @@ -840,8 +851,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); From 93dc70de260efccb59b598bf662748b3f2d6838e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 26 May 2025 10:36:38 +0800 Subject: [PATCH 02/33] =?UTF-8?q?fix=E9=82=AE=E4=BB=B6=E4=B8=AD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/entity/salaryBill/bo/SalaryBillBO.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 4e219c477..5319fec42 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -267,7 +267,7 @@ public class SalaryBillBO { } Util_Message.store(messageBean); } catch (IOException e) { - log.error("消息发送失败",e); + log.error("消息发送失败", e); } } @@ -660,7 +660,7 @@ public class SalaryBillBO { emailContent.append(""); emailContent.append(""); - emailContent.append(e.get(keyName.toString())); + emailContent.append(e.getOrDefault(keyName.toString(), StringUtils.EMPTY)); emailContent.append(""); } break; @@ -740,7 +740,7 @@ public class SalaryBillBO { emailContent.append(""); emailContent.append(""); - emailContent.append(e.get(keyName.toString())); + emailContent.append(e.getOrDefault(keyName.toString(), StringUtils.EMPTY)); emailContent.append(""); } break; From d9982d2508026d5e21ff16f905de5360f9ea9908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 27 May 2025 10:46:11 +0800 Subject: [PATCH 03/33] =?UTF-8?q?fix=E9=82=AE=E4=BB=B6=E4=B8=AD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryBill/bo/SalaryBillBO.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 5319fec42..98949cee3 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -649,7 +649,8 @@ public class SalaryBillBO { } else { for (Object keyName : e.keySet()) { if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) { - boolean isHide = (isHideNull && StringUtils.isEmpty(e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString())) + String itemValue = e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString(); + boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue)) || (isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString()) && BigDecimal.ZERO.compareTo(new BigDecimal(e.getOrDefault(keyName.toString(), "0").toString())) == 0); @@ -660,7 +661,7 @@ public class SalaryBillBO { emailContent.append(""); emailContent.append(""); - emailContent.append(e.getOrDefault(keyName.toString(), StringUtils.EMPTY)); + emailContent.append(itemValue.replaceAll("null", "")); emailContent.append(""); } break; @@ -729,7 +730,8 @@ public class SalaryBillBO { SalaryTemplateSalaryItemListDTO salaryItem = itemPartition.get(i); for (Object keyName : e.keySet()) { if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) { - boolean isHide = (isHideNull && StringUtils.isEmpty(e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString())) + String itemValue = e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString(); + boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue)) || (isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString()) && BigDecimal.ZERO.compareTo(new BigDecimal(e.getOrDefault(keyName.toString(), "0").toString())) == 0); @@ -740,7 +742,7 @@ public class SalaryBillBO { emailContent.append(""); emailContent.append(""); - emailContent.append(e.getOrDefault(keyName.toString(), StringUtils.EMPTY)); + emailContent.append(itemValue.replaceAll("null", "")); emailContent.append(""); } break; From 1026ff1aae62136a5ae8c437f0b145439baeb708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 27 May 2025 15:56:33 +0800 Subject: [PATCH 04/33] =?UTF-8?q?fix=E9=82=AE=E4=BB=B6=E4=B8=AD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 98949cee3..aea5cede9 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -649,7 +649,7 @@ public class SalaryBillBO { } else { for (Object keyName : e.keySet()) { if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) { - String itemValue = e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString(); + String itemValue = Util.null2String(e.get(keyName.toString())); boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue)) || (isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString()) @@ -730,7 +730,7 @@ public class SalaryBillBO { SalaryTemplateSalaryItemListDTO salaryItem = itemPartition.get(i); for (Object keyName : e.keySet()) { if ((salaryItem.getId() + SalaryArchiveConstant.DYNAMIC_SUFFIX).equals(keyName.toString())) { - String itemValue = e.getOrDefault(keyName.toString(), StringUtils.EMPTY).toString(); + String itemValue = Util.null2String(e.get(keyName.toString())); boolean isHide = (isHideNull && StringUtils.isEmpty(itemValue)) || (isHideZero && NumberUtils.isCreatable(e.getOrDefault(keyName.toString(), "0").toString()) From 578842aa39ebee8a415e81fc9b38ae8cff5369b9 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 29 May 2025 10:39:06 +0800 Subject: [PATCH 05/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=A9=BF=E9=80=8F=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryStatisticsDataPerspectiveQueryParam.java | 3 +++ .../service/impl/SalaryStatisticsReportServiceImpl.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/com/engine/salary/report/entity/param/SalaryStatisticsDataPerspectiveQueryParam.java b/src/com/engine/salary/report/entity/param/SalaryStatisticsDataPerspectiveQueryParam.java index d0afd0c00..0d8303b72 100644 --- a/src/com/engine/salary/report/entity/param/SalaryStatisticsDataPerspectiveQueryParam.java +++ b/src/com/engine/salary/report/entity/param/SalaryStatisticsDataPerspectiveQueryParam.java @@ -45,6 +45,9 @@ public class SalaryStatisticsDataPerspectiveQueryParam extends BaseQueryParam { //个税扣缴义务人配置 private List taxAgent; + @JsonIgnore + private List salarySob; + @JsonIgnore //收入所得项目配置 private List incomeCategory; diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 2b62276cd..dbf64ecb8 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -469,12 +469,21 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary if (reportPO.getTaxAgentSetting() != null) { param.setTaxAgent(((List) JSON.parseArray(reportPO.getTaxAgentSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); } + if (reportPO.getSalarySobSetting() != null) { + param.setSalarySob(((List) JSON.parseArray(reportPO.getSalarySobSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } if (reportPO.getSubCompanySetting() != null) { param.setSubCompany(((List) JSON.parseArray(reportPO.getSubCompanySetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); } if (reportPO.getDepartSetting() != null) { param.setDepart(((List) JSON.parseArray(reportPO.getDepartSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); } + if (reportPO.getPositionSetting() != null) { + param.setPosition(((List) JSON.parseArray(reportPO.getPositionSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } + if (reportPO.getStatusSetting() != null) { + param.setStatus(((List) JSON.parseArray(reportPO.getStatusSetting(), Map.class)).stream().map(m -> m.get(key).toString()).collect(Collectors.toList())); + } if (reportPO.getEmployeeSetting() != null) { param.setEmployee(((List) JSON.parseArray(reportPO.getEmployeeSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); } From 84339ab7158b5da19db9fe22d09b05a6cb851325 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 10 Jun 2025 17:35:44 +0800 Subject: [PATCH 06/33] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=B6=851000bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SIArchivesServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index c77ff7375..a27a3487e 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -4028,7 +4028,12 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (org.apache.commons.collections.CollectionUtils.isEmpty(employeeIds)) { return Collections.emptyList(); } - return getInsuranceBaseInfoMapper().listEndDateIsNull(employeeIds); + List resultList = new ArrayList<>(); + List> partition = Lists.partition(employeeIds, 500); + partition.forEach(part -> { + resultList.addAll(getInsuranceBaseInfoMapper().listEndDateIsNull(part)); + }); + return resultList; } /** From 2c39a1fa120628613aff5fec82772daba3f70974 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 12 Jun 2025 10:25:31 +0800 Subject: [PATCH 07/33] =?UTF-8?q?toMap=E7=A9=BA=E6=8C=87=E9=92=88bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/impl/SalaryStatisticsReportServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 481d61425..a894213bb 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -508,7 +508,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary List finalSalaryAcctEmpIds = getSalaryAcctResultService(user).listAcctEmpIdByAcctEmpId(salaryAcctEmployeeIds); Map> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId); salaryAcctEmpResultMap.forEach((k, v) -> { - Map collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), SalaryAcctResultPO::getResultValue, (key1, key2) -> key2)); + Map collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), p -> Util.null2String(p.getResultValue()), (key1, key2) -> key2)); resultMap.put(k, collect); }); salaryAcctEmployeeIds.stream().forEach(id -> { From c2f2390013d51fb355c1a56cbb87534589edff22 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 16 Jun 2025 16:41:38 +0800 Subject: [PATCH 08/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=AF=BC=E5=87=BA=EF=BC=8C=E5=90=88=E8=AE=A1?= =?UTF-8?q?=E8=A1=8C=E7=BB=9F=E8=AE=A1=E6=96=87=E6=9C=AC=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 3a5efdb87..2a4bdd282 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -334,7 +334,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { sumRow.add(Util.null2String(countResult.get(weaTableColumnGroup.getColumn()))); } } else { - sumRow.add(Util.null2String(countResult.get(weaTableColumnGroup.getColumn()))); + sumRow.add(""); } } rowList.add(sumRow); From de5caded9e12b3811cada0007960ff4aaa42e91f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Jun 2025 13:32:12 +0800 Subject: [PATCH 09/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=80=A7=E5=88=AB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/datacollection/EmployMapper.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 3a2ed14af..5111bf7e1 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -11,6 +11,7 @@ e.workcode, e.certificatenum as idNo, e.accounttype as accountType, + e.sex as sex, 'false' as extEmp from hrmresource e left join hrmdepartment d on e.departmentid = d.id @@ -21,6 +22,7 @@ select e.id as employeeId, e.lastname as username, + e.sex as sex, e.certificatenum as idNo, e.status as status, e.workcode as workcode, @@ -122,6 +125,7 @@ select e.id as employeeId, e.lastname as username, e.status as status, + e.sex as sex, e.certificatenum as idNo, e.workcode as workcode, d.departmentname as departmentName, @@ -228,6 +232,7 @@ select e.id as employeeId, e.lastname as username, e.status as status, + e.sex as sex, e.certificatenum as idNo, e.workcode as workcode, d.departmentname as departmentName, @@ -282,6 +287,7 @@ e.lastname as username, e.status as status, e.workcode as workcode, + e.sex as sex, e.certificatenum as idNo, e.companystartdate as companystartdate, e.mobile as mobile, @@ -303,6 +309,7 @@ e.status as status, e.workcode as workcode, e.certificatenum as idNo, + e.sex as sex, e.companystartdate as companystartdate, e.mobile as mobile, e.accounttype as accountType, @@ -323,6 +330,7 @@ e.status as status, e.workcode as workcode, e.certificatenum as idNo, + e.sex as sex, e.companystartdate as companystartdate, e.mobile as mobile, e.departmentid as departmentId, @@ -486,6 +494,7 @@ e.lastname as username, e.status as status, e.certificatenum as idNo, + e.sex as sex, e.workcode as workcode, e.companystartdate as companystartdate, e.mobile as mobile, @@ -561,6 +570,7 @@ e.lastname as username, e.status as status, e.certificatenum as idNo, + e.sex as sex, e.workcode as workcode, d.departmentname as departmentName, d.id as departmentId, From f7cba636b30d592cfa367095893bcbb4552adc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Jun 2025 17:21:22 +0800 Subject: [PATCH 10/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC=E4=BF=9D=E7=95=99=E4=BD=8D=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salarysob/bo/SalarySobItemAggregateBO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index b1a76a4a4..2daccbec2 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -144,7 +144,7 @@ public class SalarySobItemAggregateBO { .canEdit(openFormulaForcedEditing || Objects.equals(salaryItemPO.getCanEdit(), 1)) .canDelete(openFormulaForcedEditing || salaryItemPO.getCanDelete() == null || Objects.equals(salaryItemPO.getCanDelete(), 1)) .width(salaryItemPO.getWidth()) - .defaultValue(salaryItemPO.getDefaultValue()) + .defaultValue(salarySobItemPO.getDefaultValue()) .build()); } } From 63c95583310b31c372b5d0994d9c4830b236f855 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 19 Jun 2025 11:38:05 +0800 Subject: [PATCH 11/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E9=99=90=E6=A0=A1=E9=AA=8C=20=E6=BC=8F?= =?UTF-8?q?=E6=8E=89=E5=8F=AA=E5=BC=80=E5=90=AF=E4=BA=86=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E6=B2=A1=E5=BC=80=E5=90=AF=E4=B8=AA=E4=BA=BA=E7=9A=84=E5=9C=BA?= =?UTF-8?q?=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIArchivesServiceImpl.java | 60 +++++++++++++++++++ .../service/impl/SISchemeServiceImpl.java | 24 ++++++-- 2 files changed, 80 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 6d45abc1f..a45dc3bf2 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -2881,12 +2881,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (otherPaymentBaseString != null) { updateOtherInfo.setOtherPaymentBaseString(otherPaymentBaseString); } + if (!welBaseDiffSign) { + otherPaymentBaseString = adaptWelBaseLimit(updateOtherInfo.getOtherSchemeId(), updateOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (otherPaymentBaseString != null) { + updateOtherInfo.setOtherPaymentBaseString(otherPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(updateOtherInfo.getOtherSchemeId(),updateOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"其他福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "其他福利个人: " + errorMsg; } + if ( (!welBaseDiffSign) && (!checkWelBaseLimit(updateOtherInfo.getOtherSchemeId(),updateOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"其他福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "其他福利公司: " + errorMsg; + } } //需要拆分个人和公司福利基数时 if (welBaseDiffSign) { @@ -2952,12 +2962,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (otherPaymentBaseString != null) { insertOtherInfo.setOtherPaymentBaseString(otherPaymentBaseString); } + if (!welBaseDiffSign) { + otherPaymentBaseString = adaptWelBaseLimit(insertOtherInfo.getOtherSchemeId(), insertOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (otherPaymentBaseString != null) { + insertOtherInfo.setOtherPaymentBaseString(otherPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(insertOtherInfo.getOtherSchemeId(),insertOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"其他福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "其他福利个人:" + errorMsg; } + if ( (!welBaseDiffSign) && (!checkWelBaseLimit(insertOtherInfo.getOtherSchemeId(),insertOtherInfo.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"其他福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "其他福利公司:" + errorMsg; + } } //需要拆分个人和公司福利基数时 if (welBaseDiffSign) { @@ -3092,12 +3112,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (fundPaymentBaseString != null) { updateFundInfo.setFundPaymentBaseString(fundPaymentBaseString); } + if (!welBaseDiffSign) { + fundPaymentBaseString = adaptWelBaseLimit(updateFundInfo.getFundSchemeId(), updateFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (fundPaymentBaseString != null) { + updateFundInfo.setFundPaymentBaseString(fundPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(updateFundInfo.getFundSchemeId(),updateFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "公积金个人" + errorMsg; } + if ( (!welBaseDiffSign) && (!checkWelBaseLimit(updateFundInfo.getFundSchemeId(),updateFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "公积金公司" + errorMsg; + } } //需要拆分个人和公司福利基数时 @@ -3168,12 +3198,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (fundPaymentBaseString != null) { insertFundInfo.setFundPaymentBaseString(fundPaymentBaseString); } + if (!welBaseDiffSign) { + fundPaymentBaseString = adaptWelBaseLimit(insertFundInfo.getFundSchemeId(), insertFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (fundPaymentBaseString != null) { + insertFundInfo.setFundPaymentBaseString(fundPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(insertFundInfo.getFundSchemeId(),insertFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "公积金个人:" + errorMsg; } + if ((!welBaseDiffSign) && (!checkWelBaseLimit(insertFundInfo.getFundSchemeId(),insertFundInfo.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "公积金公司:" + errorMsg; + } } //需要拆分个人和公司福利基数时 @@ -3315,12 +3355,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (socialPaymentBaseString != null) { updateSocialInfo.setSocialPaymentBaseString(socialPaymentBaseString); } + if (!welBaseDiffSign) { + socialPaymentBaseString = adaptWelBaseLimit(updateSocialInfo.getSocialSchemeId(), updateSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (socialPaymentBaseString != null) { + updateSocialInfo.setSocialPaymentBaseString(socialPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(updateSocialInfo.getSocialSchemeId(),updateSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "社保个人:" + errorMsg; } + if ((!welBaseDiffSign) && (!checkWelBaseLimit(updateSocialInfo.getSocialSchemeId(),updateSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "社保公司:" + errorMsg; + } } //需要拆分个人和公司福利基数时 @@ -3390,12 +3440,22 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (socialPaymentBaseString != null) { insertSocialInfo.setSocialPaymentBaseString(socialPaymentBaseString); } + if (!welBaseDiffSign) { + socialPaymentBaseString = adaptWelBaseLimit(insertSocialInfo.getSocialSchemeId(), insertSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + if (socialPaymentBaseString != null) { + insertSocialInfo.setSocialPaymentBaseString(socialPaymentBaseString); + } + } } else { StringBuilder errorMsg = new StringBuilder(""); if (!checkWelBaseLimit(insertSocialInfo.getSocialSchemeId(),insertSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg)) { // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); combineErrorMsg = "社保个人:" + errorMsg; } + if ((!welBaseDiffSign) && (!checkWelBaseLimit(insertSocialInfo.getSocialSchemeId(),insertSocialInfo.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg))) { + // throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!")); + combineErrorMsg = "社保公司:" + errorMsg; + } } //需要拆分个人和公司福利基数时 if (welBaseDiffSign) { diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 504142ea9..4d688978f 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -1432,6 +1432,14 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { Boolean otherCheckBase = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesOtherSchemePO.getOtherSchemeId(), insuranceArchivesOtherSchemePO.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_PERSON.getValue(), errorMsg); + Boolean socialCheckBase2 = true; + Boolean fundCheckBase2 = true; + Boolean otherCheckBase2 = true; + if (!welBaseDiffSign) { + socialCheckBase2 = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesSocialSchemePO.getSocialSchemeId(), insuranceArchivesSocialSchemePO.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg); + fundCheckBase2 = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesFundSchemePO.getFundSchemeId(), insuranceArchivesFundSchemePO.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg); + otherCheckBase2 = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesOtherSchemePO.getOtherSchemeId(), insuranceArchivesOtherSchemePO.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg); + } Boolean socialCheckComBase = true; Boolean fundCheckComBase = true; Boolean otherCheckComBase = true; @@ -1440,17 +1448,17 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { fundCheckComBase = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesFundSchemePO.getFundSchemeId(), insuranceArchivesFundSchemePO.getFundPaymentComBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg); otherCheckComBase = getSIArchivesService(user).checkWelBaseLimit(insuranceArchivesOtherSchemePO.getOtherSchemeId(), insuranceArchivesOtherSchemePO.getOtherPaymentComBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue(), errorMsg); } - if (socialCheckBase && fundCheckBase && otherCheckBase && socialCheckComBase && fundCheckComBase && otherCheckComBase) { + if (socialCheckBase && fundCheckBase && otherCheckBase && socialCheckBase2 && fundCheckBase2 && otherCheckBase2 && socialCheckComBase && fundCheckComBase && otherCheckComBase) { insuranceArchivesAccountPOS.add(insuranceArchivesAccountPO); } else { String checkMessage = "该条数据中"; - if (!socialCheckBase || !socialCheckComBase) { + if (!socialCheckBase || !socialCheckBase2 || !socialCheckComBase) { checkMessage = checkMessage + "社保福利基数、"; } - if (!fundCheckBase || !fundCheckComBase) { + if (!fundCheckBase || !fundCheckBase2 || !fundCheckComBase) { checkMessage = checkMessage + "公积金福利基数、"; } - if (!otherCheckBase || !otherCheckComBase) { + if (!otherCheckBase || !otherCheckBase2 || !otherCheckComBase) { checkMessage = checkMessage + "其他福利基数、"; } checkMessage = checkMessage.substring(0, checkMessage.length() - 1); @@ -1470,6 +1478,14 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { insuranceArchivesSocialSchemePO.setSocialPaymentBaseString(newSocialPaymentBaseString); insuranceArchivesFundSchemePO.setFundPaymentBaseString(newFundPaymentBaseString); insuranceArchivesOtherSchemePO.setOtherPaymentBaseString(newOtherPaymentBaseString); + if (!welBaseDiffSign) { + newSocialPaymentBaseString = getSIArchivesService(user).checkAndBuildWelBaseWithLimit(insuranceArchivesSocialSchemePO.getSocialSchemeId(), insuranceArchivesSocialSchemePO.getSocialPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + newFundPaymentBaseString = getSIArchivesService(user).checkAndBuildWelBaseWithLimit(insuranceArchivesFundSchemePO.getFundSchemeId(), insuranceArchivesFundSchemePO.getFundPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + newOtherPaymentBaseString = getSIArchivesService(user).checkAndBuildWelBaseWithLimit(insuranceArchivesOtherSchemePO.getOtherSchemeId(), insuranceArchivesOtherSchemePO.getOtherPaymentBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + insuranceArchivesSocialSchemePO.setSocialPaymentBaseString(newSocialPaymentBaseString); + insuranceArchivesFundSchemePO.setFundPaymentBaseString(newFundPaymentBaseString); + insuranceArchivesOtherSchemePO.setOtherPaymentBaseString(newOtherPaymentBaseString); + } if (welBaseDiffSign) { String newSocialPaymentComBaseString = getSIArchivesService(user).checkAndBuildWelBaseWithLimit(insuranceArchivesSocialSchemePO.getSocialSchemeId(), insuranceArchivesSocialSchemePO.getSocialPaymentComBaseString(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); From 45acec8468eeee1ded5e3fe5328182ba2ab7b1e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 Jun 2025 14:40:09 +0800 Subject: [PATCH 12/33] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index c4b7713cc..c558fd72d 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=3.0.2.2504.03 +version=3.0.2.2504.04 openFormulaForcedEditing=false \ No newline at end of file From bfd953d08272710ac84d5d9183bc3fc879764a62 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 19 Jun 2025 17:28:09 +0800 Subject: [PATCH 13/33] =?UTF-8?q?=E6=B0=B4=E5=8D=B0=E5=8D=95=E7=8B=AC?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=88=86=E9=83=A8=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index aea5cede9..b6c6971a3 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -869,7 +869,7 @@ public class SalaryBillBO { if ("text".equals(wmClassify)) { wmTextFieldIds = (List) salaryBillWatermark.getWmSetting().getOrDefault("wmSelectedFieldIds", Collections.emptyList()); - List empFields = Arrays.asList(HRM_Name, HRM_Num, HRM_Mobile, HRM_Email, HRM_CurrentOperatorId, HRM_Department); + List empFields = Arrays.asList(HRM_Name, HRM_Num, HRM_Mobile, HRM_Email, HRM_CurrentOperatorId, HRM_Department, HRM_SecondDepartment); if (wmTextFieldIds.contains(HRM_SecondDepartment)) { // 需要查分部 salaryBillWatermark.getWmSetting().put("needQuerySubDepart", true); From 5cc0dda5f6f4ea5aa3b4f8e0f09920c2c4867128 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 27 Jun 2025 13:45:57 +0800 Subject: [PATCH 14/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E7=89=88=E6=9C=AC=E4=B8=AA=E7=A8=8E=E7=94=B3=E6=8A=A5?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/TaxDeclarationServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 73445ee72..e6ad762f4 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -210,7 +210,14 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration .replace("{1}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); } // 查询薪资所属月的薪资核算记录 - salaryAcctRecordPOS = listBySalaryMonth(SalaryAcctRecordPO.builder().salaryMonths(salaryMonthDateRange).taxAgentId(taxAgentId).build()); + salaryAcctRecordPOS = listBySalaryMonth(SalaryAcctRecordPO.builder().salaryMonths(salaryMonthDateRange).build()); + List salarySobPOS = getSalarySobService(user).listByTaxAgentId(saveParam.getTaxAgentId()); + if (CollectionUtils.isEmpty(salarySobPOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98874, "{0}该义务人下无账套数据").replace("{0}", saveParam.getSalaryMonth().toString())); + } + List salarySobIds = salarySobPOS.stream().map(SalarySobPO::getId).collect(Collectors.toList()); + + salaryAcctRecordPOS.stream().filter(record -> salarySobIds.contains(record.getSalarySobId())).collect(Collectors.toList()); // 无薪资核算记录,不允许生成个税申报表 if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { From 8168a42b618e757b8ba98cb1986e0e49f125def4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 7 Jul 2025 10:20:53 +0800 Subject: [PATCH 15/33] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/lib/hrmelog.jar | Bin 138117 -> 138098 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resource/WEB-INF/lib/hrmelog.jar b/resource/WEB-INF/lib/hrmelog.jar index 7589cfeae2af120009328d9fce0d18905612e06a..ba4091f61da05482aa31da16145b2ef8ce271720 100644 GIT binary patch delta 4520 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 SaE{!{|2E1K2q>Q=5dI69l4_m+ delta 4457 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 Date: Mon, 7 Jul 2025 14:01:05 +0800 Subject: [PATCH 16/33] =?UTF-8?q?=E8=96=AA=E9=85=AC=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E6=A1=86=E6=A0=B9=E6=8D=AE=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E5=88=86=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/TaxAgentServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index bea5d61a6..3fe52c61b 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -586,7 +586,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { public List> selectList(boolean needAuth) { List taxAgents = getTaxAgentMapper().listAll(); if (needAuth) { - taxAgents = handleForDevolution(taxAgents, (long) user.getUID(), true); + taxAgents = getAuthService(user).auth(taxAgents, AuthFilterTypeEnum.QUERY_DATA, TaxAgentPO.class); } return taxAgents.stream().map(m -> { Map map = new HashMap<>(2); From fb239f34edb4aac4a5e9f33ca9bf668604901cb5 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 9 Jul 2025 10:08:27 +0800 Subject: [PATCH 17/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E7=AD=9B=E9=80=89=E4=B8=BA=E7=A9=BA=E6=97=B6?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctExcelServiceImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 67aff3ecd..f869556b8 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -405,11 +405,13 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) { total = true; Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); - sumRow.forEach((k, v) -> { - if (NumberUtils.isCreatable(v.toString())) { - sumRow.put(k, new BigDecimal(v.toString())); - } - }); + if (sumRow != null) { + sumRow.forEach((k, v) -> { + if (NumberUtils.isCreatable(v.toString())) { + sumRow.put(k, new BigDecimal(v.toString())); + } + }); + } if (sumRow != null) { sumRow.put("taxAgentName", "总计"); resultMapList.add(sumRow); From d1d2130a521959528169cf5e86d3882e36dfc684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 25 Aug 2025 16:40:47 +0800 Subject: [PATCH 18/33] =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/util/ResponseResult.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/com/engine/salary/util/ResponseResult.java b/src/com/engine/salary/util/ResponseResult.java index 2036fd1a2..4fef6c0a1 100644 --- a/src/com/engine/salary/util/ResponseResult.java +++ b/src/com/engine/salary/util/ResponseResult.java @@ -8,6 +8,7 @@ import com.engine.salary.common.SalaryContext; import com.engine.salary.exception.ExceptionUtil; import com.engine.salary.exception.SalaryRunTimeException; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import weaver.general.BaseBean; @@ -15,6 +16,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; @@ -52,6 +54,17 @@ public class ResponseResult { SalaryContext.get().setValue("response", response); } + public T parseParams(HttpServletRequest request, Class clazz) { + T t = null; + try { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + t = mapper.readValue(request.getInputStream(), clazz); + } catch (IOException e) { + log.error("salary api parseParams fail , param {}", t, e); + } + return t; + } /** * 统一返回方法 From 3775dbe68695779aedcba12db41cee47f9cd6a14 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 26 Aug 2025 16:04:27 +0800 Subject: [PATCH 19/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E7=89=88=E6=9C=AC=20=E6=8A=A5=E8=A1=A8=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salarysob/param/SalarySobQueryParam.java | 2 ++ .../salary/entity/taxagent/param/TaxAgentQueryParam.java | 2 ++ .../salary/report/wrapper/SalaryStatisticsReportWrapper.java | 1 + src/com/engine/salary/service/impl/SalarySobServiceImpl.java | 3 +++ src/com/engine/salary/service/impl/TaxAgentServiceImpl.java | 3 +++ 5 files changed, 11 insertions(+) diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java index d0555321d..fc0094ba5 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java @@ -28,4 +28,6 @@ public class SalarySobQueryParam extends BaseQueryParam { * 数据过滤级别 */ private AuthFilterTypeEnum filterType; + + private boolean isShare; } diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java index 410b0b2b4..1ac46a384 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java @@ -26,4 +26,6 @@ public class TaxAgentQueryParam extends BaseQueryParam { //个税扣缴义务人名称 private String name; + + private boolean isShare; } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 7d0d48d53..d92d62957 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -303,6 +303,7 @@ public class SalaryStatisticsReportWrapper extends Service { // 如果是被分享的报表,校验分享权限,通过后将user赋值为报表创建人 User creator = new User(); creator.setUid(po.getCreator().intValue()); + creator.setLogintype("1"); user = creator; } else { // 判断报表是否是登陆人创建的,或薪酬总管理员 diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index e25f15343..1273809a6 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -238,6 +238,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } List list = getSalarySobMapper().listSome(build); + if (param.isShare() == true) { + return list; + } return getAuthService(user).auth(list, param.getFilterType(), SalarySobPO.class); } diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 3fe52c61b..e4982baa8 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -291,6 +291,9 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { public List listAuth(TaxAgentQueryParam queryParam) { List taxAgents = getTaxAgentMapper().listBySome(queryParam); AuthFilterTypeEnum filterType = queryParam.getFilterType(); + if (queryParam.isShare()) { + return taxAgents; + } return getAuthService(user).auth(taxAgents, filterType, TaxAgentPO.class); } From 70732f38a997091bce265dd63a01700573cfbeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 2 Sep 2025 15:17:39 +0800 Subject: [PATCH 20/33] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySendServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 21884ad0f..3eb92dcae 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1782,6 +1782,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService //取出验证码 String cacheValue = getSalaryCacheService(user).get(SALARY_CACHE_SMS_CODE + "_" + id); + if (cacheValue == null) { + throw new SalaryRunTimeException("未获取到验证码,请重新发送"); + } String[] cache = cacheValue.split("_"); String code = cache[0]; //失效时间 From e6038836356a5ec04772042dd33f3b03e4cd6681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 3 Sep 2025 14:21:35 +0800 Subject: [PATCH 21/33] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySendServiceImpl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 3eb92dcae..c4aa6554f 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.salary.service.impl; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.Validator; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.api.formmode.mybatis.util.SqlProxyHandle; @@ -1752,9 +1751,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } String mobile = employee.getMobile(); - if (Validator.isMobile(mobile)) { - throw new SalaryRunTimeException("手机号信息有误"); - } boolean checkSendSMS = MessageUtil.checkSendSMS(); if (!checkSendSMS) { From 3274043397821fa15f46ac27cdf1116df5d89346 Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Tue, 9 Sep 2025 18:46:25 +0800 Subject: [PATCH 22/33] =?UTF-8?q?=E4=B8=93=E9=A1=B9=E9=99=84=E5=8A=A0?= =?UTF-8?q?=E6=89=A3=E9=99=A4=E4=B8=9A=E5=8A=A1=E7=BA=BFbug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SpecialAddDeductionServiceImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java index ed7102c46..85a3b8207 100644 --- a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java @@ -471,15 +471,20 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd SpecialAddDeductionBiz SpecialAddDeductionBiz = new SpecialAddDeductionBiz(); Long currentEmployeeId = (long) user.getUID(); // 获取所有个税扣缴义务人 - Collection taxAgentList = - getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + // Collection taxAgentList = + // getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + SpecialAddDeductionPO byId = SpecialAddDeductionBiz.getById(specialAddDeductionParam.getId()); if (byId == null) { throw new SalaryRunTimeException("该数据不存在!"); } //管理员可以编辑该扣缴义务人数据,其他人可以编辑本人数据 boolean canEdit = byId.getEmployeeId().equals((long) user.getUID()) - || taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), byId.getTaxAgentId())); + || taxAgentList.stream().anyMatch(t -> Objects.equals(t.getId(), byId.getTaxAgentId())); if (!canEdit) { //没有编辑权限 throw new SalaryRunTimeException("该个税扣缴义务人无权限编辑此数据!"); From 24676fe027604485f1b6c4cbcdce06bd60414cbf Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Wed, 10 Sep 2025 11:45:43 +0800 Subject: [PATCH 23/33] =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/AttendQuoteDataServiceImpl.java | 4 ++-- .../salary/service/impl/AttendQuoteFieldServiceImpl.java | 5 +++-- .../engine/salary/service/impl/RemoteExcelServiceImpl.java | 3 ++- src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index ee7e00713..d07ebc7aa 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -275,7 +275,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa .collect(Collectors.toList()); effectiveFields.forEach(attendQuoteField -> { - header.add(attendQuoteField.getFieldName()); + header.add(Util.formatMultiLang(attendQuoteField.getFieldName(), String.valueOf(user.getLanguage()))); } ); } @@ -606,7 +606,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa header.add(SalaryI18nUtil.getI18nLabel(86317, "证件号码")); // 动态列 for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { - header.add(attendQuoteField.getFieldName()); + header.add(Util.formatMultiLang(attendQuoteField.getFieldName(), String.valueOf(user.getLanguage()))); } List> rows = new ArrayList<>(); rows.add(header); diff --git a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java index 2448254f9..9ddab6625 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java @@ -27,6 +27,7 @@ import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; +import weaver.general.Util; import weaver.hrm.User; import java.util.*; @@ -292,7 +293,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF Map column = columnsOptional.get(); updates.add(AttendQuoteFieldPO.builder() .code(column.get("code")) - .fieldName(column.get("name")) + .fieldName(Util.formatMultiLang(column.get("name"), String.valueOf(user.getLanguage()))) .updateTime(now) .build()); } @@ -312,7 +313,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF Optional> columnsOptional = columns.stream().filter(column -> code.equals(column.get("code"))).findFirst(); if (columnsOptional.isPresent()) { Map column = columnsOptional.get(); - saves.add(buildAttendQuoteField(column.get("code"), column.get("name"))); + saves.add(buildAttendQuoteField(column.get("code"), Util.formatMultiLang(column.get("name"), String.valueOf(user.getLanguage())))); } } if (CollectionUtils.isNotEmpty(saves)) { diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index b0424ad47..1825792ed 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -34,6 +34,7 @@ import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import weaver.general.Util; import weaver.hrm.User; import java.lang.reflect.Field; @@ -476,7 +477,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic List formulaVars = fields.stream().map(e -> { FormulaVar formulaVar = new FormulaVar(); formulaVar.setFieldId(referenceEnum.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + e.getId()); - formulaVar.setName(e.getFieldName()); + formulaVar.setName(Util.formatMultiLang(e.getFieldName(), String.valueOf(user.getLanguage()))); formulaVar.setSource("" + referenceEnum.getValue()); formulaVar.setFieldType(DataType.NUMBER); return formulaVar; diff --git a/src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java b/src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java index 2e5d4e579..523ec3c58 100644 --- a/src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java +++ b/src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java @@ -92,7 +92,7 @@ public class AttendQuoteDataWrapper extends Service { attendQuoteFields.stream() .filter(attendQuoteField->effectiveColumns.contains(Util.null2String(attendQuoteField.getId()))) .forEach(attendQuoteField -> { - columns.add(Column.builder().title(attendQuoteField.getFieldName()) + columns.add(Column.builder().title(Util.formatMultiLang(attendQuoteField.getFieldName(), String.valueOf(user.getLanguage()))) .dataIndex(attendQuoteField.getId() + "_attendQuoteData") .key(attendQuoteField.getId() + "_attendQuoteData").display(Boolean.TRUE).build()); } From 28ec56e4ccb066145b58a08f596ac87ebf1590ff Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Thu, 11 Sep 2025 09:36:13 +0800 Subject: [PATCH 24/33] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=9D=83?= =?UTF-8?q?=E9=99=90bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AddUpDeductionServiceImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 2f79bb800..eb0bd4f65 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -193,7 +193,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction String imageId = Util.null2String(importParam.getImageId()); Validate.notBlank(imageId, "imageId为空"); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + // 获取所有个税扣缴义务人 + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + // Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); //个税扣缴义务人 String taxAgentId = Util.null2String(importParam.getTaxAgentId()); // 获取租户下所有的人员 @@ -295,17 +299,17 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) { + if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getId().equals(Long.valueOf(taxAgentId))) { //个税扣缴义务人与导入时选择的不一致 Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowIndex + "个税扣缴义务人与导入时选择的不一致"); errorData.add(errorMessageMap); errorSum += 1; } else { - addUpDeduction.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + addUpDeduction.setTaxAgentId(optionalTemp.get().getId()); + // taxAgentEmployees = optionalTemp.get().getEmployeeList(); } } else { //个税扣缴义务人不存在 From 0762fbee4d3b0cada29a76159b86675935b1657a Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Fri, 12 Sep 2025 15:59:40 +0800 Subject: [PATCH 25/33] =?UTF-8?q?=E7=A4=BE=E4=BF=9DStringUtils=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BAlang3=E5=8C=85=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SICompensationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SICompensationServiceImpl.java b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java index a6c4cb5d8..276a39af7 100644 --- a/src/com/engine/salary/service/impl/SICompensationServiceImpl.java +++ b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.salary.service.impl; import com.alibaba.fastjson.JSON; -import com.alipay.oceanbase.jdbc.StringUtils; import com.cloudstore.eccom.pc.table.WeaTable; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; @@ -41,6 +40,7 @@ import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.Column; import com.google.common.collect.Lists; import com.engine.salary.util.db.IdGenerator; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import weaver.hrm.User; From 2767114bfb69d9305e63bf5d78e2e2c87adbad5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Jun 2025 14:30:46 +0800 Subject: [PATCH 26/33] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E8=AE=B0=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E3=80=82=202=E3=80=81=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203?= =?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=20=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97=EF=BC=9A=201=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA=E6=A0=B8=E7=AE=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97=E3=80=82=202=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203=E3=80=81=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97=20=E5=B7=A5?= =?UTF-8?q?=E8=B5=84=E5=8D=95=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=8F=91=E6=94=BE=202=E3=80=81=E6=89=B9=E9=87=8F=E6=92=A4?= =?UTF-8?q?=E5=9B=9E=20=E7=94=B3=E6=8A=A5=E8=A1=A8=EF=BC=9A=201=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E7=94=B3=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryBill/param/SalarySendBatParam.java | 27 ++++++++++ .../salaryacct/param/SalaryAcctBatParam.java | 34 ++++++++++++ .../siaccount/param/AccountBatParam.java | 40 ++++++++++++++ .../param/TaxDeclarationBatParam.java | 54 +++++++++++++++++++ .../salary/service/SIAccountService.java | 8 +++ .../service/SalaryAcctRecordService.java | 8 +++ .../service/impl/SIAccountServiceImpl.java | 46 ++++++++++++++++ .../impl/SalaryAcctRecordServiceImpl.java | 38 ++++++++++++- .../salary/web/SIAccountController.java | 32 +++++++++++ .../salary/web/SalaryAcctController.java | 37 +++++++++++++ .../salary/web/SalaryBillController.java | 23 ++++++++ .../salary/web/TaxDeclarationController.java | 10 ++++ .../wrapper/SalaryAcctRecordWrapper.java | 30 ++++++++++- .../salary/wrapper/SalarySendWrapper.java | 24 +++++++++ .../salary/wrapper/TaxDeclarationWrapper.java | 17 ++++++ 15 files changed, 426 insertions(+), 2 deletions(-) create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java create mode 100644 src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java create mode 100644 src/com/engine/salary/entity/siaccount/param/AccountBatParam.java create mode 100644 src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java new file mode 100644 index 000000000..40f529cc5 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendBatParam.java @@ -0,0 +1,27 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 工资单批量操作参数 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalarySendBatParam { + +// 工资单发放Id + private List salarySendIds; + +} diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java new file mode 100644 index 000000000..63dc4310a --- /dev/null +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctBatParam.java @@ -0,0 +1,34 @@ +package com.engine.salary.entity.salaryacct.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * 批量操作参数 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryAcctBatParam { + + //薪资所属月 + private Date salaryMonth; + //薪资账套id + private List salarySobIds; + //备注 + private String description; + + + private List salaryAcctRecordIds; +} diff --git a/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java b/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java new file mode 100644 index 000000000..fa9de96fc --- /dev/null +++ b/src/com/engine/salary/entity/siaccount/param/AccountBatParam.java @@ -0,0 +1,40 @@ +package com.engine.salary.entity.siaccount.param; + + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AccountBatParam { + + //账单月份") + //@NotNull + @DataCheck(require = true,message = "账单月份不能为空") + private String billMonth; + + //备注") + //@Length(max = 60) + @DataCheck(max = 60,message = "备注长度不能超过60个字符") + private String remarks; + + + /** + * 个税扣缴义务人id + */ + @DataCheck(require = true,message = "个税扣缴义务人不能为空") + private List paymentOrganizations; + + + + private List ids; + +} diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java new file mode 100644 index 000000000..0168f9c89 --- /dev/null +++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java @@ -0,0 +1,54 @@ +package com.engine.salary.entity.taxdeclaration.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.YearMonth; +import java.util.Date; +import java.util.List; + +/** + * 生成个税申报表参数 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxDeclarationBatParam { + + /** + * 个税申报id + */ + private Long taxDeclarationId; + + /** + * 薪资所属月 + */ + private YearMonth salaryMonth; + + /** + * 个税扣缴义务人 + */ + private List taxAgentIds; + + /** + * 备注 + */ + private String description; + + private String salaryMonthStr; + + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date taxCycle; + + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date salaryDate; +} diff --git a/src/com/engine/salary/service/SIAccountService.java b/src/com/engine/salary/service/SIAccountService.java index bd95388a2..f37924c1d 100644 --- a/src/com/engine/salary/service/SIAccountService.java +++ b/src/com/engine/salary/service/SIAccountService.java @@ -320,5 +320,13 @@ public interface SIAccountService { void cacheWelfareField(List welfareNames); void cacheBalanceWelfareField(List welfareNames); + + void batSave(AccountBatParam param); + + void batDelete(AccountBatParam param); + + void batFile(AccountBatParam param); + + void batSocialSecurityBenefitsRecalculate(AccountBatParam batParam); } diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java index fcf00580b..603e2a164 100644 --- a/src/com/engine/salary/service/SalaryAcctRecordService.java +++ b/src/com/engine/salary/service/SalaryAcctRecordService.java @@ -1,6 +1,7 @@ package com.engine.salary.service; import com.engine.salary.common.LocalDateRange; +import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; @@ -210,4 +211,11 @@ public interface SalaryAcctRecordService { List listSome(SalaryAcctRecordPO po); void updateDate(Long id, Date updateTime); + + void batSave(SalaryAcctBatParam saveParam); + + void batFile(SalaryAcctBatParam param); + + void batReCalculate(SalaryAcctBatParam param); + } diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 6c1a30028..a7039d1f5 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -6802,6 +6802,52 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(welfareNames)); } + @Override + public void batSave(AccountBatParam accountBatParam) { + List paymentOrganizations = accountBatParam.getPaymentOrganizations(); + for (Long paymentOrganization : paymentOrganizations) { + AccountParam param = AccountParam.builder() + .billMonth(accountBatParam.getBillMonth()) + .paymentOrganization(paymentOrganization) + .remarks(accountBatParam.getRemarks()) + .build(); + save(param); + } + } + + @Override + public void batDelete(AccountBatParam batParam) { + List paymentOrganizations = batParam.getPaymentOrganizations(); + for (Long paymentOrganization : paymentOrganizations) { + AccountParam param = AccountParam.builder() + .billMonth(batParam.getBillMonth()) + .paymentOrganization(paymentOrganization) + .build(); + delete(param); + } + } + + @Override + public void batFile(AccountBatParam batParam) { + List paymentOrganizations = batParam.getPaymentOrganizations(); + for (Long paymentOrganization : paymentOrganizations) { + AccountParam param = AccountParam.builder() + .billMonth(batParam.getBillMonth()) + .paymentOrganization(paymentOrganization) + .build(); + file(param); + } + } + + @Override + public void batSocialSecurityBenefitsRecalculate(AccountBatParam batParam) { + List ids = batParam.getIds(); + for (Long id : ids) { + InsuranceAccountBatchPO param = InsuranceAccountBatchPO.builder().id(id).build(); + socialSecurityBenefitsRecalculate(param); + } + } + public void accountOtherView(InsuranceAccountViewListDTO dto, List pos) { int otherNum = 0; BigDecimal otherPaySum = new BigDecimal("0"); diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 9958f8d27..2f79fd449 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -4,11 +4,12 @@ import cn.hutool.core.collection.CollUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.salaryBill.po.SalarySendPO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO; +import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; @@ -40,6 +41,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; +import java.time.YearMonth; import java.util.*; import java.util.stream.Collectors; @@ -845,4 +847,38 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe public void updateDate(Long id, Date updateTime) { getSalaryAcctRecordMapper().updateDate(id, updateTime); } + + @Override + public void batSave(SalaryAcctBatParam saveParam) { + + List salarySobIds = saveParam.getSalarySobIds(); + YearMonth salaryMonth = SalaryDateUtil.localDate2YearMonth(saveParam.getSalaryMonth()); + for (int i = 0; i < salarySobIds.size(); i++) { + Long salarySobId = salarySobIds.get(i); + SalaryAcctRecordSaveParam param = SalaryAcctRecordSaveParam.builder() + .salarySobId(salarySobId) + .salaryMonth(salaryMonth) + .description(saveParam.getDescription()) + .build(); + save(param); + } + } + + @Override + public void batFile(SalaryAcctBatParam param) { + List salaryAcctRecordIds = param.getSalaryAcctRecordIds(); + for (int i = 0; i < salaryAcctRecordIds.size(); i++) { + Long recordId = salaryAcctRecordIds.get(i); + file(recordId); + } + } + + @Override + public void batReCalculate(SalaryAcctBatParam param) { + List salaryAcctRecordIds = param.getSalaryAcctRecordIds(); + for (int i = 0; i < salaryAcctRecordIds.size(); i++) { + Long recordId = salaryAcctRecordIds.get(i); + reCalculate(recordId); + } + } } diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index 80f37a159..e44f3ba20 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -217,6 +217,38 @@ public class SIAccountController { return new ResponseResult(user).run(getService(user)::save, param); } + @POST + @Path("/batSave") + @Produces(MediaType.APPLICATION_JSON) + public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getService(user)::batSave, param); + } + + @POST + @Path("/batDelete") + @Produces(MediaType.APPLICATION_JSON) + public String batDelete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getService(user)::batDelete, param); + } + + @POST + @Path("/batFile") + @Produces(MediaType.APPLICATION_JSON) + public String batFile(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AccountBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getService(user)::batFile, param); + } + + @POST + @Path("/batSocialSecurityBenefitsRecalculate") + @Produces(MediaType.APPLICATION_JSON) + public String batSocialSecurityBenefitsRecalculate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody AccountBatParam batParam ){ + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getService(user)::batSocialSecurityBenefitsRecalculate,batParam); + } + /** * 正常缴纳页核算 diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index a196d53ef..57483fd40 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -141,6 +141,43 @@ public class SalaryAcctController { return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId()); } + //薪资核算 + @POST + @Path("/batAccounting") + @Produces(MediaType.APPLICATION_JSON) + public String batAccounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batCalculate, param); + } + + //保存薪资核算的基本信息 + @POST + @Path("/basic/batSave") + @Produces(MediaType.APPLICATION_JSON) + public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batSave, param); + } + + + //归档薪资核算记录 + @POST + @Path("/batFile") + @Produces(MediaType.APPLICATION_JSON) + public String batFile(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batFile, param); + } + + //重新核算 + @POST + @Path("/batReAccounting") + @Produces(MediaType.APPLICATION_JSON) + public String batReAccounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctBatParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::batReCalculate, param); + } + //判断是否存在合并计税 @GET @Path("/hasConsolidatedTax") diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 64437a579..ab505d1ce 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -480,6 +480,29 @@ public class SalaryBillController { return new ResponseResult>(user).run(getSalarySendWrapper(user)::withdraw, queryParam); } + @POST + @Path("/send/batGrant") + @Produces(MediaType.APPLICATION_JSON) + public String batGrant(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySendBatParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::batGrant, queryParam); + } + + /** + * 工资单撤回 + * + * @param queryParam + * @return + */ + @POST + @Path("/send/batWithdraw") + @Produces(MediaType.APPLICATION_JSON) + public String batWithdraw(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySendBatParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySendWrapper(user)::batWithdraw, queryParam); + } + + /** * 工资单发放详情列表的高级搜索 * diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index 1c65fd7a2..e6205eaaa 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO; +import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationBatParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; @@ -99,6 +100,15 @@ public class TaxDeclarationController { return new ResponseResult(user).run(getTaxDeclarationWrapper(user)::save, param); } + @POST + @Path("/batSave") + @Produces(MediaType.APPLICATION_JSON) + public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationBatParam param) { + User user = HrmUserVarify.getUser(request, response); + param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr())); + return new ResponseResult(user).run(getTaxDeclarationWrapper(user)::batSave, param); + } + //个税申报表详情列表 @POST @Path("/detail/list") diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 7e352ce91..481cf0e1f 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -10,12 +10,13 @@ import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordFormDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordListDTO; +import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam; +import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctSobConfigPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; -import com.engine.salary.entity.salarysob.po.SalaryApprovalRulePO; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; @@ -55,6 +56,9 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord private SalaryAcctRecordService getSalaryAcctRecordService(User user) { return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } + private SalaryAcctResultWrapper getSalaryAcctResultWrapper(User user) { + return ServiceUtil.getService(SalaryAcctResultWrapper.class, user); + } private SalarySobService getSalarySobService(User user) { return ServiceUtil.getService(SalarySobServiceImpl.class, user); @@ -396,4 +400,28 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord public void updateSobConfig(Long id) { getSalaryAcctSobConfigService(user).updateBySalaryAcctRecordId(id); } + + + public void batSave(SalaryAcctBatParam param) { + getSalaryAcctRecordService(user).batSave(param); + } + + + public void batFile(SalaryAcctBatParam param) { + getSalaryAcctRecordService(user).batFile(param); + } + + public void batReCalculate(SalaryAcctBatParam param) { + getSalaryAcctRecordService(user).batReCalculate(param); + + } + + public void batCalculate(SalaryAcctBatParam param) { + List salaryAcctRecordIds = param.getSalaryAcctRecordIds(); + for (int i = 0; i < salaryAcctRecordIds.size(); i++) { + Long recordId = salaryAcctRecordIds.get(i); + SalaryAcctCalculateParam calculateParam = SalaryAcctCalculateParam.builder().salaryAcctRecordId(recordId).build(); + getSalaryAcctResultWrapper(user).calculate(calculateParam); + } + } } diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 8bbba561c..1772ba8b9 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -751,4 +751,28 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy public String genPdfBeforeExport(SalaryExportPdfParam salaryExportPdfParam) { return getSalaryBillService(user).genPdfBeforeExport(salaryExportPdfParam); } + + + public void batGrant(SalarySendBatParam param) { + List salarySendIds = param.getSalarySendIds(); + + for (int i = 0; i < salarySendIds.size(); i++) { + Long sendId = salarySendIds.get(i); + SalarySendGrantParam grantParam = SalarySendGrantParam.builder() + .salarySendId(sendId) + .build(); + grant(grantParam); + } + } + public void batWithdraw(SalarySendBatParam param) { + List salarySendIds = param.getSalarySendIds(); + + for (int i = 0; i < salarySendIds.size(); i++) { + Long sendId = salarySendIds.get(i); + SalarySendWithdrawParam grantParam = SalarySendWithdrawParam.builder() + .salarySendId(sendId) + .build(); + withdraw(grantParam); + } + } } diff --git a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java index 38670737a..0bfd23343 100644 --- a/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclarationWrapper.java @@ -9,6 +9,7 @@ import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationBO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO; +import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationBatParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; @@ -158,4 +159,20 @@ public class TaxDeclarationWrapper extends Service { public void withDrawTaxDeclaration(Long taxDeclarationId) { getTaxDeclarationService(user).withDrawTaxDeclaration(taxDeclarationId); } + + public void batSave(TaxDeclarationBatParam param) { + List taxAgentIds = param.getTaxAgentIds(); + for (int i = 0; i < taxAgentIds.size(); i++) { + Long taxAgentId = taxAgentIds.get(i); + TaxDeclarationSaveParam saveParam = TaxDeclarationSaveParam.builder() + .salaryMonth(param.getSalaryMonth()) + .taxAgentId(taxAgentId) + .description(param.getDescription()) + .taxCycle(param.getTaxCycle()) + .salaryDate(param.getSalaryDate()) + .build(); + save(saveParam); + } + + } } From f224916aac7cbeb2a63dfc6fe3b48162dcd4bcfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Jun 2025 13:23:29 +0800 Subject: [PATCH 27/33] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E8=AE=B0=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E3=80=82=202=E3=80=81=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203?= =?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=20=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97=EF=BC=9A=201=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=96=B0=E5=BB=BA=E6=A0=B8=E7=AE=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=B9=B6=E6=A0=B8=E7=AE=97=E3=80=82=202=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=BD=92=E6=A1=A3=203=E3=80=81=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97=20=E5=B7=A5?= =?UTF-8?q?=E8=B5=84=E5=8D=95=EF=BC=9A=201=E3=80=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=8F=91=E6=94=BE=202=E3=80=81=E6=89=B9=E9=87=8F=E6=92=A4?= =?UTF-8?q?=E5=9B=9E=20=E7=94=B3=E6=8A=A5=E8=A1=A8=EF=BC=9A=201=E3=80=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E7=94=B3=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index a7039d1f5..5eb2e1989 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -6817,11 +6817,12 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { @Override public void batDelete(AccountBatParam batParam) { - List paymentOrganizations = batParam.getPaymentOrganizations(); - for (Long paymentOrganization : paymentOrganizations) { + List ids = batParam.getIds(); + for (Long id : ids) { + InsuranceAccountBatchPO po = getInsuranceAccountBatchMapper().getById(id); AccountParam param = AccountParam.builder() - .billMonth(batParam.getBillMonth()) - .paymentOrganization(paymentOrganization) + .billMonth(po.getBillMonth()) + .paymentOrganization(po.getPaymentOrganization()) .build(); delete(param); } @@ -6829,11 +6830,12 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { @Override public void batFile(AccountBatParam batParam) { - List paymentOrganizations = batParam.getPaymentOrganizations(); - for (Long paymentOrganization : paymentOrganizations) { + List ids = batParam.getIds(); + for (Long id : ids) { + InsuranceAccountBatchPO po = getInsuranceAccountBatchMapper().getById(id); AccountParam param = AccountParam.builder() - .billMonth(batParam.getBillMonth()) - .paymentOrganization(paymentOrganization) + .billMonth(po.getBillMonth()) + .paymentOrganization(po.getPaymentOrganization()) .build(); file(param); } From 1ae436e91a17561a74066ad34d28a0153373d855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Jun 2025 15:05:44 +0800 Subject: [PATCH 28/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=A0=B8=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 5eb2e1989..4725c5790 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -6809,6 +6809,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { AccountParam param = AccountParam.builder() .billMonth(accountBatParam.getBillMonth()) .paymentOrganization(paymentOrganization) + .flag(true) .remarks(accountBatParam.getRemarks()) .build(); save(param); From 6ed1d5033fbca795bb801447688a5eeb8ee53473 Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Thu, 18 Sep 2025 14:15:02 +0800 Subject: [PATCH 29/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E6=95=B0=E6=8D=AE=E6=98=8E=E7=BB=86=E6=90=9C=E7=B4=A2?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/auth/AuthDataServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 582887859..2f9259b60 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; import java.util.Date; import java.util.HashSet; @@ -156,7 +157,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { public List listRoleData( AuthDataQueryParam param) { List authRoleDataDTOS = getAuthRoleDataMapper().listRoleData(param.getRoleId()); if (StrUtil.isNotEmpty(param.getUsername())){ - authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> StringUtils.isNotBlank(authRoleDataDTO.getUsername()) && authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList()); } return authRoleDataDTOS; } From f57582da529c252c452a7a52c23ffd80583e5e4a Mon Sep 17 00:00:00 2001 From: Harryxzy <822365880@qq.com> Date: Thu, 18 Sep 2025 15:38:13 +0800 Subject: [PATCH 30/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E6=90=9C=E7=B4=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/auth/AuthMemberServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index b3a5232b6..2ae8de5a4 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -24,6 +24,7 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; import java.util.*; import java.util.stream.Collectors; @@ -196,7 +197,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService public List listRoleEmp(AuthMemberQueryParam param) { List empDTOS = getAuthRoleEmpMapper().getByRoleId(param.getRoleId()); if(StrUtil.isNotEmpty(param.getUsername())){ - empDTOS = empDTOS.stream().filter(item -> item.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + empDTOS = empDTOS.stream().filter(item -> StringUtils.isNotBlank(item.getUsername()) && item.getUsername().contains(param.getUsername())).collect(Collectors.toList()); } return empDTOS; From fbce286c17c8bb1950a8b9be2fb1ccac18ee15d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 18 Sep 2025 16:31:58 +0800 Subject: [PATCH 31/33] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=86=E6=9D=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryArchiveItemServiceImpl.java | 2 -- .../engine/salary/service/impl/SalaryArchiveServiceImpl.java | 2 +- src/com/engine/salary/wrapper/SalaryArchiveWrapper.java | 3 --- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 9e353083e..ea78bfd74 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -656,8 +656,6 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi public XSSFWorkbook exportAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam) { // 1.工作簿名称 String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资项目调整记录"); - // 获取所有可被引用的薪资项目 - List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); String[] header = { SalaryI18nUtil.getI18nLabel(85429, "姓名"), SalaryI18nUtil.getI18nLabel(86187, "员工状态"), diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index ceab506eb..3e04c95da 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -543,7 +543,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // 1.工作簿名称 String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案"); // 获取所有可被引用的薪资项目 - List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); + List salaryItems = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(); Object[] header = { new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "", "", 0), new WeaTableColumnGroup("150px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "", "", 0), diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 85977afe1..38de24e1a 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -541,9 +541,6 @@ public class SalaryArchiveWrapper extends Service { return map; } - public Map selectSalaryArchiveColumns(String importType) { - return getSalaryArchiveService(user).selectSalaryArchiveColumns(SalaryArchiveImportTypeEnum.parseByValue(importType)); - } public Map checkSalaryArchiveInit(SalaryArchiveImportActionParam importData) { From e3d6cbe5a15c9c1d70ecfb94a5925234fc14c8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 30 Sep 2025 16:40:20 +0800 Subject: [PATCH 32/33] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctResultServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 77a091911..26433f489 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -1052,7 +1053,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public void updateLockStatusByParam(SalaryAcctResultUpdateLockStatusParam updateParam) { - List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(updateParam.getSalaryAcctRecordId()); + Set acctEmpIds = updateParam.getAcctEmpIds(); + List salaryAcctEmployees; + if (CollUtil.isNotEmpty(acctEmpIds)) { + salaryAcctEmployees = getSalaryAcctEmployeeService(user).listByIds(acctEmpIds); + } else { + salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(updateParam.getSalaryAcctRecordId()); + } + if (CollectionUtils.isEmpty(salaryAcctEmployees)) { return; } From 0adfa422a4c7fd917901eb1d2898a1e73fcc176f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 13 Oct 2025 13:47:55 +0800 Subject: [PATCH 33/33] =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index c558fd72d..f3380b545 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=3.0.2.2504.04 +version=3.0.2.2510.01 openFormulaForcedEditing=false \ No newline at end of file