From e84995e37f6a680b2c4a036b8074e0a789533f76 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 1 Dec 2023 16:50:30 +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=EF=BC=9Bsku=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSkuController.java | 73 +++++++++++++++++-- .../goods/entity/bo/GoodsSkuImportBo.java | 10 ++- .../oms/service/impl/OmsOrderServiceImpl.java | 3 +- .../service/impl/TbsCostApplyServiceImpl.java | 2 +- .../vtb/entity/VtbVerificationSubject.java | 6 ++ .../entity/VtbVerificationSubjectCenter.java | 40 ++-------- .../impl/VtbVerificationServiceImpl.java | 50 +------------ 7 files changed, 93 insertions(+), 91 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index 68b489e4..b2f4d3bf 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -10,14 +10,20 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo; +import com.qs.serve.modules.goods.entity.bo.GoodsSkuImportBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuImportBo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; +import com.qs.serve.modules.sale.entity.SalePlanGoods; +import com.qs.serve.modules.sale.service.SalePlanGoodsService; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.entity.TbsActivityGoods; +import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -28,6 +34,7 @@ import com.qs.serve.modules.goods.service.GoodsSkuService; import javax.validation.Valid; import java.util.List; +import java.util.Map; import java.util.Random; import java.util.stream.Collectors; @@ -46,6 +53,8 @@ public class GoodsSkuController { private GoodsSkuSpecValueService goodsSkuSpecValueService; private TbsActivityGoodsService activityGoodsService; private TbsBudgetConditionService budgetConditionService; + private SalePlanGoodsService salePlanGoodsService; + private TzcPolicyGoodsService policyGoodsService; /** * 列表(传入spuId获取spu规格列表) @@ -161,7 +170,7 @@ public class GoodsSkuController { @PreAuthorize("hasRole('goods:sku:delete')") public R deleteById(@PathVariable("id") Long id){ QueryWrapper lqw1 = new QueryWrapper<>(); - lqw1.in("target_type", TbsGoodsType.sku.name()); + lqw1.eq("target_type", TbsGoodsType.sku.name()); lqw1.eq("target_id",id); if(activityGoodsService.count(lqw1)>0){ return R.error("活动含有当前商品,删除失败"); @@ -169,6 +178,12 @@ public class GoodsSkuController { if(budgetConditionService.count(lqw1)>0){ return R.error("预算含有当前商品,删除失败"); } + if(salePlanGoodsService.count(lqw1)>0){ + return R.error("销售计划含有当前商品,删除失败"); + } + if(policyGoodsService.count(lqw1)>0){ + return R.error("政策含有当前商品,删除失败"); + } boolean result = goodsSkuService.removeById(id); if(result){ //删除商品规格值 @@ -176,7 +191,6 @@ public class GoodsSkuController { lqw2.eq(GoodsSkuSpecValue::getSkuId,id); goodsSkuSpecValueService.remove(lqw2); } - return R.isTrue(result); } @@ -187,15 +201,64 @@ public class GoodsSkuController { */ @PostMapping("/importSku") @SysLog(module = SystemModule.GOODS, title = "import", biz = BizType.INSERT) - public R importSpu(@RequestBody @Valid GoodsSpuImportBo param){ + public R importSpu(@RequestBody @Valid GoodsSkuImportBo param){ final String UPDATE = "update"; final String DELETE = "delete"; final String SAVE = "save"; + Map> skuItemList = param.getSkuList().stream().collect(Collectors.groupingBy(GoodsSkuImportBo.SkuItem::getOpt)); + //处理删除 + List delList = skuItemList.get(DELETE); + List delSkuCodes = delList.stream().map(GoodsSkuImportBo.SkuItem::getSkuCode).collect(Collectors.toList()); + QueryWrapper lqw1 = new QueryWrapper<>(); + lqw1.eq("target_type", TbsGoodsType.sku.name()); + lqw1.eq("target_code",delSkuCodes); + lqw1.select("target_code"); + List activityGoodsList = activityGoodsService.list(lqw1); + List budgetConditionList = budgetConditionService.list(lqw1); + List salePlanGoodsList = salePlanGoodsService.list(lqw1); + for (TbsActivityGoods item : activityGoodsList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"活动含有当前商品,删除失败;":skuItem.getErrMsg()+"活动含有当前商品,删除失败;"); + } + } + } + for (TbsBudgetCondition item : budgetConditionList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"预算含有当前商品,删除失败;":skuItem.getErrMsg()+"预算含有当前商品,删除失败;"); + } + } + } + for (SalePlanGoods item : salePlanGoodsList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"销售计划含有当前商品,删除失败;":skuItem.getErrMsg()+"销售计划含有当前商品,删除失败;"); + } + } + } + //执行删除 + List skuCodeToDelList = param.getSkuList().stream() + .filter(a->a.getErrMsg()==null) + .map(GoodsSkuImportBo.SkuItem::getSkuCode) + .collect(Collectors.toList()); + if(skuCodeToDelList.size()>0){ + LambdaQueryWrapper delLqw = new LambdaQueryWrapper<>(); + delLqw.in(GoodsSku::getSkuCode,skuCodeToDelList); + goodsSkuService.remove(delLqw); + } - for (GoodsSpuImportBo.SpuItem spuItem : param.getSpuList()) { + //处理更新和新增 + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + String opt = skuItem.getOpt(); + if(UPDATE.equals(opt)){ - } + //TODO 更新 + }else if (SAVE.equals(opt)){ + //TODO 更新 + } + } return R.ok(param); } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java index afec6b07..f506ee73 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java @@ -14,20 +14,22 @@ import java.util.List; @Data public class GoodsSkuImportBo { - private List spuList; + private List skuList; @Data public static class SkuItem{ /** - * 操作方式:save,update,delete + * 操作方式:save,update,delete ,不能为空 */ + @NotNull private String opt; - /** 商品编码(嘉士利SkuCode) */ + /** 商品编码(嘉士利SkuCode,新增时不能为空) */ private String spuCode; - /** 商品编码(嘉士利InvCode) */ + /** 商品编码(嘉士利InvCode,不能为空) */ + @NotNull private String skuCode; /** 商品名字 */ diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 50d04a96..3ad44e5b 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -97,6 +97,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im shoppingCart.setSpuId(goodsSku.getSpuId()); shoppingCart.setSkuId(confirmOrder.getSkuId()); shoppingCart.setSpuCode(goodsSpu.getSpuCode()); + shoppingCart.setSpuName(goodsSpu.getName()); shoppingCart.setSkuCode(goodsSku.getSkuCode()); shoppingCart.setQuantity(confirmOrder.getQuantity()); shoppingCart.setSpecInfo(goodsSku.getSpecInfos()); @@ -407,7 +408,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im // spu维度 GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); orderItem.setSpuId(shoppingCart.getSpuId()); - orderItem.setSpuTitle(shoppingCart.getSpecInfo()); + orderItem.setSpuTitle(shoppingCart.getSpuName()); orderItem.setSkuId(shoppingCart.getSkuId()); orderItem.setSkuCode(shoppingCart.getSkuCode()); orderItem.setSkuUnit(null); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 008f5863..57f0d0e1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -272,7 +272,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl addFundFlowListOfSubject = new ArrayList<>(); //统计不匹配金额 - BigDecimal unMatchAmount = BigDecimal.ZERO; for (int i = 0; i < activityCenterGoodsOfSubject.size(); i++) { TbsActivityCenterGoods centerGoods = activityCenterGoodsOfSubject.get(i); BigDecimal currentTimeAmount; @@ -1350,59 +1353,14 @@ public class VtbVerificationServiceImpl extends ServiceImpl0){ - BigDecimal tmpBalance = fundFlow.getTempBalance(); - if(tmpBalance.compareTo(BigDecimal.ZERO)>0){ - if(tmpBalance.compareTo(unMatchAmount)>0){ - BigDecimal resultBalance = fundFlow.getUsedAmount().add(unMatchAmount); - fundFlow.setUsedAmount(resultBalance); - break; - }else { - unMatchAmount = unMatchAmount.subtract(fundFlow.getTempBalance()); - BigDecimal resultBalance = fundFlow.getUsedAmount().add(tmpBalance); - fundFlow.setUsedAmount(resultBalance); - } - } - }else { - break; - } - } - if(unMatchAmount.compareTo(BigDecimal.ZERO)>0){ - log.error("异常数据,费用核销[{}]超额:{}", verificationId,unMatchAmount.doubleValue()); - } addFundFlowList.addAll(addFundFlowListOfSubject); }