修复加锁顺序
This commit is contained in:
parent
4779cc861e
commit
d07ded883f
|
|
@ -49,7 +49,8 @@ public class SalaryAcctCalculateBO {
|
|||
/**
|
||||
* 核算锁定值
|
||||
*/
|
||||
private Map<Long, SalaryAcctResultPO> salaryAcctLockResultPOS;
|
||||
private Map<String, SalaryAcctResultPO> salaryAcctLockResultPOS;
|
||||
private List<Long> lockSalaryItemIds;
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -133,7 +133,8 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId);
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
|
||||
//核算锁定的值
|
||||
Map<Long, SalaryAcctResultPO> salaryAcctLockResultPOS = MapUtils.emptyIfNull(salaryAcctCalculateBO.getSalaryAcctLockResultPOS());
|
||||
Map<String, SalaryAcctResultPO> salaryAcctLockResultPOS = MapUtils.emptyIfNull(salaryAcctCalculateBO.getSalaryAcctLockResultPOS());
|
||||
List<Long> lockSalaryItemIds = salaryAcctCalculateBO.getLockSalaryItemIds();
|
||||
// 9、查询相同税款所属期内涉及合并计税的其他薪资核算结果
|
||||
Set<Long> otherSalaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getOtherSalaryAcctRecordPOS(), SalaryAcctRecordPO::getId);
|
||||
List<SalaryAcctResultPO> otherSalaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndEmployeeIds(otherSalaryAcctRecordIds, employeeIds);
|
||||
|
|
@ -156,6 +157,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
List<SalaryAcctResultTempPO> salaryAcctResultTempPOS = Lists.newArrayList();
|
||||
// 开始核算
|
||||
for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) {
|
||||
Long salaryAcctEmployeePOId = salaryAcctEmployeePO.getId();
|
||||
//1 获取当前薪资核算人员的公式中的变量的值
|
||||
List<CalculateFormulaVarBO.FormulaVarValue> formulaVarValues = formulaVarMap.get(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId());
|
||||
//2人员信息
|
||||
|
|
@ -194,8 +196,8 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
resultValue = SalaryAcctFormulaBO.roundResultValue(resultValue, salaryItemPO);
|
||||
|
||||
//是否锁定
|
||||
if (salaryAcctLockResultPOS.containsKey(salaryItemId) && salaryAcctLockResultPOS.get(salaryItemId) != null) {
|
||||
resultValue = salaryAcctLockResultPOS.get(salaryItemId).getResultValue();
|
||||
if (lockSalaryItemIds.contains(salaryItemId) && salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId) != null) {
|
||||
resultValue = salaryAcctLockResultPOS.get(salaryItemId + "_" + salaryAcctEmployeePOId).getResultValue();
|
||||
}
|
||||
|
||||
// 将已经计算过的薪资项目的值转换成公式变量的值添加到集合中
|
||||
|
|
@ -207,7 +209,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
// 转换成薪资核算结果po
|
||||
SalaryAcctResultTempPO salaryAcctResultTempPO = new SalaryAcctResultTempPO()
|
||||
.setSalaryAcctRecordId(salaryAcctEmployeePO.getSalaryAcctRecordId())
|
||||
.setSalaryAcctEmpId(salaryAcctEmployeePO.getId())
|
||||
.setSalaryAcctEmpId(salaryAcctEmployeePOId)
|
||||
.setEmployeeId(salaryAcctEmployeePO.getEmployeeId())
|
||||
.setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId())
|
||||
.setSalarySobId(salaryAcctEmployeePO.getSalarySobId())
|
||||
|
|
|
|||
|
|
@ -548,14 +548,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
|
||||
//核算锁定值
|
||||
List<Long> lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds();
|
||||
Map<Long, SalaryAcctResultPO> acctResults = new HashMap<>();
|
||||
Map<String, SalaryAcctResultPO> acctResults = new HashMap<>();
|
||||
if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) {
|
||||
List<SalaryAcctResultPO> acctResultPOS = listBySalaryAcctRecordIds(Collections.singleton(calculateParam.getSalaryAcctRecordId()));
|
||||
acctResults = Optional.ofNullable(acctResultPOS)
|
||||
.orElse(new ArrayList<>())
|
||||
.stream()
|
||||
.filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId()))
|
||||
.collect(Collectors.toMap(SalaryAcctResultPO::getSalaryItemId, a -> a, (a, b) -> a));
|
||||
.collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a));
|
||||
}
|
||||
|
||||
// 8、查询公式详情
|
||||
|
|
@ -595,6 +595,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
.setSalarySobCycleDTO(salarySobCycleDTO)
|
||||
.setOtherSalaryAcctRecordPOS(otherSalaryAcctRecordPOS)
|
||||
.setSalaryAcctLockResultPOS(MapUtils.emptyIfNull(acctResults))
|
||||
.setLockSalaryItemIds(lockSalaryItemIds)
|
||||
.setSalarySobItemPOS(salarySobItemPOS)
|
||||
.setSalaryItemIdWithPriorityList(salarySobItemsWithPriority)
|
||||
.setExpressFormulas(expressFormulas)
|
||||
|
|
@ -741,14 +742,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
List<SalaryAcctResultPO> salaryAcctResultValues = this.listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
|
||||
Map<Long, SalaryAcctResultPO> salaryAcctResultValueMap = SalaryEntityUtil.convert2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId);
|
||||
// 值可以锁定的薪资项目
|
||||
Set<Long> salaryItemIds = canLockSalaryItemIds(salaryAcctRecord.getSalarySobId());
|
||||
// Set<Long> salaryItemIds = canLockSalaryItemIds(salaryAcctRecord.getSalarySobId());
|
||||
// if (Objects.nonNull(updateParam.getSalaryItemId())) {
|
||||
// if (!salaryItemIds.contains(updateParam.getSalaryItemId())) {
|
||||
// return;
|
||||
// }
|
||||
// salaryItemIds = Collections.singleton(updateParam.getSalaryItemId());
|
||||
// }
|
||||
salaryItemIds = Collections.singleton(updateParam.getSalaryItemId());
|
||||
Set<Long> salaryItemIds = Collections.singleton(updateParam.getSalaryItemId());
|
||||
if (updateParam.getLockStatus() == LockStatusEnum.LOCK) {
|
||||
salaryAcctRecord.getLockSalaryItemIds().addAll(salaryItemIds);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue