From 1294e86c8c38b9c9af2eeff8e3da091a265eeedf Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 2 Jun 2023 15:25:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E8=87=AA=E5=8A=A8=E9=94=81?= =?UTF-8?q?=E5=AE=9A=E6=B7=BB=E5=8A=A0=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctExcelServiceImpl.java | 16 ++++--- .../impl/SalaryAcctResultServiceImpl.java | 42 ++++++++++++------- .../sys/constant/SalarySysConstant.java | 6 +++ 3 files changed, 42 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 2600bb01d..2877350c7 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -31,6 +31,7 @@ import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.sys.service.SalarySysConfService; @@ -1080,12 +1081,15 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc getSalaryAcctEmployeeService(user).batchSave(newSalaryAcctEmployees); } } - // 导入的列都自动锁定 - SalaryAcctResultUpdateLockStatusParam updateLockStatusParam = SalaryAcctResultUpdateLockStatusParam.builder() - .salaryItemIds(excelSalaryItemIds) - .salaryAcctRecordId(param.getSalaryAcctRecordId()) - .lockStatus(LockStatusEnum.LOCK).build(); - getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); + SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); + if(autoLock != null){ + // 导入的列都自动锁定 + SalaryAcctResultUpdateLockStatusParam updateLockStatusParam = SalaryAcctResultUpdateLockStatusParam.builder() + .salaryItemIds(excelSalaryItemIds) + .salaryAcctRecordId(param.getSalaryAcctRecordId()) + .lockStatus(LockStatusEnum.LOCK).build(); + getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); + } apidatas.put("successCount", successCount); apidatas.put("errorCount", failCount); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index e4ea91206..c6b0979df 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -30,6 +30,10 @@ import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; +import com.engine.salary.sys.entity.po.SalarySysConfPO; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -159,6 +163,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(SalaryAcctResultLogServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + private SalaryCheckResultService salaryCheckResultService; @@ -532,23 +540,25 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe encryptUtil.decryptList(salaryAcctResultPOSOld, SalaryAcctResultPO.class); // 保存参数转换成薪资核算结果po List salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(salaryAcctResultPOSOld, saveParam, salaryAcctEmployeePO, (long) user.getUID()); - // 对比核算结果提取修改了哪些薪资项目 - Set needLockItems = new HashSet<>(); - Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); - salaryAcctResultPOS.stream().forEach(PO -> { - String oldValue = Optional.ofNullable(oldResutMap.get(PO.getSalaryItemId())).map(SalaryAcctResultPO::getResultValue).orElse(""); - if(!StringUtils.equals(oldValue,PO.getResultValue())){ - needLockItems.add(PO.getSalaryItemId()); - } - }); - - // 编辑的列都自动锁定 - SalaryAcctResultUpdateLockStatusParam updateLockStatusParam = SalaryAcctResultUpdateLockStatusParam.builder() - .salaryItemIds(needLockItems) - .salaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()) - .lockStatus(LockStatusEnum.LOCK).build(); - getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); + SalarySysConfPO autoLock = getSalarySysConfService(user).getOneByCode(SalarySysConstant.EDIT_IMPORT_AUTO_LOCK); + if(autoLock != null){ + // 对比核算结果提取修改了哪些薪资项目 + Set needLockItems = new HashSet<>(); + Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); + salaryAcctResultPOS.stream().forEach(PO -> { + String oldValue = Optional.ofNullable(oldResutMap.get(PO.getSalaryItemId())).map(SalaryAcctResultPO::getResultValue).orElse(""); + if(!StringUtils.equals(oldValue,PO.getResultValue())){ + needLockItems.add(PO.getSalaryItemId()); + } + }); + // 编辑的列都自动锁定 + SalaryAcctResultUpdateLockStatusParam updateLockStatusParam = SalaryAcctResultUpdateLockStatusParam.builder() + .salaryItemIds(needLockItems) + .salaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId()) + .lockStatus(LockStatusEnum.LOCK).build(); + getSalaryAcctResultService(user).updateLockStatusByParam(updateLockStatusParam); + } // SalaryAcctRecordPO byId = getSalaryAcctRecordService(user).getById(salaryAcctEmployeePO.getSalaryAcctRecordId()); // 若保存编辑时一同传已发补发,则删除以下代码 // if(byId.getBackCalcStatus() != null && Objects.equals(byId.getBackCalcStatus(),1)){ diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 79dab2119..082a9568f 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -55,4 +55,10 @@ public class SalarySysConstant { * 需要申报功能 */ public static final String TAX_DECLARATION_FUNCTION = "taxDeclarationFunction"; + + /** + * 是否需要导入、编辑项目自动锁定conf_key + */ + public static final String EDIT_IMPORT_AUTO_LOCK = "EditImportAutoLock"; + }