diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodTargetParam.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodTargetParam.java new file mode 100644 index 00000000..74466e11 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodTargetParam.java @@ -0,0 +1,17 @@ +package com.qs.serve.modules.goods.entity.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author YenHex + * @since 2023/2/20 + */ +@Data +@AllArgsConstructor +public class GoodTargetParam { + + private String goodsType; + private String goodsId; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsTargetInfo.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsTargetInfo.java new file mode 100644 index 00000000..988e88ec --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsTargetInfo.java @@ -0,0 +1,34 @@ +package com.qs.serve.modules.goods.entity.dto; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2023/2/20 + */ +@Data +public class GoodsTargetInfo { + + /** 目标类型(brand、category、series、spu、sku) */ + private String targetType; + + /** 目标id */ + private Long targetId; + + /** 目标编码 */ + private String targetCode; + + /** 目标名称 */ + private String targetName; + + /** 目标等级id路径 */ + private String targetLevelPathIds; + + /** 目标等级名称路径 */ + private String targetLevelPathNames; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsApplicationService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsApplicationService.java new file mode 100644 index 00000000..39a8e8f7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsApplicationService.java @@ -0,0 +1,94 @@ +package com.qs.serve.modules.goods.service; + +import com.qs.serve.modules.bms.service.BmsChannelPointService; +import com.qs.serve.modules.bms.service.BmsChannelService; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.bms.service.BmsSupplierService; +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.entity.dto.GoodTargetParam; +import com.qs.serve.modules.goods.entity.dto.GoodsTargetInfo; +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 org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author YenHex + * @since 2023/2/20 + */ +@Service +@AllArgsConstructor +public class GoodsApplicationService { + + + private final GoodsSkuService goodsSkuService; + private final GoodsSpuService goodsSpuService; + private final GoodsCategoryService goodsCategoryService; + + + public GoodsTargetInfo getGoodsTargetInfo(String goodsType,Long goodsIds){ + List list = this.getGoodsTargetInfo(goodsType, Arrays.asList(goodsIds)); + if(list.size()>0){ + return list.get(0); + } + return null; + } + + public List getGoodsTargetInfo(String goodsType,List goodsIds){ + List resultList = new ArrayList<>(); + if(goodsType.equals(TbsGoodsType.spu.name())){ + for (Long spuId : goodsIds) { + GoodsSpu goodsSpu = goodsSpuService.getById(spuId); + GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird()); + GoodsTargetInfo targetInfo = new GoodsTargetInfo(); + targetInfo.setTargetType(goodsType); + targetInfo.setTargetId(goodsSpu.getId()); + targetInfo.setTargetCode(goodsSpu.getSpuCode()); + targetInfo.setTargetName(goodsSpu.getName()); + targetInfo.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()); + targetInfo.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()); + resultList.add(targetInfo); + } + }else if (goodsType.equals(TbsGoodsType.sku.name())){ + for (Long skuId : goodsIds) { + GoodsSku sku = goodsSkuService.getById(skuId); + GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); + GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird()); + GoodsTargetInfo targetInfo = new GoodsTargetInfo(); + targetInfo.setTargetType(goodsType); + targetInfo.setTargetId(sku.getId()); + targetInfo.setTargetCode(sku.getSkuCode()); + targetInfo.setTargetName(sku.getSpecInfos()); + targetInfo.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()+"_"+sku.getId()); + targetInfo.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()+"_"+sku.getSpecInfos()); + resultList.add(targetInfo); + } + }else { + //品牌、品类、系列 + for (Long categoryId : goodsIds) { + GoodsCategory category = goodsCategoryService.getById(categoryId); + GoodsTargetInfo targetInfo = new GoodsTargetInfo(); + targetInfo.setTargetType(goodsType); + targetInfo.setTargetId(category.getId()); + targetInfo.setTargetCode(category.getCode()); + targetInfo.setTargetName(category.getName()); + targetInfo.setTargetLevelPathIds(category.getLevelPath()); + targetInfo.setTargetLevelPathNames(category.getLevelPathNames()); + resultList.add(targetInfo); + } + } + return resultList; + } + +} diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index b2db3463..5b6ef9c5 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -114,5 +114,17 @@ public class TzcPolicyController { return R.isTrue(result); } + + /** + * 提交审批 + * @param policyId + * @return + */ + @PostMapping("/commitPolicy/{policyId}") + public R commitPolicy(@PathVariable("policyId")Long policyId){ + + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java deleted file mode 100644 index 68e7e30a..00000000 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.qs.serve.modules.tzc.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.serve.common.model.annotation.SysLog; -import com.qs.serve.common.model.dto.PageVo; -import com.qs.serve.common.model.dto.R; -import com.qs.serve.common.model.enums.BizType; -import com.qs.serve.common.model.enums.SystemModule; -import com.qs.serve.common.util.Assert; -import com.qs.serve.common.util.PageUtil; -import com.qs.serve.common.util.CopierUtil; -import com.qs.serve.common.util.StringUtils; -import com.qs.serve.modules.tzc.entity.TzcPolicy; -import com.qs.serve.modules.tzc.entity.TzcPolicyItem; -import com.qs.serve.modules.tzc.service.TzcPolicyService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import com.qs.serve.modules.tzc.entity.bo.TzcPolicyGoodsBo; -import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; -import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; - -import javax.validation.Valid; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 政策 政策商品 - * @author YenHex - * @since 2023-02-20 - */ -@Slf4j -@AllArgsConstructor -@RestController -@RequestMapping("tzc/policyGoods") -public class TzcPolicyGoodsController { - - private TzcPolicyService tzcPolicyService; - private TzcPolicyGoodsService tzcPolicyGoodsService; - - /** - * 列表 - * @param param - * @return - */ - @GetMapping("/list") - public R> getList(TzcPolicyGoods param){ - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); - List list = tzcPolicyGoodsService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - public R> getPage(TzcPolicyGoods param){ - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); - PageUtil.startPage(); - List list = tzcPolicyGoodsService.list(lqw); - return R.byPageHelperList(list); - } - - /** - * ID查询 - * @param id - * @return - */ - @GetMapping("/getById/{id}") - @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.QUERY) - public R getById(@PathVariable("id") String id){ - TzcPolicyGoods tzcPolicyGoods = tzcPolicyGoodsService.getById(id); - return R.ok(tzcPolicyGoods); - } - - - - /** - * 更新 - * @param param - * @return - */ - @PostMapping("/updateById") - @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.UPDATE) - @PreAuthorize("hasRole('tzc:policy:insert')") - public R updateById(@RequestBody @Valid TzcPolicyGoodsBo param){ - TzcPolicy tzcPolicy = tzcPolicyService.getById(param.getPolicyId()); - if(!tzcPolicy.allowEditFlag()){ - return R.error("当前状态不支持编辑"); - } - TzcPolicyGoods entity = CopierUtil.copy(param,new TzcPolicyGoods()); - boolean result = tzcPolicyGoodsService.updateById(entity); - return R.isTrue(result); - } - - /** - * 新增 - * @param param - * @return - */ - @PostMapping("/save") - @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.INSERT) - @PreAuthorize("hasRole('tzc:policy:insert')") - public R save(@RequestBody @Valid TzcPolicyGoodsBo param){ - TzcPolicy tzcPolicy = tzcPolicyService.getById(param.getPolicyId()); - if(!tzcPolicy.allowEditFlag()){ - return R.error("当前状态不支持编辑"); - } - TzcPolicyGoods entity = CopierUtil.copy(param,new TzcPolicyGoods()); - boolean result = tzcPolicyGoodsService.save(entity); - return R.isTrue(result); - } - - /** - * 删除 - * @param ids - * @return - */ - @DeleteMapping("/deleteById/{ids}") - @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.DELETE) - @PreAuthorize("hasRole('tzc:policy:insert')") - public R deleteById(@PathVariable("ids") String ids){ - List idsLong = StringUtils.splitIdLong(ids); - List policyGoods = tzcPolicyGoodsService.listByIds(idsLong); - List policyIdsList = policyGoods.stream().map(TzcPolicyGoods::getPolicyId).distinct().collect(Collectors.toList()); - List policyList = tzcPolicyService.listByIds(policyIdsList); - policyList.forEach(a->{ - if(!a.allowEditFlag()){ - Assert.throwEx("当前状态不支持编辑"); - } - }); - boolean result = tzcPolicyGoodsService.removeByIds(idsLong); - return R.isTrue(result); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java index 73612ab7..d66e7fe0 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java @@ -12,6 +12,8 @@ import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; import com.qs.serve.modules.tzc.service.TzcPolicyService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -38,6 +40,7 @@ import java.util.stream.Collectors; public class TzcPolicyItemController { private TzcPolicyItemService tzcPolicyItemService; + private TzcPolicyGoodsService tzcPolicyGoodsService; private TzcPolicyService tzcPolicyService; /** @@ -45,14 +48,27 @@ public class TzcPolicyItemController { * @param param * @return */ - //@GetMapping("/list") + @GetMapping("/list") public R> getList(TzcPolicyItem param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); - PageUtil.startPage(); List list = tzcPolicyItemService.list(lqw); return R.ok(list); } + + /** + * 政策项商品列表 + * @param itemId + * @return + */ + @GetMapping("/listItemGoods/{itemId}") + public R> getList(@PathVariable("itemId")Long itemId){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TzcPolicyGoods::getPolicyItemId,itemId); + List list = tzcPolicyGoodsService.list(lqw); + return R.ok(list); + } + /** * 翻页 * @param param @@ -79,7 +95,6 @@ public class TzcPolicyItemController { } - /** * 更新 * @param param diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java index 1d24a213..d291af38 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java @@ -83,40 +83,6 @@ public class TzcPolicy implements Serializable { @Length(max = 32,message = "申请人长度不能超过32字") private String userName; - /** 成本中心类型 */ - @NotBlank(message = "成本中心类型不能为空") - @Length(max = 50,message = "成本中心类型长度不能超过50字") - private String centerType; - - /** 成本中心id */ - @NotBlank(message = "成本中心id不能为空") - @Length(max = 32,message = "成本中心id长度不能超过32字") - private String centerId; - - /** 成本中心编码 */ - @NotBlank(message = "成本中心编码不能为空") - @Length(max = 50,message = "成本中心编码长度不能超过50字") - private String centerCode; - - /** 成本中心名称 */ - @NotBlank(message = "成本中心名称不能为空") - @Length(max = 50,message = "成本中心名称长度不能超过50字") - private String centerName; - - /** 科目id */ - @NotNull(message = "科目id不能为空") - private Long subjectId; - - /** 科目编码 */ - @NotBlank(message = "科目编码不能为空") - @Length(max = 50,message = "科目编码长度不能超过50字") - private String subjectCode; - - /** 科目名称 */ - @NotBlank(message = "科目名称不能为空") - @Length(max = 50,message = "科目名称长度不能超过50字") - private String subjectName; - /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java index 2e40036f..eb5edf99 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java @@ -34,36 +34,14 @@ public class TzcPolicyBo implements Serializable { @Length(max = 60,message = "主题长度不能超过60字") private String title; - /** 政策编码 */ - @NotBlank(message = "政策编码不能为空") - @Length(max = 50,message = "政策编码长度不能超过50字") - private String policyCode; - - /** 客户id */ @NotNull(message = "客户id不能为空") private Long supplierId; - /** 成本中心类型 */ - @NotBlank(message = "成本中心类型不能为空") - @Length(max = 50,message = "成本中心类型长度不能超过50字") - private String centerType; - - /** 成本中心id */ - @NotBlank(message = "成本中心id不能为空") - @Length(max = 32,message = "成本中心id长度不能超过32字") - private String centerId; - - /** 科目id */ - @NotNull(message = "科目id不能为空") - private Long subjectId; - /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; - /** 备注 */ - private List policyItemList; } diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java index 3bdcb560..39ef5c52 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java @@ -25,76 +25,16 @@ public class TzcPolicyGoodsBo implements Serializable { private static final long serialVersionUID = 1L; - /** id */ - private Long id; - - /** 政策id */ - @NotNull(message = "政策id不能为空") - private Long policyId; - - /** 政策项id */ - @NotNull(message = "政策项id不能为空") - private Long policyItemId; - - /** 政策编码 */ - @NotBlank(message = "政策编码不能为空") - @Length(max = 50,message = "政策编码长度不能超过50字") - private String policyItemCode; - /** 目标类型(brand、category、series、spu、sku) */ - @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") - @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") + @NotBlank(message = "目标类型不能为空") private String targetType; - /** 目标id */ - @NotNull(message = "目标id不能为空") private Long targetId; - /** 目标编码 */ - @NotBlank(message = "目标编码不能为空") - @Length(max = 30,message = "目标编码长度不能超过30字") - private String targetCode; - - /** 目标名称 */ - @NotBlank(message = "目标名称不能为空") - @Length(max = 30,message = "目标名称长度不能超过30字") - private String targetName; - - /** 目标等级路径 */ - @Length(max = 600,message = "目标等级路径长度不能超过600字") - private String targetLevelPathIds; - - /** 目标等级路径 */ - @Length(max = 600,message = "目标等级路径长度不能超过600字") - private String targetLevelPathNames; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; - } diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java index 00e228f0..b59595ce 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java @@ -14,7 +14,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; - +import java.util.List; /** * 政策项 Bo * @author YenHex @@ -32,6 +32,20 @@ public class TzcPolicyItemBo implements Serializable { @NotNull(message = "政策id不能为空") private Long policyId; + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + /** 开始时间 */ @NotNull(message = "开始时间不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") @@ -54,5 +68,8 @@ public class TzcPolicyItemBo implements Serializable { @NotNull(message = "已用金额不能为空") private BigDecimal usedAmount; + @NotNull(message = "商品列表参数不能为空") + List policyGoodsList; + } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java index 87eedf5a..473fa2cd 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tzc.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyGoodsBo; /** * 政策商品 服务接口 diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java index aa8c11e7..75dfef12 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java @@ -14,5 +14,11 @@ public interface TzcPolicyService extends IService { R modify(TzcPolicyBo policyParam); + /** + * 提交审批 + * @param policyId + */ + void commitPolicy(Long policyId); + } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java index 29d0adaa..ca404948 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java @@ -1,6 +1,16 @@ package com.qs.serve.modules.tzc.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.goods.service.GoodsApplicationService; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyGoodsBo; +import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; +import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java index c683e435..0731be51 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java @@ -3,19 +3,33 @@ package com.qs.serve.modules.tzc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.goods.entity.dto.GoodsTargetInfo; +import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; +import com.qs.serve.modules.goods.service.GoodsApplicationService; +import com.qs.serve.modules.tbs.service.TbsCenterDtoService; import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyGoodsBo; import com.qs.serve.modules.tzc.entity.bo.TzcPolicyItemBo; import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 政策项 服务实现类 @@ -28,6 +42,10 @@ import java.util.List; public class TzcPolicyItemServiceImpl extends ServiceImpl implements TzcPolicyItemService { private TzcPolicyMapper tzcPolicyMapper; + private TbsCenterDtoService tbsCenterDtoService; + private BmsSubjectService bmsSubjectService; + private GoodsApplicationService goodsApplicationService; + private TzcPolicyGoodsService tzcPolicyGoodsService; @Override public List listByPolicyId(Long id) { @@ -38,6 +56,7 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl modify(TzcPolicyItemBo param) { TzcPolicy tzcPolicy = tzcPolicyMapper.selectById(param.getPolicyId()); if(!tzcPolicy.allowEditFlag()){ @@ -49,8 +68,10 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl policyItemList = this.listByPolicyId(tzcPolicy.getId()); + BmsSubject bmsSubject = bmsSubjectService.getById(param.getSubjectId()); + TbsCenterDto centerDto = tbsCenterDtoService.getCenterDto(param.getCenterType(),param.getCenterId()); + TzcPolicyItem tzcPolicyItem = new TzcPolicyItem(); tzcPolicyItem.setId(param.getId()); tzcPolicyItem.setPolicyId(param.getPolicyId()); tzcPolicyItem.setPolicyStartDate(param.getPolicyStartDate()); @@ -58,7 +79,50 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(TzcPolicyGoods::getPolicyItemId,param.getId()); + tzcPolicyGoodsService.remove(lqw); + } + //加载商品 + List policyGoodsBoList = param.getPolicyGoodsList(); + Map> policyGoodsBoListMap = policyGoodsBoList.stream() + .collect(Collectors.groupingBy(TzcPolicyGoodsBo::getTargetType)); + List tzcPolicyGoodsList = new ArrayList<>(); + for (String goodsType : policyGoodsBoListMap.keySet()) { + List policyGoodsBos = policyGoodsBoListMap.get(goodsType); + List goodsIds = policyGoodsBos.stream().map(TzcPolicyGoodsBo::getTargetId).collect(Collectors.toList()); + List goodsTargetInfoList = goodsApplicationService.getGoodsTargetInfo(goodsType,goodsIds); + if(goodsTargetInfoList.size()a.setPolicyItemId(itemId)); + tzcPolicyGoodsService.saveBatch(tzcPolicyGoodsList); return R.ok(tzcPolicyItem); } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java index 482212b2..ffe756ff 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java @@ -37,10 +37,7 @@ import org.springframework.transaction.annotation.Transactional; public class TzcPolicyServiceImpl extends ServiceImpl implements TzcPolicyService { private BmsSupplierService bmsSupplierService; - private BmsSubjectService bmsSubjectService; private SysUserService sysUserService; - private TbsCenterDtoService tbsCenterDtoService; - private TzcPolicyItemService tzcPolicyItemService; @Override @Transactional(rollbackFor = Exception.class) @@ -55,38 +52,28 @@ public class TzcPolicyServiceImpl extends ServiceImpl } }else { tzcPolicy = new TzcPolicy(); + tzcPolicy.setPolicyCode(IdUtil.getSnowflake()+""); } - TbsCenterDto centerDto = tbsCenterDtoService.getCenterDto(policyParam.getCenterType(),policyParam.getCenterId()); BmsSupplier supplier = bmsSupplierService.getById(policyParam.getSupplierId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); - BmsSubject bmsSubject = bmsSubjectService.getById(policyParam.getSubjectId()); tzcPolicy.setTitle(policyParam.getTitle()); - tzcPolicy.setPolicyCode(IdUtil.getSnowflake()+""); tzcPolicy.setSupplierId(policyParam.getSupplierId()); - tzcPolicy.setSubjectCode(supplier.getCode()); + tzcPolicy.setSupplierCode(supplier.getCode()); tzcPolicy.setSupplierName(supplier.getName()); tzcPolicy.setUserId(sysUser.getId()); tzcPolicy.setUserCode(sysUser.getCode()); tzcPolicy.setUserName(sysUser.getName()); - tzcPolicy.setCenterType(centerDto.getCenterType()); - tzcPolicy.setCenterId(centerDto.getId()); - tzcPolicy.setCenterCode(centerDto.getCenterCode()); - tzcPolicy.setCenterName(centerDto.getCenterName()); - tzcPolicy.setSubjectId(bmsSubject.getId()); - tzcPolicy.setSubjectCode(bmsSubject.getSubjectCode()); - tzcPolicy.setSubjectName(bmsSubject.getSubjectName()); tzcPolicy.setRemark(policyParam.getRemark()); - //更新 - if(policyId!=null){ - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(TzcPolicyItem::getPolicyId,policyId); - TzcPolicyItem policyItem = CopierUtil.copy(tzcPolicy,new TzcPolicyItem()); - policyItem.setRemark(null); - tzcPolicyItemService.update(policyItem,lqw); - } this.saveOrUpdate(tzcPolicy); return R.ok(tzcPolicy); } + + @Override + public void commitPolicy(Long policyId) { + + } + + }