From 33a8ecb4f762d3587178b61fb7257f99dfcf33fd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 May 2023 14:17:31 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=A4=E6=96=AD=E8=83=BD=E5=90=A6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=92=8C=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/component/WeaFormOption.java | 31 +++++++++++++++++++ .../SalaryStatisticsDimensionService.java | 7 +++++ .../SalaryStatisticsDimensionServiceImpl.java | 5 +++ .../SalaryStatisticsReportWrapper.java | 20 ++++++++++++ 4 files changed, 63 insertions(+) diff --git a/src/com/engine/salary/component/WeaFormOption.java b/src/com/engine/salary/component/WeaFormOption.java index 75ec121af..ba01d7c58 100644 --- a/src/com/engine/salary/component/WeaFormOption.java +++ b/src/com/engine/salary/component/WeaFormOption.java @@ -8,16 +8,30 @@ public class WeaFormOption implements Serializable { private String content; private boolean disabled; + private boolean canEdit; + + private boolean canDelete; + public WeaFormOption() { this.disabled = Boolean.FALSE; } public WeaFormOption(String id, String content) { this.disabled = Boolean.FALSE; + this.canEdit = Boolean.TRUE; + this.canDelete = Boolean.TRUE; this.id = id; this.content = content; } + public WeaFormOption(String id, String content, boolean canEdit, boolean canDelete) { + this.disabled = Boolean.FALSE; + this.id = id; + this.content = content; + this.canEdit = canEdit; + this.canDelete = canDelete; + } + public String getId() { return this.id; } @@ -34,6 +48,7 @@ public class WeaFormOption implements Serializable { this.content = content; } + public boolean isDisabled() { return this.disabled; } @@ -41,4 +56,20 @@ public class WeaFormOption implements Serializable { public void setDisabled(boolean disabled) { this.disabled = disabled; } + + public boolean isCanEdit() { + return canEdit; + } + + public void setCanEdit(boolean canEdit) { + this.canEdit = canEdit; + } + + public boolean isCanDelete() { + return canDelete; + } + + public void setCanDelete(boolean canDelete) { + this.canDelete = canDelete; + } } diff --git a/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java b/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java index eb1619b08..7f3dd8b38 100644 --- a/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java +++ b/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java @@ -65,4 +65,11 @@ public interface SalaryStatisticsDimensionService { * @return */ Map delete(Collection ids); + + /** + * 获取默认薪酬统计维度 + * + * @return + */ + List listAllDefaultDimension(); } diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java index 10008f0b1..865015758 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java @@ -243,4 +243,9 @@ public class SalaryStatisticsDimensionServiceImpl extends Service implements Sal resultMap.put("msg", resultMsg); return resultMap; } + + @Override + public List listAllDefaultDimension() { + return getSalaryStatisticsDimensionMapper().listSome(SalaryStatisticsDimensionPO.builder().isDefault(NumberUtils.INTEGER_ONE).build()); + } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index de401e667..c4f209b75 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -106,6 +106,26 @@ public class SalaryStatisticsReportWrapper extends Service { List salaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAll(); List statsDimOptions = salaryStatisticsDimensions.stream().map(sd -> new WeaFormOption(sd.getId().toString(), sd.getDimName())).collect(Collectors.toList()); + + // 获取默认维度统计 + List defaultSalaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAllDefaultDimension(); + List defaultDimensionIds = defaultSalaryStatisticsDimensions.stream().map(SalaryStatisticsDimensionPO::getId).collect(Collectors.toList()); + // 获取有薪资统计报表引用的统计维度 + Set haveUsedDimIds = new HashSet<>(); + List salaryStatisticsReports = getSalaryStatisticsReportService(user).listAll(); + salaryStatisticsReports.stream().forEach(report -> Collections.addAll(haveUsedDimIds, report.getDimension().split(","))); + statsDimOptions.stream().forEach(option -> { + if (defaultDimensionIds.contains(Long.valueOf(option.getId()))){ + // 默认维度不允许修改、删除 + option.setCanDelete(false); + option.setCanEdit(false); + }else if(haveUsedDimIds.contains(option.getId())){ + // 被薪资统计报表引用的不能删除 + option.setCanEdit(true); + option.setCanDelete(false); + } + }); + // 1.构建基础信息表单 Map weaForm = new HashMap<>(); weaForm.put("statsDimOptions", statsDimOptions); From 32e79597459cbe2ed6986fc9e8e921f5a50ca3af Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 May 2023 14:49:39 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=A4=E6=96=AD=E8=83=BD=E5=90=A6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=92=8C=E7=BC=96=E8=BE=91-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SalaryStatisticsDimensionListDTO.java | 6 +++ .../SalaryStatisticsDimensionWrapper.java | 46 ++++++++++++++++--- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java b/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java index 7d76e822b..f0fb237af 100644 --- a/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java +++ b/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java @@ -39,4 +39,10 @@ public class SalaryStatisticsDimensionListDTO { //是否默认") @JsonIgnore private Integer isDefault; + + // 能否删除 + private boolean canDelete; + + // 能否编辑 + private boolean canEdit; } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java index 38046076e..11619c545 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java @@ -12,9 +12,12 @@ import com.engine.salary.report.entity.dto.SalaryStatisticsDimensionListDTO; import com.engine.salary.report.entity.param.SalaryStatisticsDimensionQueryParam; import com.engine.salary.report.entity.param.SalaryStatisticsDimensionSaveParam; import com.engine.salary.report.entity.po.SalaryStatisticsDimensionPO; +import com.engine.salary.report.entity.po.SalaryStatisticsReportPO; import com.engine.salary.report.enums.SalaryStatisticsDimensionTypeEnum; import com.engine.salary.report.service.SalaryStatisticsDimensionService; +import com.engine.salary.report.service.SalaryStatisticsReportService; import com.engine.salary.report.service.impl.SalaryStatisticsDimensionServiceImpl; +import com.engine.salary.report.service.impl.SalaryStatisticsReportServiceImpl; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.impl.SalaryItemServiceImpl; import com.engine.salary.util.JsonUtil; @@ -47,6 +50,14 @@ public class SalaryStatisticsDimensionWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SalaryStatisticsDimensionService getSalaryStatisticsDimensionService(User user) { + return ServiceUtil.getService(SalaryStatisticsDimensionServiceImpl.class, user); + } + + private SalaryStatisticsReportService getSalaryStatisticsReportService(User user) { + return ServiceUtil.getService(SalaryStatisticsReportServiceImpl.class, user); + } + /** * 薪酬统计维度列表 * @@ -57,14 +68,35 @@ public class SalaryStatisticsDimensionWrapper extends Service { PageInfo page = salaryStatisticsDimensionService(user).listPage(queryParam); List list = page.getList(); List dtoList= new ArrayList<>(); + + // 获取默认维度统计 + List defaultSalaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAllDefaultDimension(); + List defaultDimensionIds = defaultSalaryStatisticsDimensions.stream().map(SalaryStatisticsDimensionPO::getId).collect(Collectors.toList()); + // 获取有薪资统计报表引用的统计维度 + Set haveUsedDimIds = new HashSet<>(); + List salaryStatisticsReports = getSalaryStatisticsReportService(user).listAll(); + salaryStatisticsReports.stream().forEach(report -> Collections.addAll(haveUsedDimIds, report.getDimension().split(","))); if (CollectionUtils.isNotEmpty(list)) { - dtoList = list.stream().map(m -> SalaryStatisticsDimensionListDTO.builder() - .id(m.getId()) - .dimName(m.getDimName()) - .remark(m.getRemark()) - .dimType(SalaryStatisticsDimensionTypeEnum.getDefaultLabelByValue(m.getDimType())) - .isDefault(m.getIsDefault()) - .build()).collect(Collectors.toList()); + list.stream().forEach(m -> { + SalaryStatisticsDimensionListDTO dto = SalaryStatisticsDimensionListDTO.builder() + .id(m.getId()) + .dimName(m.getDimName()) + .remark(m.getRemark()) + .dimType(SalaryStatisticsDimensionTypeEnum.getDefaultLabelByValue(m.getDimType())) + .isDefault(m.getIsDefault()) + .canEdit(true) + .canDelete(true) + .build(); + if (defaultDimensionIds.contains(dto.getId())){ + // 默认维度不允许修改、删除 + dto.setCanEdit(false); + dto.setCanDelete(false); + }else if(haveUsedDimIds.contains(dto.getId().toString())){ + // 被薪资统计报表引用的不能删除 + dto.setCanDelete(false); + } + dtoList.add(dto); + }); } PageInfo salaryStatisticsDimensionListDTOPageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); From 155a00623aa4613fa4dd6387dd4aaec8809da1b3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 12 Jun 2023 10:45:01 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=94=81=E5=AE=9A=20=E6=A0=B9=E6=8D=AEconfVa?= =?UTF-8?q?lue=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 +- .../engine/salary/service/impl/SalaryAcctResultServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 2877350c7..6801cb415 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1082,7 +1082,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } } SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); - if(autoLock != null){ + if(autoLock != null && StringUtils.equals(autoLock.getConfValue(),"1")){ // 导入的列都自动锁定 SalaryAcctResultUpdateLockStatusParam updateLockStatusParam = SalaryAcctResultUpdateLockStatusParam.builder() .salaryItemIds(excelSalaryItemIds) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 92d335c4f..2c04d6137 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -541,7 +541,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 保存参数转换成薪资核算结果po List salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(salaryAcctResultPOSOld, saveParam, salaryAcctEmployeePO, (long) user.getUID()); SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); - if(autoLock != null){ + if(autoLock != null && StringUtils.equals(autoLock.getConfValue(),"1")){ // 对比核算结果提取修改了哪些薪资项目 Set needLockItems = new HashSet<>(); Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); From 1460d32ae4c8c46849dfabd8f9d0101aded11a6a Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 13 Jun 2023 14:49:26 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9=EF=BC=8C=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E3=80=81=E5=AF=BC=E5=87=BA=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E5=86=85=E5=AE=B9=E5=92=8C=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=8C=85=E6=8B=AC=E8=87=AA=E9=80=89=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 20 +++++- .../service/impl/ColumnBuildServiceImpl.java | 62 ++++++++++++++++--- .../service/impl/SIExportServiceImpl.java | 60 +++++++++++++++--- .../service/impl/SIImportServiceImpl.java | 6 +- .../service/impl/SISchemeServiceImpl.java | 20 +++++- 5 files changed, 142 insertions(+), 26 deletions(-) diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index ca60b7460..dac9c3f20 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -1195,9 +1195,23 @@ public class SIArchivesBiz { } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialMap); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundMap); - result.put(WelfareTypeEnum.OTHER.getValue(), otherMap); + // map根据key排序 + LinkedHashMap socialMapWithAscKey = socialMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundMapWithAscKey = fundMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherMapWithAscKey = otherMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialMapWithAscKey); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundMapWithAscKey); + result.put(WelfareTypeEnum.OTHER.getValue(), otherMapWithAscKey); return result; } finally { sqlSession.close(); diff --git a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java index 34a3d99f6..37cbfd652 100644 --- a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java @@ -52,8 +52,8 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic list.add(employeeIdColumn); list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 86185, "部门"), "department")); list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 86186, "手机号"), "mobile")); - list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 86187, "员工状态"), "employeeStatus")); list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 1933, "工号"), "workcode")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 86187, "员工状态"), "employeeStatus")); list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 100377, "数据来源"), "sourceFrom")); if (paymentStatus.equals(PaymentStatusEnum.REPAIR.getValue())) { list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 100379, "补缴月份"), "supplementaryMonth")); @@ -166,9 +166,23 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic otherColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 100293, "申报基数"), social + "otherBase"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } @@ -225,9 +239,23 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic otherColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 87159, "个人"), social + "otherPer"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } @@ -284,9 +312,23 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic otherColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 100289, "单位"), social + "otherCom"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index 9faa7fd87..ae330912a 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -392,9 +392,23 @@ public class SIExportServiceImpl extends Service implements SIExportService { social + "otherCom"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } @@ -454,9 +468,23 @@ public class SIExportServiceImpl extends Service implements SIExportService { social + "otherPer"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } @@ -605,9 +633,23 @@ public class SIExportServiceImpl extends Service implements SIExportService { otherColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel(100293, "申报基数"), social + "otherBase"); } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); - result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + // map根据value排序 + LinkedHashMap socialColumnsWithAscValue = socialColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundColumnsWithAscValue = fundColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherColumnsWithAscValue = otherColumns.entrySet().stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumnsWithAscValue); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumnsWithAscValue); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumnsWithAscValue); return result; } } diff --git a/src/com/engine/salary/service/impl/SIImportServiceImpl.java b/src/com/engine/salary/service/impl/SIImportServiceImpl.java index 4a5ffae54..ae235c3fc 100644 --- a/src/com/engine/salary/service/impl/SIImportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIImportServiceImpl.java @@ -225,7 +225,11 @@ public class SIImportServiceImpl extends Service implements SIImportService { * @return */ public Map welfareNameIdMap(WelfareTypeEnum welfareTypeEnum) { - return getICategoryMapper().listByWelfareType(welfareTypeEnum.getValue(),null).stream().collect(Collectors.toMap(ICategoryPO::getInsuranceName, ICategoryPO::getId)); +// return getICategoryMapper().listByWelfareType(welfareTypeEnum.getValue(),null).stream().collect(Collectors.toMap(ICategoryPO::getInsuranceName, ICategoryPO::getId)); + return getICategoryMapper().listByWelfareType(welfareTypeEnum.getValue(),null) + .stream() + .sorted(Comparator.comparing(ICategoryPO::getId)) + .collect(LinkedHashMap::new, (map, item) -> map.put(item.getInsuranceName(), item.getId()), LinkedHashMap::putAll); } public Map welfareMap() { diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index d98a6d746..a3fdc6cc0 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -578,9 +578,23 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { } }); - result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialMap); - result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundMap); - result.put(WelfareTypeEnum.OTHER.getValue(), otherMap); + // map根据key排序 + LinkedHashMap socialMapWithAscKey = socialMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap fundMapWithAscKey = fundMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + LinkedHashMap otherMapWithAscKey = otherMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialMapWithAscKey); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundMapWithAscKey); + result.put(WelfareTypeEnum.OTHER.getValue(), otherMapWithAscKey); return result; } From 12b4977067bb08eaee2f9cd6b24b3226018ee858 Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 13 Jun 2023 15:43:10 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E9=80=80=E5=B7=AE?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SIRecessionServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java index 3a6476889..e1cf27275 100644 --- a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java @@ -219,7 +219,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic String socialComJson = insuranceAccountDetailPO.getSocialComJson(); if (StringUtils.isNotBlank(socialComJson)) { HashMap jsonMap = new HashMap<>(); - HashMap hashMap = JSON.parseObject(socialPerJson, new HashMap().getClass()); + HashMap hashMap = JSON.parseObject(socialComJson, new HashMap().getClass()); hashMap.forEach((k, v) -> { if (StringUtils.isNotBlank(v)) { v = new BigDecimal(v).negate().toPlainString(); @@ -254,7 +254,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic String fundComJson = insuranceAccountDetailPO.getFundComJson(); if (StringUtils.isNotBlank(fundComJson)) { HashMap jsonMap = new HashMap<>(); - HashMap hashMap = JSON.parseObject(fundPerJson, new HashMap().getClass()); + HashMap hashMap = JSON.parseObject(fundComJson, new HashMap().getClass()); hashMap.forEach((k, v) -> { if (StringUtils.isNotBlank(v)) { v = new BigDecimal(v).negate().toPlainString(); @@ -290,7 +290,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic String otherComJson = insuranceAccountDetailPO.getOtherComJson(); if (StringUtils.isNotBlank(otherComJson)) { HashMap jsonMap = new HashMap<>(); - HashMap hashMap = JSON.parseObject(otherPerJson, new HashMap().getClass()); + HashMap hashMap = JSON.parseObject(otherComJson, new HashMap().getClass()); hashMap.forEach((k, v) -> { if (StringUtils.isNotBlank(v)) { v = new BigDecimal(v).negate().toPlainString(); From 3638fb469f884dee57f1b41b222569c0e19701c1 Mon Sep 17 00:00:00 2001 From: sy Date: Wed, 14 Jun 2023 10:33:26 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88=EF=BC=8C=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E3=80=81=E5=AF=BC=E5=87=BA=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E5=86=85=E5=AE=B9=E5=92=8C=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=8C=85=E6=8B=AC=E8=87=AA=E9=80=89=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryArchiveExcelServiceImpl.java | 7 +++++-- .../salary/service/impl/SalaryArchiveServiceImpl.java | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index 9e95a4c43..2ce7e1916 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -42,6 +42,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import weaver.file.ImageFileManager; +import weaver.general.Util; import weaver.hrm.User; import java.io.InputStream; @@ -278,8 +279,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // header.add(SalaryI18nUtil.getI18nLabel(87889, "薪资账套")); // header.add(SalaryI18nUtil.getI18nLabel(86319, "入职日期")); header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); + header.add(SalaryI18nUtil.getI18nLabel(1933, "工号")); header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); - header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); + header.add(SalaryI18nUtil.getI18nLabel(15890, "员工状态")); // if (enableHr) { // header.add(SalaryI18nUtil.getI18nLabel(106277, "身份证号码")); // } @@ -350,8 +352,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // row.add(e.get("salarySob").toString()); // row.add(e.get("hiredate")); row.add(e.get("departmentName")); - row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); row.add(Optional.ofNullable(e.get("workcode")).orElse("").toString()); + row.add(e.get("mobile") == null ? "" : e.get("mobile").toString()); + row.add(Util.null2String(e.get("employeeStatus"))); // if (enableHr) { // row.add(Optional.ofNullable(e.get("idNo")).orElse("").toString()); // } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 1dcf84c18..1c73dc8ce 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -459,7 +459,14 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案"); // 获取所有可被引用的薪资项目 List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); - String[] header = {SalaryI18nUtil.getI18nLabel(85429, "姓名"), SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), SalaryI18nUtil.getI18nLabel(86185, "部门"), SalaryI18nUtil.getI18nLabel(86176, "工号"), SalaryI18nUtil.getI18nLabel(86186, "手机号"), SalaryI18nUtil.getI18nLabel(91075, "状态"), SalaryI18nUtil.getI18nLabel(91075, "起始发薪日期"), SalaryI18nUtil.getI18nLabel(91075, "最后发薪日期")}; + String[] header = {SalaryI18nUtil.getI18nLabel(85429, "姓名"), + SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), + SalaryI18nUtil.getI18nLabel(86185, "部门"), + SalaryI18nUtil.getI18nLabel(86176, "工号"), + SalaryI18nUtil.getI18nLabel(86186, "手机号"), + SalaryI18nUtil.getI18nLabel(15890, "员工状态"), + SalaryI18nUtil.getI18nLabel(91075, "起始发薪日期"), + SalaryI18nUtil.getI18nLabel(91075, "最后发薪日期")}; // 2.表头 List headerList = new ArrayList<>(Arrays.asList(header)); for (SalaryItemPO salaryItem : salaryItems) { From c87a754888eb5c1747a1c78f9f0a9efd04da4383 Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 15 Jun 2023 10:23:03 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=EF=BC=8C=E8=96=AA=E8=B5=84=E8=B4=A6=E5=A5=97=E3=80=81=E4=B8=AA?= =?UTF-8?q?=E7=A8=8E=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA=E3=80=81?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E9=99=8D=E5=BA=8F?= =?UTF-8?q?=E6=8E=92=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml | 2 +- src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml | 2 +- src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml index 59e4d3e1b..557ff7364 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml @@ -462,7 +462,7 @@ WHERE delete_type = 0 - ORDER BY sorted_index DESC, id DESC + ORDER BY sorted_index DESC, create_time DESC diff --git a/src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml b/src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml index b68b5c25d..84e424805 100644 --- a/src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml +++ b/src/com/engine/salary/mapper/taxagent/TaxAgentMapper.xml @@ -45,7 +45,7 @@ FROM hrsa_tax_agent t WHERE delete_type = 0 - ORDER BY sorted_index DESC + ORDER BY sorted_index DESC, create_time DESC From 2480525fa655d753181a03c623c72237efea8786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 15 Jun 2023 10:44:31 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=A1=A3=E6=A1=88bug=20=E7=BC=93=E5=AD=98=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryArchiveServiceImpl.java | 5 +--- .../impl/TaxAgentManageRangeServiceImpl.java | 11 +++++++-- .../engine/salary/util/SalaryEnumUtil.java | 1 - .../salary/web/SalaryCommonController.java | 23 +++++++++++++++++++ .../salary/wrapper/SalaryCommonWrapper.java | 23 +++++++++++++++++++ .../salary/wrapper/TaxAgentWrapper.java | 10 -------- 6 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 src/com/engine/salary/wrapper/SalaryCommonWrapper.java diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 1dcf84c18..9b14cb822 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -259,8 +259,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe * @param currentEmployeeId */ public void handleChangeData(Long currentEmployeeId) { - //开始同步中.... - Util_DataCache.setObjVal("salaryArchiveChangeSign", "1"); + // 所有增量人员列表 List taxAgentEmpChangeList = getTaxAgentEmpChangeService(user).listAllByModule(TaxAgentEmpChangeModuleEnum.SALARY_ARCHIVE); if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { @@ -303,8 +302,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } /** 增量处理 end ***/ - //同步结束.... - Util_DataCache.setObjVal("salaryArchiveChangeSign", "0"); } diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index 680eb9337..e1e9bd340 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -4,7 +4,6 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.biz.EmployBiz; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.HrmStatus; @@ -352,7 +351,15 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM //生成薪资档案 String salaryArchiveChangeSign = (String) Util_DataCache.getObjVal("salaryArchiveChangeSign"); if (salaryArchiveChangeSign == null || "0".equals(salaryArchiveChangeSign)) { - getSalaryArchiveService(user).handleChangeData(1L); + try { + //开始同步中.... + Util_DataCache.setObjVal("salaryArchiveChangeSign", "1"); + getSalaryArchiveService(user).handleChangeData(1L); + }finally { + //同步结束.... + Util_DataCache.setObjVal("salaryArchiveChangeSign", "0"); + } + } //生成社保福利档案 String welSign = (String) Util_DataCache.getObjVal("welfareChangeSign"); diff --git a/src/com/engine/salary/util/SalaryEnumUtil.java b/src/com/engine/salary/util/SalaryEnumUtil.java index cf2abcd2c..0294bd14c 100644 --- a/src/com/engine/salary/util/SalaryEnumUtil.java +++ b/src/com/engine/salary/util/SalaryEnumUtil.java @@ -88,5 +88,4 @@ public class SalaryEnumUtil { } - } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 30b4dc313..ca7a439dc 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,7 +1,9 @@ package com.engine.salary.web; +import com.engine.common.util.ServiceUtil; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; +import com.engine.salary.wrapper.SalaryCommonWrapper; import lombok.extern.slf4j.Slf4j; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -20,6 +22,10 @@ import java.util.Map; @Slf4j public class SalaryCommonController { + private SalaryCommonWrapper getSalaryCommonWrapper(User user) { + return ServiceUtil.getService(SalaryCommonWrapper.class, user); + } + @GET @Path("/enum/list") @Produces(MediaType.APPLICATION_JSON) @@ -29,4 +35,21 @@ public class SalaryCommonController { } + @GET + @Path("/cache/info") + @Produces(MediaType.APPLICATION_JSON) + public String getCacheInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "key") String key) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getCacheInfo, key); + } + + @GET + @Path("/cache/remove") + @Produces(MediaType.APPLICATION_JSON) + public String removeCache(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "key") String key) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::removeCache, key); + } + + } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java new file mode 100644 index 000000000..baec86d91 --- /dev/null +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -0,0 +1,23 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.service.SalaryCacheService; +import com.engine.salary.service.impl.SalaryCacheServiceImpl; +import weaver.hrm.User; + + +public class SalaryCommonWrapper extends Service { + + private SalaryCacheService getSalaryCacheService(User user) { + return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); + } + + public String getCacheInfo(String key) { + return getSalaryCacheService(user).get(key); + } + + public void removeCache(String key) { + getSalaryCacheService(user).remove(key); + } +} diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 86df32a70..a59de95cc 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -382,11 +382,6 @@ public class TaxAgentWrapper extends Service { String syncRange = Util.null2String(Util_DataCache.getObjVal(index)); if (StringUtils.isEmpty(syncRange)) { getTaxAgentManageRangeService(user).syncManageRange(taxAgentIds, index); -// try { -// TimeUnit.SECONDS.sleep(2); -// } catch (InterruptedException e) { -// -// } } else { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(135788, "人员范围同步过于频繁,请稍后再试")); } @@ -403,11 +398,6 @@ public class TaxAgentWrapper extends Service { String syncRange = Util.null2String(Util_DataCache.getObjVal(SalaryCacheKey.TAX_AGENT_MANAGE_RANGE_SYNC)); if (StringUtils.isEmpty(syncRange)) { getTaxAgentManageRangeService(user).syncManageRange(null, SalaryCacheKey.TAX_AGENT_MANAGE_RANGE_SYNC); -// try { -// TimeUnit.SECONDS.sleep(2); -// } catch (InterruptedException e) { -// -// } } else { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(135788, "人员范围同步过于频繁,请稍后再试")); } From 512510c623f43fe4f70ba25a8395d1fc30f99f02 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 16 Jun 2023 11:49:23 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E8=83=BD=E5=A4=9F=E5=90=A6=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacollection/dto/AttendQuoteListDTO.java | 10 ++++++++++ .../mapper/datacollection/AttendQuoteMapper.xml | 2 +- .../salary/service/SalaryAcctRecordService.java | 2 +- .../service/impl/AttendQuoteServiceImpl.java | 15 +++++++++++++++ .../service/impl/SalaryAcctRecordServiceImpl.java | 5 +++++ 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java index a90d70267..f058c3d91 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java @@ -69,4 +69,14 @@ public class AttendQuoteListDTO { * 薪资核算状态。0:未核算、1:已核算 */ private Integer salaryAccountingStatus; + + /** + * 能否删除 + */ + private Boolean canDelete; + + /** + * 薪资账套id + */ + private Long salarySobId; } diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteMapper.xml index 2398a8325..68424e89e 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteMapper.xml @@ -245,7 +245,7 @@ id , t1.salary_year_month, - t1.salary_sob_id, + t1.salary_sob_id AS salarySobId, t2.name AS salary_sob_name, t1.source_type, t1.attend_cycle, diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java index 5e1f16cbf..1ba3419bf 100644 --- a/src/com/engine/salary/service/SalaryAcctRecordService.java +++ b/src/com/engine/salary/service/SalaryAcctRecordService.java @@ -206,5 +206,5 @@ public interface SalaryAcctRecordService { List listBySalaryAcctEmpId(Long salaryAcctEmpId); - + List listSome(SalaryAcctRecordPO po); } diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index 177cca276..e9919b070 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.AttendQuoteBiz; import com.engine.salary.biz.AttendQuoteDataBiz; import com.engine.salary.biz.AttendQuoteDataValueBiz; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.datacollection.dto.AttendQuoteListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteDataQueryParam; import com.engine.salary.entity.datacollection.param.AttendQuoteQueryParam; @@ -62,9 +63,13 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic public PageInfo listPage(AttendQuoteQueryParam queryParam) { List declareMonth = queryParam.getSalaryYearMonth(); + SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO(); if (CollectionUtils.isNotEmpty(declareMonth)) { queryParam.setSalaryYearMonth(declareMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryYearMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); + LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00")) + .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build(); + queryRecordParam.setSalaryMonths(salaryMonth); } @@ -77,9 +82,19 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic return new PageInfo<>(AttendQuoteListDTO.class); } queryParam.setSalarySobIds(salarySobIds); + queryRecordParam.setSalarySobIds(salarySobIds); } + // 获取已经归档的记录 + List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam); + List archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) + .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId()) + .collect(Collectors.toList()); + + List list = getAttendQuoteMapper().list(queryParam); + list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) )); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteListDTO.class); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 434b74638..af5b48f39 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -789,4 +789,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe public List listBySalaryAcctEmpId(Long salaryAcctEmpId) { return getSalaryAcctResultService(user).listBySalaryAcctEmployeeId(salaryAcctEmpId); } + + @Override + public List listSome(SalaryAcctRecordPO po) { + return getSalaryAcctRecordMapper().listSome(po); + } } From ee7936a9bf07aeea1b277540818bb578665cc64e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 16 Jun 2023 13:33:38 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E8=83=BD=E5=A4=9F=E5=90=A6=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AttendQuoteServiceImpl.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index e9919b070..7f4b96a60 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -5,7 +5,6 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.AttendQuoteBiz; import com.engine.salary.biz.AttendQuoteDataBiz; import com.engine.salary.biz.AttendQuoteDataValueBiz; -import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.datacollection.dto.AttendQuoteListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteDataQueryParam; import com.engine.salary.entity.datacollection.param.AttendQuoteQueryParam; @@ -30,10 +29,7 @@ import weaver.hrm.User; import java.time.LocalDate; import java.time.YearMonth; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -63,13 +59,13 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic public PageInfo listPage(AttendQuoteQueryParam queryParam) { List declareMonth = queryParam.getSalaryYearMonth(); - SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO(); +// SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO(); if (CollectionUtils.isNotEmpty(declareMonth)) { queryParam.setSalaryYearMonth(declareMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryYearMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); - LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00")) - .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build(); - queryRecordParam.setSalaryMonths(salaryMonth); +// LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00")) +// .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build(); +// queryRecordParam.setSalaryMonths(salaryMonth); } @@ -82,18 +78,18 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic return new PageInfo<>(AttendQuoteListDTO.class); } queryParam.setSalarySobIds(salarySobIds); - queryRecordParam.setSalarySobIds(salarySobIds); +// queryRecordParam.setSalarySobIds(salarySobIds); } // 获取已经归档的记录 - List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam); - List archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) - .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId()) - .collect(Collectors.toList()); +// List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam); +// List archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) +// .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId()) +// .collect(Collectors.toList()); List list = getAttendQuoteMapper().list(queryParam); - list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) )); +// list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) )); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteListDTO.class); @@ -113,6 +109,13 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic if (CollectionUtils.isNotEmpty(accountingAttendQuotes)) { throw new SalaryRunTimeException("已经核算完成的数据不能删除"); } + + List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(SalaryAcctRecordPO.builder().salarySobId(attendQuotes.get(0).getSalarySobId()) + .salaryMonth(attendQuotes.get(0).getSalaryYearMonth()).build()); + Optional haveArchived = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).findFirst(); + if(haveArchived.isPresent()){ + throw new SalaryRunTimeException("已经核算完成的数据不能删除"); + } List unAccountingIds = attendQuotes.stream().filter(e -> e.getSalaryAccountingStatus().equals(0)).map(AttendQuoteListDTO::getId).collect(Collectors.toList()); // 1.删除未核算的考勤引用 biz.deleteByIds(unAccountingIds);