From 1ecba546353c2004844a446fde526b9a14ff0336 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 20 Sep 2023 11:07:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qs/serve/common/util/CodeGenUtil.java | 1 + .../controller/BmsApplyMessageController.java | 15 +++ .../modules/bms/entity/BmsApplyMessage.java | 4 - .../impl/BmsApplyMessageServiceImpl.java | 8 +- .../serve/modules/sale/entity/SalePlan.java | 4 + .../modules/sale/entity/bo/SalePlanBo.java | 29 +++++ .../sale/mapper/SalePlanGoodsMapper.java | 6 + .../modules/sale/service/SalePlanService.java | 3 + .../service/impl/SalePlanServiceImpl.java | 114 ++++++++++++++++++ .../impl/VtbVerificationServiceImpl.java | 2 +- 10 files changed, 177 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java index b0bde2b9..a40f3936 100644 --- a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java +++ b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java @@ -22,6 +22,7 @@ public class CodeGenUtil { @AllArgsConstructor public enum SourceKey{ CostApply("cost_apply"), + SalePlan("SalePlan"), Activity("activity"), Verification("verification"), Policy("policy"), diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java index b03c87c4..8f481891 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java @@ -92,6 +92,21 @@ public class BmsApplyMessageController { return R.isTrue(result); } + /** + * 更新状态 + * @param param + * @return + */ + @PostMapping("/enable") + @SysLog(module = SystemModule.BASE, title = "申请信息", biz = BizType.UPDATE) + public R enableById(@RequestBody BmsApplyMessage param){ + BmsApplyMessage upd = new BmsApplyMessage(); + upd.setId(param.getId()); + upd.setEnableFlag(param.getEnableFlag()); + boolean result = bmsApplyMessageService.updateById(param); + return R.isTrue(result); + } + /** * 新增 * @param param diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java index aebdcb6e..6291884e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java @@ -37,16 +37,12 @@ public class BmsApplyMessage implements Serializable { private String type; /** 表达式 */ - @NotBlank(message = "表达式不能为空") - @Length(max = 255,message = "表达式长度不能超过255字") private String express; /** 启用状态 */ private Integer enableFlag; /** 信息 */ - @NotBlank(message = "信息不能为空") - @Length(max = 255,message = "信息长度不能超过255字") private String message; /** 备注 */ diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java index 4ef65a3b..cf7efb12 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java @@ -45,11 +45,11 @@ public class BmsApplyMessageServiceImpl extends ServiceImpl result = new ArrayList<>(); - if(StringUtils.hasText(param.getTestJsString())){ + if(param.getTestJsString()!=null){ String js = "function checkCostRate (){" + "\n var jsonStr = '"+jsonString+"';" + "\n var data= JSON.parse(jsonStr);" + - "\n console.log('checkCostRate() data',data);" + + //"\n console.log('checkCostRate() data',data);" + param.getTestJsString() + "\n}"; result.add(js); @@ -57,12 +57,12 @@ public class BmsApplyMessageServiceImpl extends ServiceImpl msgLqw = new LambdaQueryWrapper<>(); msgLqw.eq(BmsApplyMessage::getType, param.getTargetType()); msgLqw.eq(BmsApplyMessage::getEnableFlag,1); - List applyMessageList = new ArrayList<>(); + List applyMessageList = super.list(msgLqw); for (BmsApplyMessage applyMessage : applyMessageList) { String js = "function checkCostRate (){" + "\n var jsonStr = '"+jsonString+"';" + "\n var data= JSON.parse(jsonStr);" + - "\n console.log('checkCostRate() data',data);" + + //"\n console.log('checkCostRate() data',data);" + applyMessage.getExpress() + "\n}"; result.add(js); diff --git a/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java index 62692937..74e2f4e9 100644 --- a/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java +++ b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java @@ -4,6 +4,7 @@ import java.time.LocalDate; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -99,6 +100,9 @@ public class SalePlan implements Serializable { @TableField(fill = FieldFill.UPDATE) private String updateBy; + /** 销售计划商品list */ + @TableField(exist = false) + private List planGoodsList; public static SalePlan toNewObject(SalePlan source){ SalePlan plan = new SalePlan(); diff --git a/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java b/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java index c1cc8cf9..10427c83 100644 --- a/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java +++ b/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java @@ -1,8 +1,37 @@ package com.qs.serve.modules.sale.entity.bo; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.util.List; + /** * @author YenHex * @since 2023/9/20 */ +@Data public class SalePlanBo { + + /** id */ + private Long id; + + /** 标题 */ + @NotBlank(message = "标题不能为空") + private String planTitle; + + /** 客户id */ + private String supplierId; + + /** 目标类型(brand、category、series、spu、sku) */ + private String targetType; + + private List goodsItems; + + @Data + public static class SalePlanGoodsItem{ + private Long targetId; + private Integer qty; + } + } diff --git a/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java index a45ec630..2eea7769 100644 --- a/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java +++ b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java @@ -2,6 +2,9 @@ package com.qs.serve.modules.sale.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.sale.entity.SalePlanGoods; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; +import org.springframework.web.bind.annotation.DeleteMapping; /** * 销售计划商品 Mapper @@ -10,5 +13,8 @@ import com.qs.serve.modules.sale.entity.SalePlanGoods; */ public interface SalePlanGoodsMapper extends BaseMapper { + @Update("update set del_flag = 1 where plan_id = #{planId}") + int deleteByPlanId(@Param("planId") Long planId); + } diff --git a/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java b/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java index e1ee109f..61a1f66e 100644 --- a/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java +++ b/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.sale.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.sale.entity.SalePlan; +import com.qs.serve.modules.sale.entity.bo.SalePlanBo; /** * 销售计划 服务接口 @@ -10,5 +11,7 @@ import com.qs.serve.modules.sale.entity.SalePlan; */ public interface SalePlanService extends IService { + SalePlan modify(SalePlanBo param); + } diff --git a/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java index 0c9faa25..7d81bf90 100644 --- a/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java @@ -1,6 +1,25 @@ package com.qs.serve.modules.sale.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.CodeGenUtil; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; +import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.mapper.GoodsCategoryMapper; +import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; +import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; +import com.qs.serve.modules.sale.entity.SalePlanGoods; +import com.qs.serve.modules.sale.entity.bo.SalePlanBo; +import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper; +import com.qs.serve.modules.sale.service.SalePlanGoodsService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysUserMapper; +import com.qs.serve.modules.tbs.common.TbsGoodsType; +import com.qs.serve.modules.tbs.entity.TbsActivityGoods; +import com.qs.serve.modules.tbs.entity.bo.TbsActivityGoodsBo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +27,9 @@ import com.qs.serve.modules.sale.entity.SalePlan; import com.qs.serve.modules.sale.service.SalePlanService; import com.qs.serve.modules.sale.mapper.SalePlanMapper; +import java.util.ArrayList; +import java.util.List; + /** * 销售计划 服务实现类 * @author YenHex @@ -18,5 +40,97 @@ import com.qs.serve.modules.sale.mapper.SalePlanMapper; @AllArgsConstructor public class SalePlanServiceImpl extends ServiceImpl implements SalePlanService { + private final SysUserMapper sysUserMapper; + private final BmsSupplierMapper supplierMapper; + private final SalePlanGoodsMapper salePlanGoodsMapper; + private final SalePlanGoodsService salePlanGoodsService; + + private final GoodsCategoryMapper goodsCategoryMapper; + private final GoodsSpuMapper goodsSpuMapper; + private final GoodsSkuMapper goodsSkuMapper; + + @Override + public SalePlan modify(SalePlanBo param) { + String userId = AuthContextUtils.getSysUserId(); + SysUser sysUser = sysUserMapper.selectById(userId); + BmsSupplier supplier = supplierMapper.selectById(param.getSupplierId()); + SalePlan salePlan = new SalePlan(); + salePlan.setPlanTitle(param.getPlanTitle()); + salePlan.setUserId(sysUser.getId()); + salePlan.setUserCode(sysUser.getCode()); + salePlan.setUserName(sysUser.getName()); + salePlan.setSupplierId(supplier.getId()); + salePlan.setSupplierCode(supplier.getCode()); + salePlan.setSupplierName(supplier.getName()); + if(param.getId()==null){ + salePlan.setPlanCode(CodeGenUtil.generate(CodeGenUtil.SourceKey.SalePlan)); + super.save(salePlan); + }else { + salePlan.setId(param.getId()); + super.updateById(salePlan); + //删除品类 + salePlanGoodsMapper.deleteByPlanId(salePlan.getId()); + } + List planGoodsList = this.buildPlanGoods(param.getGoodsItems(),param.getTargetType()); + for (SalePlanGoods planGoods : planGoodsList) { + planGoods.setPlanId(salePlan.getId()); + } + salePlanGoodsService.saveBatch(planGoodsList); + return salePlan; + } + + private List buildPlanGoods(List goodsItems,String goodsType){ + List salePlanGoods = new ArrayList<>(); + if(goodsType.equals(TbsGoodsType.spu.name())){ + for (SalePlanBo.SalePlanGoodsItem goodsBo : goodsItems) { + GoodsSpu goodsSpu = goodsSpuMapper.selectById(goodsBo.getTargetId()); + GoodsCategory category1 = goodsCategoryMapper.selectById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryMapper.selectById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryMapper.selectById(goodsSpu.getCategoryThird()); + SalePlanGoods planGoods = new SalePlanGoods(); + planGoods.setTargetType(goodsType); + planGoods.setTargetId(goodsSpu.getId()); + planGoods.setTargetCode(goodsSpu.getSpuCode()); + planGoods.setTargetName(goodsSpu.getName()); + planGoods.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()); + planGoods.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()); + planGoods.setQty(goodsBo.getQty()); + salePlanGoods.add(planGoods); + } + }else if (goodsType.equals(TbsGoodsType.sku.name())){ + for (SalePlanBo.SalePlanGoodsItem goodsBo : goodsItems) { + GoodsSku sku = goodsSkuMapper.selectById(goodsBo.getTargetId()); + GoodsSpu goodsSpu = goodsSpuMapper.selectById(sku.getSpuId()); + GoodsCategory category1 = goodsCategoryMapper.selectById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryMapper.selectById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryMapper.selectById(goodsSpu.getCategoryThird()); + SalePlanGoods planGoods = new SalePlanGoods(); + planGoods.setTargetType(goodsType); + planGoods.setTargetId(sku.getId()); + planGoods.setTargetCode(sku.getSkuCode()); + planGoods.setTargetName(sku.getSpecInfos()); + planGoods.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()+"_"+sku.getId()); + planGoods.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()+"_"+sku.getSpecInfos()); + planGoods.setQty(goodsBo.getQty()); + salePlanGoods.add(planGoods); + } + }else { + //品牌、品类、系列 + for (SalePlanBo.SalePlanGoodsItem goodsBo : goodsItems) { + GoodsCategory category = goodsCategoryMapper.selectById(goodsBo.getTargetId()); + SalePlanGoods planGoods = new SalePlanGoods(); + planGoods.setTargetType(goodsType); + planGoods.setTargetId(category.getId()); + planGoods.setTargetCode(category.getCode()); + planGoods.setTargetName(category.getName()); + planGoods.setTargetLevelPathIds(category.getLevelPath()); + planGoods.setTargetLevelPathNames(category.getLevelPathNames()); + planGoods.setQty(goodsBo.getQty()); + salePlanGoods.add(planGoods); + } + } + return salePlanGoods; + } + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 1a1a6dc6..2f0b3c41 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -798,7 +798,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl