diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController2.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController2.java index ddd2a5d..c9ffbcb 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController2.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController2.java @@ -65,102 +65,44 @@ public class TbsActivityController2 { private ErpDispatchSumPmsVo buildVrpDispatchSumPms(Long activityId) { TbsActivity activity = tbsActivityService.getById(activityId); - ErpDispatchSumPmsQuery query = new ErpDispatchSumPmsQuery(); - query.setSupplierCode(activity.getSupplierCode()); - query.setStartDate(activity.getActStartDate()); - query.setEndDate(activity.getActEndDate()); - List activityGoodsList = tbsActivityGoodsService.list( - new LambdaQueryWrapper() - .eq(TbsActivityGoods::getActivityId, activityId)); - Map> actGoodsMap = activityGoodsList.stream() - .collect(Collectors.groupingBy(TbsActivityGoods::getTargetType)); - boolean hasGoods = false; - List brandGoodsList = actGoodsMap.get("brand"); - if(brandGoodsList!=null){ - List ids = brandGoodsList.stream() - .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); - query.setBrandIds(ids); - hasGoods = true; - } - List seriesGoodsList = actGoodsMap.get("series"); - if(seriesGoodsList!=null){ - List ids = seriesGoodsList.stream() - .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); - query.setSeriesIds(ids); - hasGoods = true; - } - List categoryGoodsList = actGoodsMap.get("category"); - if(categoryGoodsList!=null){ - List ids = categoryGoodsList.stream() - .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); - query.setCategoryIds(ids); - hasGoods = true; - } - List spuGoodsList = actGoodsMap.get("spu"); - if(spuGoodsList!=null){ - List ids = spuGoodsList.stream() - .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); - query.setSpuIds(ids); - hasGoods = true; - } - List skuGoodsList = actGoodsMap.get("sku"); - if(skuGoodsList!=null){ - List ids = skuGoodsList.stream() - .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); - query.setSkuIds(ids); - hasGoods = true; - } - ErpDispatchSumPmsVo sumPmsVo = new ErpDispatchSumPmsVo(); - sumPmsVo.setSupplierCode(query.getSupplierCode()); - sumPmsVo.setStartDate(query.getStartDate()); - sumPmsVo.setEndDate(query.getEndDate()); - sumPmsVo.setCategoryIds(query.getCategoryIds()); - sumPmsVo.setSpuIds(query.getSpuIds()); - sumPmsVo.setSkuIds(query.getSkuIds()); - - BigDecimal amt = BigDecimal.ZERO; - if (hasGoods){ - amt = erpDispatchDataMapper.queryCusAmtByPms(query); - if (amt==null){ - amt = BigDecimal.ZERO; + ErpDispatchSumPmsVo erpDispatchSumPmsVo = tbsActivityService.getDispatchSumByActivity(activity); + + BigDecimal amt = erpDispatchSumPmsVo.getTotalAmount(); + List activitySubjects = tbsActivitySubjectService.list(new LambdaQueryWrapper() + .eq(TbsActivitySubject::getActivityId,activityId)); + + List dispatchSumVoList = new ArrayList<>(); + // 开始平摊逻辑 + int size = activitySubjects.size(); + if (size > 0) { + BigDecimal totalAmount = BigDecimal.ZERO; + for (TbsActivitySubject subject : activitySubjects) { + totalAmount = totalAmount.add(subject.getAmount()); } - List activitySubjects = tbsActivitySubjectService.list(new LambdaQueryWrapper() - .eq(TbsActivitySubject::getActivityId,activityId)); - - List dispatchSumVoList = new ArrayList<>(); - // 开始平摊逻辑 - int size = activitySubjects.size(); - if (size > 0) { - BigDecimal totalAmount = BigDecimal.ZERO; - for (TbsActivitySubject subject : activitySubjects) { - totalAmount = totalAmount.add(subject.getAmount()); - } - BigDecimal remainingAmt = amt; - for (int i = 0; i < size; i++) { - TbsActivitySubject subject = activitySubjects.get(i); - BigDecimal allocatedAmt; - - if (i == size - 1) { - // 最后一项使用剩余金额 - allocatedAmt = remainingAmt; - } else { - // 按比例分配 - allocatedAmt = amt.multiply(subject.getAmount()).divide(totalAmount, 2, RoundingMode.HALF_UP); - remainingAmt = remainingAmt.subtract(allocatedAmt); - } - - SubjectDispatchSumVo subjectDispatchSumVo = new SubjectDispatchSumVo(); - subjectDispatchSumVo.setSubjectId(subject.getSubjectId()); - subjectDispatchSumVo.setSubjectCode(subject.getSubjectCode()); - subjectDispatchSumVo.setSubjectName(subject.getSubjectName()); - subjectDispatchSumVo.setSubjectAmount(allocatedAmt); - dispatchSumVoList.add(subjectDispatchSumVo); + BigDecimal remainingAmt = amt; + for (int i = 0; i < size; i++) { + TbsActivitySubject subject = activitySubjects.get(i); + BigDecimal allocatedAmt; + + if (i == size - 1) { + // 最后一项使用剩余金额 + allocatedAmt = remainingAmt; + } else { + // 按比例分配 + allocatedAmt = amt.multiply(subject.getAmount()).divide(totalAmount, 2, RoundingMode.HALF_UP); + remainingAmt = remainingAmt.subtract(allocatedAmt); } + + SubjectDispatchSumVo subjectDispatchSumVo = new SubjectDispatchSumVo(); + subjectDispatchSumVo.setSubjectId(subject.getSubjectId()); + subjectDispatchSumVo.setSubjectCode(subject.getSubjectCode()); + subjectDispatchSumVo.setSubjectName(subject.getSubjectName()); + subjectDispatchSumVo.setSubjectAmount(allocatedAmt); + dispatchSumVoList.add(subjectDispatchSumVo); } - sumPmsVo.setSubjectDispatchAmountList(dispatchSumVoList); } - sumPmsVo.setTotalAmount(amt); - return sumPmsVo; + erpDispatchSumPmsVo.setSubjectDispatchAmountList(dispatchSumVoList); + return erpDispatchSumPmsVo; } /** diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java index 2e265be..7d46089 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo; import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo; @@ -14,6 +15,8 @@ import java.util.List; */ public interface TbsActivityService extends IService { + ErpDispatchSumPmsVo getDispatchSumByActivity(TbsActivity activity); + /** * 申请活动加载列表 * @param id diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index 30b7b99..aaa9df5 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -11,6 +11,9 @@ import com.qs.serve.common.utils.StringUtils; import com.qs.serve.modules.bms.entity.*; import com.qs.serve.modules.bms.mapper.BmsSubjectFormMapper; import com.qs.serve.modules.bms.service.*; +import com.qs.serve.modules.erp.entity.so.ErpDispatchSumPmsQuery; +import com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo; +import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.goods.entity.GoodsCategory; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; @@ -73,8 +76,74 @@ public class TbsActivityServiceImpl extends ServiceImpl activityGoodsList = activityGoodsService.list( + new LambdaQueryWrapper() + .eq(TbsActivityGoods::getActivityId, activity.getId())); + Map> actGoodsMap = activityGoodsList.stream() + .collect(Collectors.groupingBy(TbsActivityGoods::getTargetType)); + boolean hasGoods = false; + List brandGoodsList = actGoodsMap.get("brand"); + if(brandGoodsList!=null){ + List ids = brandGoodsList.stream() + .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + query.setBrandIds(ids); + hasGoods = true; + } + List seriesGoodsList = actGoodsMap.get("series"); + if(seriesGoodsList!=null){ + List ids = seriesGoodsList.stream() + .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + query.setSeriesIds(ids); + hasGoods = true; + } + List categoryGoodsList = actGoodsMap.get("category"); + if(categoryGoodsList!=null){ + List ids = categoryGoodsList.stream() + .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + query.setCategoryIds(ids); + hasGoods = true; + } + List spuGoodsList = actGoodsMap.get("spu"); + if(spuGoodsList!=null){ + List ids = spuGoodsList.stream() + .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + query.setSpuIds(ids); + hasGoods = true; + } + List skuGoodsList = actGoodsMap.get("sku"); + if(skuGoodsList!=null){ + List ids = skuGoodsList.stream() + .map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + query.setSkuIds(ids); + hasGoods = true; + } + ErpDispatchSumPmsVo sumPmsVo = new ErpDispatchSumPmsVo(); + sumPmsVo.setSupplierCode(query.getSupplierCode()); + sumPmsVo.setStartDate(query.getStartDate()); + sumPmsVo.setEndDate(query.getEndDate()); + sumPmsVo.setCategoryIds(query.getCategoryIds()); + sumPmsVo.setSpuIds(query.getSpuIds()); + sumPmsVo.setSkuIds(query.getSkuIds()); + BigDecimal amt = BigDecimal.ZERO; + if (hasGoods) { + amt = erpDispatchDataMapper.queryCusAmtByPms(query); + if (amt==null){ + amt = BigDecimal.ZERO; + } + } + sumPmsVo.setTotalAmount(amt); + return sumPmsVo; + } + @Override public void initReopenState() { LocalDate now = LocalDate.now(); diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index b6613ca..1f0ee2f 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -16,6 +16,7 @@ import com.qs.serve.common.utils.CopierUtil; import com.qs.serve.common.utils.PageUtil; import com.qs.serve.common.utils.StringUtils; import com.qs.serve.framework.redis.utils.CodeGenUtil; +import com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo; import com.qs.serve.modules.sync.AsyncFactory; import com.qs.serve.modules.sys.common.AuthContextUtils; import com.qs.serve.modules.tag.util.TagFiledUtil; @@ -828,6 +829,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl