From 81650588c33c8212fbbe717bc5a5e8c1dd7ca9f9 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 30 Nov 2023 14:36:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E6=9C=AC=E4=B8=AD=E5=BF=83=E7=BB=B4?= =?UTF-8?q?=E5=BA=A6=E6=A0=B8=E9=94=80=EF=BC=8Cdebug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VtbVerificationController.java | 41 ++++++++++++++++-- .../service/VtbVerificationApplication.java | 42 ++++++++++--------- 2 files changed, 59 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index 0947d253..58a04476 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -19,10 +19,7 @@ import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; -import com.qs.serve.modules.tbs.entity.TbsActivity; -import com.qs.serve.modules.tbs.entity.TbsActivityCenter; -import com.qs.serve.modules.tbs.entity.TbsActivitySubject; -import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.service.*; @@ -43,6 +40,7 @@ import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; import javax.validation.Valid; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -65,6 +63,7 @@ public class VtbVerificationController { private VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService; private TbsActivitySubjectService activitySubjectService; private TbsActivityCenterService activityCenterService; + private TbsActivityCenterGoodsService activityCenterGoodsService; private TbsCostApplyService tbsCostApplyService; private TbsActivityService tbsActivityService; private TbsActivityPayConditionService tbsActivityPayConditionService; @@ -215,6 +214,8 @@ public class VtbVerificationController { List subjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(Long.parseLong(id)); List activitySubjects = activitySubjectService.listByActivityId(vtbVerification.getActivityId()); List activityCenters = activityCenterService.listByActivity(vtbVerification.getActivityId()); + List activityCenterGoodsList = activityCenterGoodsService.listByActivityId(vtbVerification.getActivityId()); + Map> centerGoodsGroupBySubjectId = activityCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getSubjectId)); for (VtbVerificationSubject verificationSubject : subjectList) { for (TbsActivitySubject activitySubject : activitySubjects) { if(verificationSubject.getSubjectId().equals(activitySubject.getSubjectId())){ @@ -224,6 +225,37 @@ public class VtbVerificationController { } } } + + if(subjectCenterList.size()<1){ + //subjectCenterList为空,代表是旧的审批,需要兼容 + for (VtbVerificationSubject verificationSubject : subjectList) { + List activityCenterGoods = centerGoodsGroupBySubjectId.get(verificationSubject.getSubjectId()); + for (TbsActivityCenterGoods centerGood : activityCenterGoods) { + BigDecimal userAmountRecord = verificationSubject.getUsedAmountRecord(); + BigDecimal useAmount = verificationSubject.getUsedAmount(); + VtbVerificationSubjectCenter verCenter = new VtbVerificationSubjectCenter(); + verCenter.setCostApplyId(verificationSubject.getCostApplyId()); + verCenter.setActivityId(verificationSubject.getActivityId()); + verCenter.setSubjectId(verificationSubject.getSubjectId()); + verCenter.setSubjectCode(verificationSubject.getSubjectCode()); + verCenter.setSubjectName(verificationSubject.getSubjectName()); + verCenter.setSupplierId(verificationSubject.getSupplierId()); + verCenter.setSupplierCode(verificationSubject.getSupplierCode()); + verCenter.setSupplierName(verificationSubject.getSupplierName()); + BigDecimal usedItemRecord = userAmountRecord.multiply(centerGood.getCenterGoodsRate()).divide(new BigDecimal("100"),2, RoundingMode.DOWN); + BigDecimal usedItem = useAmount.multiply(centerGood.getCenterGoodsRate()).divide(new BigDecimal("100"),2, RoundingMode.DOWN); + verCenter.setUsedAmount(usedItem); + verCenter.setUsedAmountRecord(usedItemRecord); + verCenter.setCenterType(centerGood.getCenterType()); + verCenter.setCenterId(centerGood.getCenterId()); + verCenter.setCenterCode(centerGood.getCenterCode()); + verCenter.setCenterName(centerGood.getCenterName()); + verCenter.setActivityCenterId(centerGood.getId()); + subjectCenterList.add(verCenter); + } + } + } + for (VtbVerificationSubjectCenter verCenter : subjectCenterList) { for (TbsActivityCenter actCenter : activityCenters) { if(verCenter.getActivityCenterId().equals(actCenter.getId())){ @@ -239,6 +271,7 @@ public class VtbVerificationController { } } } + vtbVerification.setActivityInfo(tbsActivityService.getById(vtbVerification.getActivityId())); vtbVerification.setSubjectList(subjectList); return R.ok(vtbVerification); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index d9ed6ee6..c33fa997 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java @@ -98,7 +98,7 @@ public class VtbVerificationApplication { VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); if(devFlag){ - summeryResult = "finished"; + summeryResult = "next"; } R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); try { @@ -158,9 +158,9 @@ public class VtbVerificationApplication { break; } } - if(currSubjectCenter==null){ - Assert.throwEx("当前核销不支持成本中心维度修改金额"); - } +// if(currSubjectCenter==null){ +// Assert.throwEx("当前核销不支持成本中心维度修改金额"); +// } if(changeAmt!=null && changeAmt.compareTo(currSubjectCenter.getUsedAmountRecord())>0){ Assert.throwEx("["+currSubjectCenter.getSubjectName()+"-"+currSubjectCenter.getCenterName()+"]额度不足"); } @@ -240,7 +240,7 @@ public class VtbVerificationApplication { Integer countSession = null; Integer countPerson = null; List centerItemLineList = null; - if(isCenterCommit){ +// if(isCenterCommit){ if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) { if(currVs.getSubjectId().equals(centerLine.getSubjectId())){ @@ -257,18 +257,18 @@ public class VtbVerificationApplication { } } } - }else { - if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ - for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) { - if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){ - changeAmount = affairSubjectLine.getAmount(); - countSession = affairSubjectLine.getCountSession(); - countPerson = affairSubjectLine.getCountPerson(); - break; - } - } - } - } +// }else { +// if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ +// for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) { +// if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){ +// changeAmount = affairSubjectLine.getAmount(); +// countSession = affairSubjectLine.getCountSession(); +// countPerson = affairSubjectLine.getCountPerson(); +// break; +// } +// } +// } +// } //保存明细判断是否更变金额 VtbVerificationYardItem yardItem = CopierUtil.copy(currVs,new VtbVerificationYardItem()); yardItem.setYardId(yard.getId()); @@ -332,7 +332,7 @@ public class VtbVerificationApplication { yardItem.setCurrAmount(lastAmount); } totalAmount = totalAmount.add(yardItem.getCurrAmount()); - if(centerItemLineList!=null){ + if(centerItemLineList!=null&&subjectCenters.size()>0){ for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) { VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem); for (VtbVerificationSubjectCenter subjectCenter : subjectCenters) { @@ -342,7 +342,7 @@ public class VtbVerificationApplication { centerItem.setCenterName(subjectCenter.getCenterName()); centerItem.setCenterType(subjectCenter.getCenterType()); centerItem.setActivityCenterId(subjectCenter.getActivityCenterId()); - centerItem.setLastAmount(subjectCenter.getUsedAmount()); + centerItem.setLastAmount(subjectCenter.getUsedAmount()==null?BigDecimal.ZERO:subjectCenter.getUsedAmount()); centerItem.setCurrAmount(centerItemLine.getAmount()); BigDecimal diff = centerItem.getCurrAmount().subtract(centerItem.getLastAmount()); //修改center的记录金额 @@ -364,7 +364,9 @@ public class VtbVerificationApplication { yardItemList.add(yardItem); } yardItemService.saveBatch(yardItemList); - yardCenterItemService.saveBatch(yarnCenterList); + if(yarnCenterList.size()>0){ + yardCenterItemService.saveBatch(yarnCenterList); + } vtbVerificationSubjectService.updateBatchById(verSubject4Update); if(subjectCenterUpdateList.size()>0){ vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList);