diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java index 4d24b033..8fbcda2f 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java @@ -10,6 +10,9 @@ 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.goods.entity.bo.GoodsAccreditBo; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditQuery; +import com.qs.serve.modules.goods.entity.vo.GoodsAccreditResult; import com.qs.serve.modules.goods.entity.vo.GoodsAccreditVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -35,6 +38,17 @@ public class GoodsAccreditController { private GoodsAccreditService goodsAccreditService; + /** + * 辅助查询 + * @param query + * @return + */ + @GetMapping("/page") + public R> getPage(GoodsAccreditQuery query){ + List data = goodsAccreditService.queryPage(query); + return R.ok(data); + } + /** * ID查询 * @param cateId 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 27c9dde4..24d0c3ac 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 @@ -71,6 +71,7 @@ public class GoodsSpuController { private SeeYonRequestBaseService seeYonRequestBaseService; private ErpDispatchDataMapper dispatchDataMapper; private GoodsAccreditService goodsAccreditService; + private GoodsCustomerPriceService goodsCustomerPriceService; @@ -151,7 +152,9 @@ public class GoodsSpuController { spu.setUuid(spu.getId()+"_"+spu.getSkuId()); } List skuCodes = list.stream().map(GoodsSpu::getSkuCode).collect(Collectors.toList()); - this.initSpuWithCustomerPrice(param.getSupplierCode(), list, skuCodes); + if(CollUtil.isNotEmpty(skuCodes)){ + this.initSpuWithCustomerPrice(param.getSupplierCode(), list, skuCodes); + } return R.byPageList(total,list); } @@ -748,13 +751,23 @@ public class GoodsSpuController { List inventoryCusPrices = null; try { if(skuCodes.size()>0){ - InventoryCusPriceQuery query = new InventoryCusPriceQuery(); - query.setCusCode(supplierCode); - query.setInvCodes(skuCodes); - R res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); - if(res.getStatus().equals(200)){ - inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); - } + + List customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode,skuCodes); + return customerPrices.stream().map(obj->{ + InventoryCusPrice cusPrice = new InventoryCusPrice(); + cusPrice.setCusCode(supplierCode); + cusPrice.setInvCode(obj.getSkuCode()); + cusPrice.setPrice(obj.getRealPrice()); + return cusPrice; + }).collect(Collectors.toList()); + +// InventoryCusPriceQuery query = new InventoryCusPriceQuery(); +// query.setCusCode(supplierCode); +// query.setInvCodes(skuCodes); +// R res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); +// if(res.getStatus().equals(200)){ +// inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); +// } } } catch (Exception e) { log.error("客户特殊价异常:{}",e.getMessage()); diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsAccredit.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsAccredit.java index b07efe79..5d36f586 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsAccredit.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsAccredit.java @@ -36,6 +36,10 @@ public class GoodsAccredit implements Serializable { private Long skuId; + private String code; + + private String name; + /** 销售区域id */ @Length(max = 32,message = "销售区域id长度不能超过32字") private String categoryId; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCustomerPrice.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCustomerPrice.java index d0dc3de1..4f2094a3 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCustomerPrice.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCustomerPrice.java @@ -80,7 +80,6 @@ public class GoodsCustomerPrice implements Serializable { private String makerCode; /** 定价时间 */ - @Length(max = 0,message = "定价时间长度不能超过0字") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime markTime; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsRule.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsRule.java index 262e6088..fe8da925 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsRule.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsRule.java @@ -27,6 +27,10 @@ public class GoodsRule implements Serializable { @TableId(type = IdType.AUTO) private Long id; + private String code; + + private String name; + /** 客户id */ private Long supplierId; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditExt.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditExt.java new file mode 100644 index 00000000..182b1134 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditExt.java @@ -0,0 +1,56 @@ +package com.qs.serve.modules.goods.entity.dto; + +import com.qs.serve.modules.goods.entity.GoodsAccredit; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2024/4/8 + */ +@Data +public class GoodsAccreditExt { + + private Long id; + + private String code; + + private String name; + + /** 客户id */ + private Long spuId; + + private Long skuId; + + /** 销售区域id */ + private String categoryId; + + /** 0:in,1:not-in */ + private Integer accType; + + /** 维度类型:supplier-客户;bizRegion-行政区域;saleRegion-销售区域 */ + @NotNull(message = "维度类型:0-客户;1-行政区域;2-销售区域不能为空") + private String targetType; + + /** 维度编码 */ + @NotBlank(message = "维度编码不能为空") + @Length(max = 255,message = "维度编码长度不能超过255字") + private String targetCode; + + /** 维度名称 */ + @Length(max = 255,message = "维度名称长度不能超过255字") + private String targetName; + + /** 维度id */ + @NotBlank(message = "维度id不能为空") + @Length(max = 30,message = "维度id长度不能超过30字") + private String targetId; + + private String bizRegionId; + private String saleRegionId; + private String supplierId; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditQuery.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditQuery.java new file mode 100644 index 00000000..876177e7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditQuery.java @@ -0,0 +1,31 @@ +package com.qs.serve.modules.goods.entity.dto; + +import com.qs.serve.modules.goods.entity.GoodsAccredit; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Set; + +/** + * @author YenHex + * @since 2024/4/9 + */ +@Data +public class GoodsAccreditQuery { + + private String code = ""; + + private String name = ""; + + /** 维度编码 */ + private String targetCode = ""; + + /** 维度名称 */ + private String targetName = ""; + + private Set codeList; + + private Set targetCodeList; +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsAccreditResult.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsAccreditResult.java new file mode 100644 index 00000000..110b77cf --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsAccreditResult.java @@ -0,0 +1,50 @@ +package com.qs.serve.modules.goods.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2024/4/8 + */ +@Data +public class GoodsAccreditResult { + + private String id; + + /** + * goods,supplier + */ + private String ruleType; + + private String goodType; + + private String code; + + private String name; + + /** 0:in,1:not-in */ + private String accType; + + /** 维度类型:supplier-客户;bizRegion-行政区域;saleRegion-销售区域 */ + @NotNull(message = "维度类型:0-客户;1-行政区域;2-销售区域不能为空") + private String targetType; + + /** 维度编码 */ + @NotBlank(message = "维度编码不能为空") + @Length(max = 255,message = "维度编码长度不能超过255字") + private String targetCode; + + /** 维度名称 */ + @Length(max = 255,message = "维度名称长度不能超过255字") + private String targetName; + + /** 维度id */ + @NotBlank(message = "维度id不能为空") + @Length(max = 30,message = "维度id长度不能超过30字") + private String targetId; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsAccreditMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsAccreditMapper.java index 77dbcb3a..1001e16d 100644 --- a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsAccreditMapper.java +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsAccreditMapper.java @@ -1,7 +1,14 @@ package com.qs.serve.modules.goods.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.qs.serve.modules.goods.entity.GoodsAccredit; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * 规则 Mapper @@ -10,5 +17,9 @@ import com.qs.serve.modules.goods.entity.GoodsAccredit; */ public interface GoodsAccreditMapper extends BaseMapper { + List queryPage(@Param("query") GoodsAccreditQuery query); + + List queryPage2(@Param("query") GoodsAccreditQuery query); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java index 85150507..cb1f99cb 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java @@ -1,11 +1,15 @@ package com.qs.serve.modules.goods.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.modules.goods.entity.GoodsAccredit; import com.qs.serve.modules.goods.entity.GoodsAccreditItem; import com.qs.serve.modules.goods.entity.GoodsRuleItem; import com.qs.serve.modules.goods.entity.bo.GoodsAccreditBo; import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditQuery; +import com.qs.serve.modules.goods.entity.vo.GoodsAccreditResult; import com.qs.serve.modules.goods.entity.vo.GoodsAccreditVo; import java.util.List; @@ -18,6 +22,8 @@ import java.util.Map; */ public interface GoodsAccreditService extends IService { + List queryPage(GoodsAccreditQuery query); + void modify(GoodsAccreditBo param); GoodsAccreditVo getById(String cateId, String spuId, String skuId); diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java index 9fdc0cac..3fb15ea1 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java @@ -7,6 +7,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsCustomerPriceSingleBo; import org.springframework.web.bind.annotation.RequestBody; import javax.validation.Valid; +import java.util.List; /** * 客户价格关系表 服务接口 @@ -22,5 +23,7 @@ public interface GoodsCustomerPriceService extends IService GoodsCustomerPrice getBySupplierIdAndCode(String supplierId,String skuCode); + List getBySupplierCodeAndCode(String supplierCode, List skuCode); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java index 7da4af83..99c203fd 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java @@ -3,8 +3,13 @@ package com.qs.serve.modules.goods.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsSupplier; @@ -14,6 +19,9 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.bo.GoodsAccreditBo; import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt; +import com.qs.serve.modules.goods.entity.dto.GoodsAccreditQuery; +import com.qs.serve.modules.goods.entity.vo.GoodsAccreditResult; import com.qs.serve.modules.goods.entity.vo.GoodsAccreditVo; import com.qs.serve.modules.goods.mapper.*; import com.qs.serve.modules.goods.service.GoodsAccreditItemService; @@ -42,10 +50,173 @@ public class GoodsAccreditServiceImpl extends ServiceImpl queryPage(GoodsAccreditQuery query) { + String productCode = query.getCode(); + String productName = query.getName(); + String targetCode = query.getTargetCode(); + String targetName = query.getTargetName(); + if(StringUtils.hasText(productCode)||StringUtils.hasText(productName)){ + //向上维度查询 + Set codes = new HashSet<>(); + List skuList = goodsSkuMapper.selectList(new LambdaQueryWrapper() + .eq(GoodsSku::getSkuCode,productCode) + .or() + .eq(GoodsSku::getSkuName,productName)); + List spuList = goodsSpuMapper.selectList(new LambdaQueryWrapper() + .eq(GoodsSpu::getSpuCode,productCode) + .or() + .eq(GoodsSpu::getName,productName)); + if(skuList.size()>0){ + codes.add(productCode); + spuList.addAll(goodsSpuMapper.selectBatchIds(skuList.stream().map(GoodsSku::getSpuId).collect(Collectors.toSet()))); + } + if(spuList.size()>0){ + Set cateIds = new HashSet<>(); + for (GoodsSpu spu : spuList) { + //向上查询添加skuCode + codes.add(spu.getSpuCode()); + cateIds.addAll(spu.listCategoryIds()); + } + List categoryList = categoryMapper.selectBatchIds(cateIds); + for (GoodsCategory category : categoryList) { + //向上查询添加CategoryCode + codes.add(category.getCode()); + } + } + List categoryList = categoryMapper.selectList(new LambdaQueryWrapper().eq(GoodsCategory::getCode,productCode)); + for (GoodsCategory category : categoryList) { + codes.add(category.getCode()); + if(!category.getParentId().equals(0L)){ + GoodsCategory lastLevel = categoryMapper.selectById(category.getParentId()); + if(lastLevel!=null){ + codes.add(lastLevel.getCode()); + if(!lastLevel.getParentId().equals(0L)){ + GoodsCategory lastLevel2 = categoryMapper.selectById(category.getParentId()); + if(lastLevel2!=null){ + codes.add(lastLevel.getCode()); + } + } + } + } + } + query.setCodeList(codes); + } + + if(StringUtils.hasText(targetCode)||StringUtils.hasText(targetName)){ + Set targetCodes = new HashSet<>(); + List supplierList = supplierMapper.selectList(new LambdaQueryWrapper() + .eq(BmsSupplier::getCode,targetCode) + .or() + .eq(BmsSupplier::getName,targetName)); + if(supplierList.size()>0){ + targetCodes.add(targetCode); + for (BmsSupplier supplier : supplierList) { + List bizIds = supplier.listBizRegionIds(); + List saleIds = supplier.listSaleRegionIds(); + List regionList = regionMapper.selectBatchIds(saleIds); + for (BmsRegion region : regionList) { + targetCodes.add(region.getCode()); + } + List region2List = region2Mapper.selectBatchIds(bizIds); + for (BmsRegion2 region2 : region2List) { + targetCodes.add(region2.getCode()); + } + } + } + + List regionList = regionMapper.selectList(new LambdaQueryWrapper() + .eq(BmsRegion::getName,targetName) + .or() + .eq(BmsRegion::getCode,targetCode)); + if (regionList.size()>0){ + Set regIds = new HashSet<>(); + for (BmsRegion region : regionList) { + String[] ids = region.getPathIds().split("_"); + regIds.addAll(Arrays.asList(ids)); + } + regionList = regionMapper.selectBatchIds(regIds); + targetCodes.addAll(regionList.stream().map(BmsRegion::getCode).collect(Collectors.toSet())); + } + + List region2List = region2Mapper.selectList(new LambdaQueryWrapper() + .eq(BmsRegion2::getName,targetName) + .or() + .eq(BmsRegion2::getCode,targetCode)); + if (region2List.size()>0){ + Set regIds = new HashSet<>(); + for (BmsRegion2 region : region2List) { + String[] ids = region.getPathIds().split("_"); + regIds.addAll(Arrays.asList(ids)); + } + region2List = region2Mapper.selectBatchIds(regIds); + targetCodes.addAll(region2List.stream().map(BmsRegion2::getCode).collect(Collectors.toSet())); + } + + query.setTargetCodeList(targetCodes); + } + List list = super.baseMapper.queryPage(query); + List results = list.stream().map(ext->{ + GoodsAccreditResult result = new GoodsAccreditResult(); + result.setId("goods"+ext.getId()); + result.setRuleType("goods"); + if(ext.getCategoryId()!=null){ + result.setGoodType("category"); + }else if (ext.getSpuId()!=null){ + result.setGoodType("spu"); + }else { + result.setGoodType("sku"); + } + result.setCode(ext.getCode()); + result.setName(ext.getName()); + result.setAccType(ext.getAccType().equals(0)?"in":"notIn"); + result.setTargetType(ext.getTargetType()); + result.setTargetCode(ext.getTargetCode()); + result.setTargetName(ext.getTargetName()); + result.setTargetId(ext.getTargetId()); + return result; + }).collect(Collectors.toList()); + + + List list2 = super.baseMapper.queryPage2(query); + for (GoodsAccreditExt ext : list2) { + GoodsAccreditResult result = new GoodsAccreditResult(); + result.setId("supplier"+ext.getId()); + result.setRuleType("supplier"); + if(ext.getSaleRegionId()!=null){ + result.setTargetType("saleRegion"); + }else if (ext.getBizRegionId()!=null){ + result.setTargetType("bizRegion"); + }else { + result.setTargetType("supplier"); + } + result.setCode(ext.getCode()); + result.setName(ext.getName()); + if(ext.getTargetType().equals("1")){ + result.setAccType("in"); + result.setGoodType("category"); + }else if (ext.getTargetType().equals("2")){ + result.setAccType("notIn"); + result.setGoodType("category"); + }else if (ext.getTargetType().equals("3")){ + result.setAccType("in"); + result.setGoodType("spu"); + }else { + result.setAccType("notIn"); + result.setGoodType("spu"); + } + result.setTargetType(ext.getTargetType()); + result.setTargetCode(ext.getTargetCode()); + result.setTargetName(ext.getTargetName()); + result.setTargetId(ext.getTargetId()); + results.add(result); + } + return results; + } + @Override public void modify(GoodsAccreditBo param) { GoodsAccredit goodsAccredit = null; @@ -387,7 +558,15 @@ public class GoodsAccreditServiceImpl extends ServiceImpl spuList = spuMapper.selectBatchIds(spuIds); + List spuList = goodsSpuMapper.selectBatchIds(spuIds); for (GoodsAccredit accredit : accreditList) { if(accredit.getSpuId()!=null){ for (GoodsSpu spu : spuList) { @@ -432,6 +611,8 @@ public class GoodsAccreditServiceImpl extends ServiceImpl() @@ -440,6 +621,8 @@ public class GoodsAccreditServiceImpl extends ServiceImpl() @@ -448,6 +631,8 @@ public class GoodsAccreditServiceImpl extends ServiceImpl getBySupplierCodeAndCode(String supplierCode, List skuCodes) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(GoodsCustomerPrice::getSupplierCode,supplierCode) + .in(GoodsCustomerPrice::getSkuCode,skuCodes); + return this.list(lqw); + } + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java index a47fe594..5e773282 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java @@ -355,6 +355,8 @@ public class GoodsRuleServiceImpl extends ServiceImpl if(goodsRule ==null){ goodsRule = new GoodsRule(); goodsRule.setSupplierId(param.getSupplierId()); + goodsRule.setCode(supplier.getCode()); + goodsRule.setName(supplier.getName()); } } }else if (StringUtils.hasText(param.getBizRegionId())){ @@ -364,6 +366,8 @@ public class GoodsRuleServiceImpl extends ServiceImpl if(goodsRule ==null){ goodsRule = new GoodsRule(); goodsRule.setBizRegionId(param.getBizRegionId()); + goodsRule.setCode(region2.getCode()); + goodsRule.setName(region2.getName()); } } }else if (StringUtils.hasText(param.getSaleRegionId())){ @@ -373,6 +377,8 @@ public class GoodsRuleServiceImpl extends ServiceImpl if(goodsRule ==null){ goodsRule = new GoodsRule(); goodsRule.setSaleRegionId(param.getSaleRegionId()); + goodsRule.setCode(region.getCode()); + goodsRule.setName(region.getName()); } } } 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 47ab7d16..012d5008 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 @@ -12,20 +12,14 @@ import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.goods.common.GoodsConst; -import com.qs.serve.modules.goods.entity.GoodsAccredit; -import com.qs.serve.modules.goods.entity.GoodsCategoryRule; -import com.qs.serve.modules.goods.entity.GoodsSku; -import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; -import com.qs.serve.modules.goods.service.GoodsAccreditService; -import com.qs.serve.modules.goods.service.GoodsRuleService; -import com.qs.serve.modules.goods.service.GoodsSkuService; -import com.qs.serve.modules.goods.service.GoodsSpuService; +import com.qs.serve.modules.goods.service.*; import com.qs.serve.modules.oms.entity.*; import com.qs.serve.modules.oms.entity.bo.*; import com.qs.serve.modules.oms.entity.dto.*; @@ -72,6 +66,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; private GoodsCategoryRuleMapper goodsCategoryRuleMapper; + private GoodsCustomerPriceService goodsCustomerPriceService; private BmsSupplierMapper bmsSupplierMapper; private BmsRegionMapper bmsRegionMapper; @@ -547,13 +542,21 @@ public class OmsOrderServiceImpl extends ServiceImpl im String supplierCode = supplier.getCode(); List skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList()); if(skuCodes.size()>0){ - InventoryCusPriceQuery query = new InventoryCusPriceQuery(); - query.setCusCode(supplierCode); - query.setInvCodes(skuCodes); - R res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); - if(res.getStatus().equals(200)){ - inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); - } + List customerPrices = goodsCustomerPriceService.getBySupplierCodeAndCode(supplierCode,skuCodes); + inventoryCusPrices = customerPrices.stream().map(obj->{ + InventoryCusPrice cusPrice = new InventoryCusPrice(); + cusPrice.setCusCode(supplierCode); + cusPrice.setInvCode(obj.getSkuCode()); + cusPrice.setPrice(obj.getRealPrice()); + return cusPrice; + }).collect(Collectors.toList()); +// InventoryCusPriceQuery query = new InventoryCusPriceQuery(); +// query.setCusCode(supplierCode); +// query.setInvCodes(skuCodes); +// R res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价"); +// if(res.getStatus().equals(200)){ +// inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); +// } } } catch (Exception e) { log.error("客户特殊价异常:{}",e.getMessage()); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java index a06faf54..5e558568 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.vtb.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.CollectionUtil; @@ -17,6 +18,7 @@ import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.vtb.common.VtbVerificationState; +import com.qs.serve.modules.vtb.entity.VtbFundFlow; import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; import com.qs.serve.modules.vtb.entity.VtbVerificationYard; @@ -110,6 +112,9 @@ public class VtbVerificationOperationServiceImpl implements SeeYonOperationServi costApply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); tbsCostApplyMapper.updateById(costApply); } + //移除错误的数据 + vtbFundFlowService.remove(new LambdaQueryWrapper().eq(VtbFundFlow::getVerificationId,targetId)); + vtbFundFlowService.flushActivityAmount(verification.getActivityId()); } return null; } diff --git a/src/main/resources/mapper/goods/GoodsAccreditMapper.xml b/src/main/resources/mapper/goods/GoodsAccreditMapper.xml new file mode 100644 index 00000000..12757587 --- /dev/null +++ b/src/main/resources/mapper/goods/GoodsAccreditMapper.xml @@ -0,0 +1,89 @@ + + + + + + + goods_accredit.`sku_id`, + goods_accredit.`spu_id`, + goods_accredit.`category_id`, + goods_accredit.`code`, + goods_accredit.`name`, + goods_accredit.`empty_flag`, + goods_accredit.`remark`, + goods_accredit.`create_time`, + goods_accredit.`update_time`, + goods_accredit.`tenant_id`, + goods_accredit.`del_flag`, + goods_accredit.`create_by`, + goods_accredit.`update_by` + + + + + +