|
@ -70,6 +70,8 @@ public class VtbVerificationApplication { |
|
|
private SeeYonRequestService seeYonService; |
|
|
private SeeYonRequestService seeYonService; |
|
|
|
|
|
|
|
|
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ |
|
|
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ |
|
|
|
|
|
//临时测试
|
|
|
|
|
|
boolean devFlag = false; |
|
|
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId()); |
|
|
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId()); |
|
|
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ |
|
|
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ |
|
|
Assert.throwEx("费用申请处于未非审批状态!"); |
|
|
Assert.throwEx("费用申请处于未非审批状态!"); |
|
@ -79,7 +81,12 @@ public class VtbVerificationApplication { |
|
|
//检测参数的金额
|
|
|
//检测参数的金额
|
|
|
this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects); |
|
|
this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects); |
|
|
boolean isBackCommit = affairCommit.getState()==2; |
|
|
boolean isBackCommit = affairCommit.getState()==2; |
|
|
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); |
|
|
R<String> result; |
|
|
|
|
|
if(!devFlag){ |
|
|
|
|
|
result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); |
|
|
|
|
|
}else { |
|
|
|
|
|
result = R.ok(); |
|
|
|
|
|
} |
|
|
if(result.getStatus()==200){ |
|
|
if(result.getStatus()==200){ |
|
|
// 判断是否含有下个节点
|
|
|
// 判断是否含有下个节点
|
|
|
//String flag = result.getData();
|
|
|
//String flag = result.getData();
|
|
@ -90,7 +97,9 @@ public class VtbVerificationApplication { |
|
|
} |
|
|
} |
|
|
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); |
|
|
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); |
|
|
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); |
|
|
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); |
|
|
|
|
|
if(devFlag){ |
|
|
|
|
|
summeryResult = "finished"; |
|
|
|
|
|
} |
|
|
R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); |
|
|
R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); |
|
|
try { |
|
|
try { |
|
|
//解决同步冻结时有过期的活动
|
|
|
//解决同步冻结时有过期的活动
|
|
@ -116,7 +125,6 @@ public class VtbVerificationApplication { |
|
|
*/ |
|
|
*/ |
|
|
private void checkParamAmount(TbsAffairCommitBo affairCommit, List<VtbVerificationSubjectCenter> verificationSubjectCenterList, List<VtbVerificationSubject> verificationSubjects) { |
|
|
private void checkParamAmount(TbsAffairCommitBo affairCommit, List<VtbVerificationSubjectCenter> verificationSubjectCenterList, List<VtbVerificationSubject> verificationSubjects) { |
|
|
boolean isChangeCommit = verificationSubjectCenterList.size()>0; |
|
|
boolean isChangeCommit = verificationSubjectCenterList.size()>0; |
|
|
boolean isAutoCommit = verificationSubjects.size()>0; |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ |
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ |
|
|
if(isChangeCommit){ |
|
|
if(isChangeCommit){ |
|
|
Assert.throwEx("当前核销不支持科目维度修改金额"); |
|
|
Assert.throwEx("当前核销不支持科目维度修改金额"); |
|
@ -135,9 +143,6 @@ public class VtbVerificationApplication { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ |
|
|
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ |
|
|
if(isAutoCommit){ |
|
|
|
|
|
Assert.throwEx("当前核销不支持成本中心维度修改金额"); |
|
|
|
|
|
} |
|
|
|
|
|
for (TbsAffairCommitBo.AffairSubjectCenterLine subjectCenterLine : affairCommit.getAffairSubjectCenterLines()) { |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterLine subjectCenterLine : affairCommit.getAffairSubjectCenterLines()) { |
|
|
VtbVerificationSubjectCenter currSubjectCenter = null; |
|
|
VtbVerificationSubjectCenter currSubjectCenter = null; |
|
|
BigDecimal changeAmt = null; |
|
|
BigDecimal changeAmt = null; |
|
@ -146,7 +151,7 @@ public class VtbVerificationApplication { |
|
|
currSubjectCenter = subjectCenter; |
|
|
currSubjectCenter = subjectCenter; |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : subjectCenterLine.getCenterItemLines()) { |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : subjectCenterLine.getCenterItemLines()) { |
|
|
if(subjectCenter.getActivityCenterId().equals(itemLine.getActivityCenterId())){ |
|
|
if(subjectCenter.getActivityCenterId().equals(itemLine.getActivityCenterId())){ |
|
|
changeAmt = itemLine.getCenterAmount(); |
|
|
changeAmt = itemLine.getAmount(); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -228,6 +233,8 @@ public class VtbVerificationApplication { |
|
|
List<VtbVerificationYardItem> yardItemList = new ArrayList<>(); |
|
|
List<VtbVerificationYardItem> yardItemList = new ArrayList<>(); |
|
|
List<VtbVerificationSubject> verSubject4Update = new ArrayList<>(); |
|
|
List<VtbVerificationSubject> verSubject4Update = new ArrayList<>(); |
|
|
List<VtbVerificationYardCenterItem> yarnCenterList = new ArrayList<>(); |
|
|
List<VtbVerificationYardCenterItem> yarnCenterList = new ArrayList<>(); |
|
|
|
|
|
//拓展成本中心维度调整记录
|
|
|
|
|
|
List<VtbVerificationSubjectCenter> subjectCenterUpdateList = new ArrayList<>(); |
|
|
for (VtbVerificationSubject currVs : verificationSubjects) { |
|
|
for (VtbVerificationSubject currVs : verificationSubjects) { |
|
|
BigDecimal changeAmount = null; |
|
|
BigDecimal changeAmount = null; |
|
|
Integer countSession = null; |
|
|
Integer countSession = null; |
|
@ -240,7 +247,7 @@ public class VtbVerificationApplication { |
|
|
changeAmount = BigDecimal.ZERO; |
|
|
changeAmount = BigDecimal.ZERO; |
|
|
if(centerLine.getCenterItemLines()!=null){ |
|
|
if(centerLine.getCenterItemLines()!=null){ |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) { |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) { |
|
|
changeAmount = changeAmount.add(itemLine.getCenterAmount()); |
|
|
changeAmount = changeAmount.add(itemLine.getAmount()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
centerItemLineList = centerLine.getCenterItemLines(); |
|
|
centerItemLineList = centerLine.getCenterItemLines(); |
|
@ -325,7 +332,6 @@ public class VtbVerificationApplication { |
|
|
yardItem.setCurrAmount(lastAmount); |
|
|
yardItem.setCurrAmount(lastAmount); |
|
|
} |
|
|
} |
|
|
totalAmount = totalAmount.add(yardItem.getCurrAmount()); |
|
|
totalAmount = totalAmount.add(yardItem.getCurrAmount()); |
|
|
//拓展成本中心维度调整记录
|
|
|
|
|
|
if(centerItemLineList!=null){ |
|
|
if(centerItemLineList!=null){ |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) { |
|
|
for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) { |
|
|
VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem); |
|
|
VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem); |
|
@ -337,8 +343,18 @@ public class VtbVerificationApplication { |
|
|
centerItem.setCenterType(subjectCenter.getCenterType()); |
|
|
centerItem.setCenterType(subjectCenter.getCenterType()); |
|
|
centerItem.setActivityCenterId(subjectCenter.getActivityCenterId()); |
|
|
centerItem.setActivityCenterId(subjectCenter.getActivityCenterId()); |
|
|
centerItem.setLastAmount(subjectCenter.getUsedAmount()); |
|
|
centerItem.setLastAmount(subjectCenter.getUsedAmount()); |
|
|
centerItem.setCurrAmount(centerItemLine.getCenterAmount()); |
|
|
centerItem.setCurrAmount(centerItemLine.getAmount()); |
|
|
|
|
|
BigDecimal diff = centerItem.getCurrAmount().subtract(centerItem.getLastAmount()); |
|
|
|
|
|
//修改center的记录金额
|
|
|
|
|
|
VtbVerificationSubjectCenter scParam = new VtbVerificationSubjectCenter(); |
|
|
|
|
|
scParam.setId(subjectCenter.getId()); |
|
|
|
|
|
scParam.setUsedAmount(centerItemLine.getAmount()); |
|
|
|
|
|
subjectCenterUpdateList.add(scParam); |
|
|
|
|
|
if(diff.compareTo(BigDecimal.ZERO)>0){ |
|
|
|
|
|
centerItem.setRemark("增加费用:"+diff); |
|
|
|
|
|
}else { |
|
|
|
|
|
centerItem.setRemark("减少费用:"+diff.negate()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
yarnCenterList.add(centerItem); |
|
|
yarnCenterList.add(centerItem); |
|
@ -350,6 +366,9 @@ public class VtbVerificationApplication { |
|
|
yardItemService.saveBatch(yardItemList); |
|
|
yardItemService.saveBatch(yardItemList); |
|
|
yardCenterItemService.saveBatch(yarnCenterList); |
|
|
yardCenterItemService.saveBatch(yarnCenterList); |
|
|
vtbVerificationSubjectService.updateBatchById(verSubject4Update); |
|
|
vtbVerificationSubjectService.updateBatchById(verSubject4Update); |
|
|
|
|
|
if(subjectCenterUpdateList.size()>0){ |
|
|
|
|
|
vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList); |
|
|
|
|
|
} |
|
|
//重新计算合计
|
|
|
//重新计算合计
|
|
|
if(isFinish){ |
|
|
if(isFinish){ |
|
|
finishCallBack(verification, totalAmount); |
|
|
finishCallBack(verification, totalAmount); |
|
|