Browse Source

成本中心维度核销,debug

v1.0
Yen 2 years ago
parent
commit
81650588c3
  1. 41
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  2. 42
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

41
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.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.*;
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.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.*; 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 javax.validation.Valid;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -65,6 +63,7 @@ public class VtbVerificationController {
private VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService; private VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
private TbsActivitySubjectService activitySubjectService; private TbsActivitySubjectService activitySubjectService;
private TbsActivityCenterService activityCenterService; private TbsActivityCenterService activityCenterService;
private TbsActivityCenterGoodsService activityCenterGoodsService;
private TbsCostApplyService tbsCostApplyService; private TbsCostApplyService tbsCostApplyService;
private TbsActivityService tbsActivityService; private TbsActivityService tbsActivityService;
private TbsActivityPayConditionService tbsActivityPayConditionService; private TbsActivityPayConditionService tbsActivityPayConditionService;
@ -215,6 +214,8 @@ public class VtbVerificationController {
List<VtbVerificationSubjectCenter> subjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(Long.parseLong(id)); List<VtbVerificationSubjectCenter> subjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(Long.parseLong(id));
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(vtbVerification.getActivityId()); List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(vtbVerification.getActivityId());
List<TbsActivityCenter> activityCenters = activityCenterService.listByActivity(vtbVerification.getActivityId()); List<TbsActivityCenter> activityCenters = activityCenterService.listByActivity(vtbVerification.getActivityId());
List<TbsActivityCenterGoods> activityCenterGoodsList = activityCenterGoodsService.listByActivityId(vtbVerification.getActivityId());
Map<Long,List<TbsActivityCenterGoods>> centerGoodsGroupBySubjectId = activityCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getSubjectId));
for (VtbVerificationSubject verificationSubject : subjectList) { for (VtbVerificationSubject verificationSubject : subjectList) {
for (TbsActivitySubject activitySubject : activitySubjects) { for (TbsActivitySubject activitySubject : activitySubjects) {
if(verificationSubject.getSubjectId().equals(activitySubject.getSubjectId())){ if(verificationSubject.getSubjectId().equals(activitySubject.getSubjectId())){
@ -224,6 +225,37 @@ public class VtbVerificationController {
} }
} }
} }
if(subjectCenterList.size()<1){
//subjectCenterList为空,代表是旧的审批,需要兼容
for (VtbVerificationSubject verificationSubject : subjectList) {
List<TbsActivityCenterGoods> 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 (VtbVerificationSubjectCenter verCenter : subjectCenterList) {
for (TbsActivityCenter actCenter : activityCenters) { for (TbsActivityCenter actCenter : activityCenters) {
if(verCenter.getActivityCenterId().equals(actCenter.getId())){ if(verCenter.getActivityCenterId().equals(actCenter.getId())){
@ -239,6 +271,7 @@ public class VtbVerificationController {
} }
} }
} }
vtbVerification.setActivityInfo(tbsActivityService.getById(vtbVerification.getActivityId())); vtbVerification.setActivityInfo(tbsActivityService.getById(vtbVerification.getActivityId()));
vtbVerification.setSubjectList(subjectList); vtbVerification.setSubjectList(subjectList);
return R.ok(vtbVerification); return R.ok(vtbVerification);

42
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -98,7 +98,7 @@ 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){ if(devFlag){
summeryResult = "finished"; summeryResult = "next";
} }
R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult);
try { try {
@ -158,9 +158,9 @@ public class VtbVerificationApplication {
break; break;
} }
} }
if(currSubjectCenter==null){ // if(currSubjectCenter==null){
Assert.throwEx("当前核销不支持成本中心维度修改金额"); // Assert.throwEx("当前核销不支持成本中心维度修改金额");
} // }
if(changeAmt!=null && changeAmt.compareTo(currSubjectCenter.getUsedAmountRecord())>0){ if(changeAmt!=null && changeAmt.compareTo(currSubjectCenter.getUsedAmountRecord())>0){
Assert.throwEx("["+currSubjectCenter.getSubjectName()+"-"+currSubjectCenter.getCenterName()+"]额度不足"); Assert.throwEx("["+currSubjectCenter.getSubjectName()+"-"+currSubjectCenter.getCenterName()+"]额度不足");
} }
@ -240,7 +240,7 @@ public class VtbVerificationApplication {
Integer countSession = null; Integer countSession = null;
Integer countPerson = null; Integer countPerson = null;
List<TbsAffairCommitBo.AffairSubjectCenterItemLine> centerItemLineList = null; List<TbsAffairCommitBo.AffairSubjectCenterItemLine> centerItemLineList = null;
if(isCenterCommit){ // if(isCenterCommit){
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){
for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) { for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) {
if(currVs.getSubjectId().equals(centerLine.getSubjectId())){ if(currVs.getSubjectId().equals(centerLine.getSubjectId())){
@ -257,18 +257,18 @@ public class VtbVerificationApplication {
} }
} }
} }
}else { // }else {
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ // if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){
for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) { // for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) {
if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){ // if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){
changeAmount = affairSubjectLine.getAmount(); // changeAmount = affairSubjectLine.getAmount();
countSession = affairSubjectLine.getCountSession(); // countSession = affairSubjectLine.getCountSession();
countPerson = affairSubjectLine.getCountPerson(); // countPerson = affairSubjectLine.getCountPerson();
break; // break;
} // }
} // }
} // }
} // }
//保存明细判断是否更变金额 //保存明细判断是否更变金额
VtbVerificationYardItem yardItem = CopierUtil.copy(currVs,new VtbVerificationYardItem()); VtbVerificationYardItem yardItem = CopierUtil.copy(currVs,new VtbVerificationYardItem());
yardItem.setYardId(yard.getId()); yardItem.setYardId(yard.getId());
@ -332,7 +332,7 @@ 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&&subjectCenters.size()>0){
for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) { for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) {
VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem); VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem);
for (VtbVerificationSubjectCenter subjectCenter : subjectCenters) { for (VtbVerificationSubjectCenter subjectCenter : subjectCenters) {
@ -342,7 +342,7 @@ public class VtbVerificationApplication {
centerItem.setCenterName(subjectCenter.getCenterName()); centerItem.setCenterName(subjectCenter.getCenterName());
centerItem.setCenterType(subjectCenter.getCenterType()); centerItem.setCenterType(subjectCenter.getCenterType());
centerItem.setActivityCenterId(subjectCenter.getActivityCenterId()); centerItem.setActivityCenterId(subjectCenter.getActivityCenterId());
centerItem.setLastAmount(subjectCenter.getUsedAmount()); centerItem.setLastAmount(subjectCenter.getUsedAmount()==null?BigDecimal.ZERO:subjectCenter.getUsedAmount());
centerItem.setCurrAmount(centerItemLine.getAmount()); centerItem.setCurrAmount(centerItemLine.getAmount());
BigDecimal diff = centerItem.getCurrAmount().subtract(centerItem.getLastAmount()); BigDecimal diff = centerItem.getCurrAmount().subtract(centerItem.getLastAmount());
//修改center的记录金额 //修改center的记录金额
@ -364,7 +364,9 @@ public class VtbVerificationApplication {
yardItemList.add(yardItem); yardItemList.add(yardItem);
} }
yardItemService.saveBatch(yardItemList); yardItemService.saveBatch(yardItemList);
yardCenterItemService.saveBatch(yarnCenterList); if(yarnCenterList.size()>0){
yardCenterItemService.saveBatch(yarnCenterList);
}
vtbVerificationSubjectService.updateBatchById(verSubject4Update); vtbVerificationSubjectService.updateBatchById(verSubject4Update);
if(subjectCenterUpdateList.size()>0){ if(subjectCenterUpdateList.size()>0){
vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList); vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList);

Loading…
Cancel
Save