导入自动锁定添加开关

This commit is contained in:
Harryxzy 2023-06-02 15:25:46 +08:00
parent 52b592dd7e
commit 1294e86c8c
3 changed files with 42 additions and 22 deletions

View File

@ -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);

View File

@ -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<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(salaryAcctResultPOSOld, saveParam, salaryAcctEmployeePO, (long) user.getUID());
// 对比核算结果提取修改了哪些薪资项目
Set<Long> needLockItems = new HashSet<>();
Map<Long, SalaryAcctResultPO> 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<Long> needLockItems = new HashSet<>();
Map<Long, SalaryAcctResultPO> 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)){

View File

@ -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";
}