From 1adcfee785641e813230adffffe9452400dcf1f6 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 23 Jan 2024 17:54:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=94=BF=E7=AD=96=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=B4=B9=E7=94=A8=E6=8E=A5=E5=8F=A3=EF=BC=9Bsku?= =?UTF-8?q?=E5=92=8Cspu=E5=88=A0=E9=99=A4=E4=B8=8D=E5=8F=97=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSkuController.java | 17 ++--- .../goods/controller/GoodsSpuController.java | 32 +++++----- .../modules/goods/mapper/GoodsSkuMapper.java | 4 ++ .../modules/goods/mapper/GoodsSpuMapper.java | 5 ++ .../modules/tbs/entity/TbsCostApply.java | 2 + .../service/PortalOfCostApplication.java | 63 ++++++++++++++----- 6 files changed, 85 insertions(+), 38 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 fe652298..0c0910e5 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 @@ -9,6 +9,7 @@ import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo; @@ -17,6 +18,7 @@ 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.GoodsSkuExportVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; +import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.sale.entity.SalePlanGoods; @@ -54,6 +56,7 @@ import java.util.stream.Collectors; @RequestMapping("goods/sku") public class GoodsSkuController { + private GoodsSkuMapper goodsSkuMapper; private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; private GoodsSkuSpecValueService goodsSkuSpecValueService; @@ -190,14 +193,12 @@ public class GoodsSkuController { if(policyGoodsService.count(lqw1)>0){ return R.error("政策含有当前商品,删除失败"); } - boolean result = goodsSkuService.removeById(id); - if(result){ - //删除商品规格值 - LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); - lqw2.eq(GoodsSkuSpecValue::getSkuId,id); - goodsSkuSpecValueService.remove(lqw2); - } - return R.isTrue(result); + goodsSkuMapper.updateSkuCodeAndDelFlag(id, StringUtils.genShortId()); + //删除商品规格值 + LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); + lqw2.eq(GoodsSkuSpecValue::getSkuId,id); + goodsSkuSpecValueService.remove(lqw2); + return R.ok(); } /** diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 3d8a25fa..617ff772 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -17,6 +17,7 @@ import com.qs.serve.modules.goods.entity.so.GoodsHisOrderQuery; import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; import com.qs.serve.modules.goods.entity.vo.GoodsSpuExportVo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; +import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; import com.qs.serve.modules.goods.service.*; import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; @@ -51,6 +52,7 @@ import java.util.stream.Collectors; @RequestMapping("goods/spu") public class GoodsSpuController { + private GoodsSpuMapper goodsSpuMapper; private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; private GoodsSpuSpecService goodsSpuSpecService; @@ -319,22 +321,20 @@ public class GoodsSpuController { if(budgetConditionService.count(lqw1)>0){ return R.error("预算含有当前商品,删除失败"); } - boolean result = goodsSpuService.removeById(id); - if(result){ - //删除商品规格 - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(GoodsSpuSpec::getSpuId,id); - goodsSpuSpecService.remove(lqw); - //删除商品规格值 - LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); - lqw2.eq(GoodsSkuSpecValue::getSpuId,id); - goodsSkuSpecValueService.remove(lqw2); - //删除商品sku - LambdaQueryWrapper lqw3 = new LambdaQueryWrapper<>(); - lqw3.eq(GoodsSku::getSpuId,id); - goodsSkuService.remove(lqw3); - } - return R.isTrue(result); + goodsSpuMapper.updateSpuCodeAndDelFlag(id,IdUtil.timeStampId()); + //删除商品规格 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(GoodsSpuSpec::getSpuId,id); + goodsSpuSpecService.remove(lqw); + //删除商品规格值 + LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); + lqw2.eq(GoodsSkuSpecValue::getSpuId,id); + goodsSkuSpecValueService.remove(lqw2); + //删除商品sku + LambdaQueryWrapper lqw3 = new LambdaQueryWrapper<>(); + lqw3.eq(GoodsSku::getSpuId,id); + goodsSkuService.remove(lqw3); + return R.ok(); } /** diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java index 31b3e4f1..cdaff4ad 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java @@ -6,6 +6,7 @@ import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -17,6 +18,9 @@ import java.util.List; public interface GoodsSkuMapper extends BaseMapper { + @Update("update goods_sku set del_flag = 1 , sku_code = concat(sku_code,'_del',#{str}) where id = #{skuId}") + void updateSkuCodeAndDelFlag(@Param("skuId") Long id,@Param("str") String str); + List getBelongStringList(); /** diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuMapper.java index 76057117..31ee9285 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsSpuMapper.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.RowParam; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.dto.GoodSpuSkuNum; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -16,6 +17,10 @@ import java.util.List; */ public interface GoodsSpuMapper extends BaseMapper { + + @Update("update goods_spu set del_flag = 1 , spu_code = concat(spu_code,'_del',#{str}) where id = #{spuId}") + void updateSpuCodeAndDelFlag(@Param("spuId") Long id,@Param("str") String str); + List selectSpuList(@Param("query") GoodsSpu goodsSpu); @InterceptorIgnore(tenantLine = "1") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index bf638c40..98dab965 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -181,6 +181,8 @@ public class TbsCostApply implements Serializable { /** 政策项ID */ private Long policyItemId; + private String policyItemCode; + /** 模板id */ private Long templateId; diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index fa3a6e43..b940c8fe 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -55,6 +55,7 @@ import com.qs.serve.modules.vtb.service.VtbVerificationService; import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -248,7 +249,7 @@ public class PortalOfCostApplication { //发票号 String billNumber = createBo.getBillNumber(); //校验商品信息 - List skuCodes = createBo.getGoodsList().stream().map(ProcessGoodsItem::getInventoryCode).collect(Collectors.toList()); + //List skuCodes = createBo.getGoodsList().stream().map(ProcessGoodsItem::getInventoryCode).collect(Collectors.toList()); //初始化sku列表 List processGoodsItems = createBo.getGoodsList(); List invCodes = new ArrayList<>(); @@ -257,6 +258,7 @@ public class PortalOfCostApplication { .map(ProcessGoodsItem::getInventoryCode).distinct().collect(Collectors.toList()); } List skuList = this.initSkuListOfProcess(invCodes); + skuList = this.filterRepSku(invCodes, skuList); //常用参数 final String GOODS_TYPE = "sku"; final BigDecimal OneHundred = new BigDecimal("100"); @@ -268,8 +270,17 @@ public class PortalOfCostApplication { String costApplyCode = "CA"+CodeGenUtil.generate(CodeGenUtil.SourceKey.CostApply); String activityCode = costApplyCode + "_1"; String activityTitle = "由政策"+policyItem.getPolicyItemCode()+"核销一站式API生成的活动"; + + LambdaQueryWrapper checkLqw = new LambdaQueryWrapper<>(); + checkLqw.eq(TbsCostApply::getBillNumber,billNumber); + checkLqw.eq(TbsCostApply::getPolicyItemId,policyItem.getId()); + if(costApplyService.count(checkLqw)>0L){ + Assert.throwEx("记录已存在"); + } //构建费用申请 TbsCostApply costApply = new TbsCostApply(); + //2024年1月23日,添加 + costApply.setBillNumber(billNumber); costApply.setCode(costApplyCode); costApply.setChargeTheme(costTheme); costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode()); @@ -283,6 +294,7 @@ public class PortalOfCostApplication { costApply.setTotalActivityAmount(totalAmount); costApply.setTotalActivityUsedAmount(totalAmount); costApply.setPolicyItemId(policyItem.getId()); + costApply.setPolicyItemCode(policyItem.getPolicyItemCode()); costApply.setSubmitTime(LocalDateTime.now()); //2024年1月17日,添加 costApply.setRemark(createBo.getErpCode()); @@ -620,19 +632,8 @@ public class PortalOfCostApplication { Assert.throwEx("请选择存货提交"); } List skuList = this.initSkuListOfProcess(invCodeList); - if(skuList.size()!=invCodeList.size()){ - Set missCodes = new HashSet<>(); - for (String code : invCodeList) { - boolean anyMatch = skuList.stream().anyMatch(a->a.getSkuCode().equals(code)); - if(!anyMatch){ - missCodes.add(code); - } - } - Assert.throwEx("品类缺失("+skuList.size()+"-"+invCodeList.size()+"-"+missCodes.size()+"):"+missCodes.stream().collect(Collectors.joining(","))); - } - if(skuList.size()<1){ - Assert.throwEx("请选择品类再提交"); - } + //排除重复的sku + skuList = this.filterRepSku(invCodeList, skuList); //常用参数 final String GOODS_TYPE = "sku"; final BigDecimal OneHundred = new BigDecimal("100"); @@ -974,6 +975,40 @@ public class PortalOfCostApplication { } + @NotNull + private List filterRepSku(List invCodeList, List skuList) { + if (skuList.size() > invCodeList.size()){ + List skuList1 = new ArrayList<>(); + Set codes = new HashSet<>(); + for (String invCode : invCodeList) { + for (GoodsSku goodsSku : skuList) { + if(goodsSku.getSkuCode().equals(invCode)){ + if(codes.contains(invCode)){ + continue; + } + codes.add(invCode); + skuList1.add(goodsSku); + } + } + } + skuList = skuList1; + } + if(skuList.size() < invCodeList.size()){ + Set missCodes = new HashSet<>(); + for (String code : invCodeList) { + boolean anyMatch = skuList.stream().anyMatch(a->a.getSkuCode().equals(code)); + if(!anyMatch){ + missCodes.add(code); + } + } + Assert.throwEx("品类缺失("+ skuList.size()+"-"+ invCodeList.size()+"-"+missCodes.size()+"):"+missCodes.stream().collect(Collectors.joining(","))); + } + if(skuList.size()<1){ + Assert.throwEx("请选择品类再提交"); + } + return skuList; + } + /** * 协议类费用 核销支付记录 * @param createBo