汇通批量核算改为同步
This commit is contained in:
parent
cf3d070892
commit
d2663fe4ca
|
|
@ -418,7 +418,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
|||
for (int i = 0; i < salaryAcctRecordIds.size(); i++) {
|
||||
Long recordId = salaryAcctRecordIds.get(i);
|
||||
SalaryAcctCalculateParam calculateParam = SalaryAcctCalculateParam.builder().salaryAcctRecordId(recordId).build();
|
||||
getSalaryAcctResultWrapper(user).calculate(calculateParam);
|
||||
getSalaryAcctResultWrapper(user).calculate4Sync(calculateParam);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -435,7 +435,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
|||
}).collect(Collectors.toList());
|
||||
|
||||
ids.forEach(salaryAcctRecordId -> {
|
||||
getSalaryAcctResultWrapper(user).calculate(SalaryAcctCalculateParam.builder().salaryAcctRecordId(salaryAcctRecordId).build());
|
||||
getSalaryAcctResultWrapper(user).calculate4Sync(SalaryAcctCalculateParam.builder().salaryAcctRecordId(salaryAcctRecordId).build());
|
||||
});
|
||||
return ids;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -260,6 +260,54 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult
|
|||
|
||||
}
|
||||
|
||||
|
||||
public void calculate4Sync(SalaryAcctCalculateParam calculateParam) {
|
||||
log.info("开始核算V1{}", calculateParam);
|
||||
|
||||
|
||||
// 校验是否可以编辑
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId());
|
||||
boolean recordIsCanEdit = getSalaryApprovalRuleService(user).getRecordIsCanEdit(salaryAcctRecordPO);
|
||||
if (!recordIsCanEdit) {
|
||||
throw new SalaryRunTimeException("该核算记录已经发起审批,无法编辑或核算,请先删除审批流程");
|
||||
}
|
||||
//当前登陆人员
|
||||
DataCollectionEmployee simpleEmployee = new DataCollectionEmployee();
|
||||
simpleEmployee.setEmployeeId((long) user.getUID());
|
||||
// 检查薪资核算人员的个税扣缴义务人
|
||||
getSalaryAcctEmployeeWrapper(user).checkTaxAgent(calculateParam.getSalaryAcctRecordId());
|
||||
// 检查是否正在核算中
|
||||
ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId());
|
||||
if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) {
|
||||
log.warn("正在核算中,无法再次执行"+calculateParam.getSalaryAcctRecordId());
|
||||
return;
|
||||
}
|
||||
// 初始化进度
|
||||
ProgressDTO initProgress = new ProgressDTO()
|
||||
.setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中"))
|
||||
.setTitleLabelId(97515L)
|
||||
.setTotalQuantity(NumberUtils.INTEGER_ONE)
|
||||
.setCalculatedQuantity(NumberUtils.INTEGER_ZERO)
|
||||
.setProgress(BigDecimal.ZERO)
|
||||
.setStatus(true)
|
||||
.setMessage(StringUtils.EMPTY);
|
||||
getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), initProgress);
|
||||
// 异步执行薪资核算
|
||||
// LocalRunnable localRunnable = new LocalRunnable() {
|
||||
// @Override
|
||||
// public void execute() {
|
||||
// getSalaryAcctResultService(user).calculate(calculateParam, simpleEmployee);
|
||||
// }
|
||||
// };
|
||||
// ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.HRM, "salaryAcctCalculateV1", localRunnable);
|
||||
// new Thread() {
|
||||
// public void run() {
|
||||
// getSalaryAcctResultService(user).calculate(calculateParam, simpleEmployee);
|
||||
// }
|
||||
// }.start();
|
||||
getSalaryAcctResultService(user).calculate(calculateParam, simpleEmployee);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否有薪资核算结果的查看权限
|
||||
* @param salaryAcctRecordId
|
||||
|
|
|
|||
Loading…
Reference in New Issue