diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 29881f5c2..19939dc12 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -142,7 +142,19 @@ public class SIAccountBiz extends Service { // insuranceSchemeContext.setNewValues(build); // siAccountLoggerTemplate.write(insuranceSchemeContext); } - account(param, employeeId, SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY, currentUserName); + try { + account(param, employeeId, SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY, currentUserName); + } catch(Exception e) { + // 回滚 + List list = Lists.newArrayList(MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class).getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); + list = SiAccountEncrypt.decryptInsuranceAccountBatchList(list); + if (CollectionUtils.isNotEmpty(list)) { + list.stream().forEach(f -> { + MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class).deleteById(f.getId()); + }); + } + throw new SalaryRunTimeException(e.getMessage()); + } } @@ -157,7 +169,7 @@ public class SIAccountBiz extends Service { }); } } - SalaryAssert.notEmpty(employeeIds, "no account data"); + SalaryAssert.notEmpty(employeeIds, "没有需要核算的人员"); AccountParam selectParam = new AccountParam(); selectParam.setBillMonth(param.getBillMonth()); selectParam.setPaymentOrganization(param.getPaymentOrganization());