Browse Source

feat: 规则补充页面

checkBack
Yen 1 year ago
parent
commit
42c04a6b2c
  1. 14
      src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java
  2. 27
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  3. 4
      src/main/java/com/qs/serve/modules/goods/entity/GoodsAccredit.java
  4. 1
      src/main/java/com/qs/serve/modules/goods/entity/GoodsCustomerPrice.java
  5. 4
      src/main/java/com/qs/serve/modules/goods/entity/GoodsRule.java
  6. 56
      src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditExt.java
  7. 31
      src/main/java/com/qs/serve/modules/goods/entity/dto/GoodsAccreditQuery.java
  8. 50
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsAccreditResult.java
  9. 11
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsAccreditMapper.java
  10. 6
      src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java
  11. 3
      src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java
  12. 191
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java
  13. 9
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java
  14. 6
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java
  15. 33
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  16. 5
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java
  17. 89
      src/main/resources/mapper/goods/GoodsAccreditMapper.xml

14
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<List<GoodsAccreditResult>> getPage(GoodsAccreditQuery query){
List<GoodsAccreditResult> data = goodsAccreditService.queryPage(query);
return R.ok(data);
}
/**
* ID查询
* @param cateId

27
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<String> skuCodes = list.stream().map(GoodsSpu::getSkuCode).collect(Collectors.toList());
if(CollUtil.isNotEmpty(skuCodes)){
this.initSpuWithCustomerPrice(param.getSupplierCode(), list, skuCodes);
}
return R.byPageList(total,list);
}
@ -748,13 +751,23 @@ public class GoodsSpuController {
List<InventoryCusPrice> inventoryCusPrices = null;
try {
if(skuCodes.size()>0){
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(skuCodes);
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
}
List<GoodsCustomerPrice> 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<String> 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());

4
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;

1
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;

4
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;

56
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;
}

31
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<String> codeList;
private Set<String> targetCodeList;
}

50
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;
}

11
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<GoodsAccredit> {
List<GoodsAccreditExt> queryPage(@Param("query") GoodsAccreditQuery query);
List<GoodsAccreditExt> queryPage2(@Param("query") GoodsAccreditQuery query);
}

6
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<GoodsAccredit> {
List<GoodsAccreditResult> queryPage(GoodsAccreditQuery query);
void modify(GoodsAccreditBo param);
GoodsAccreditVo getById(String cateId, String spuId, String skuId);

3
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>
GoodsCustomerPrice getBySupplierIdAndCode(String supplierId,String skuCode);
List<GoodsCustomerPrice> getBySupplierCodeAndCode(String supplierCode, List<String> skuCode);
}

191
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<GoodsAccreditMapper,Go
private final BmsRegionMapper regionMapper;
private final BmsRegion2Mapper region2Mapper;
private final BmsSupplierMapper supplierMapper;
private final GoodsSpuMapper spuMapper;
private final GoodsAccreditItemService goodsAccreditItemService;
@Override
public List<GoodsAccreditResult> 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<String> codes = new HashSet<>();
List<GoodsSku> skuList = goodsSkuMapper.selectList(new LambdaQueryWrapper<GoodsSku>()
.eq(GoodsSku::getSkuCode,productCode)
.or()
.eq(GoodsSku::getSkuName,productName));
List<GoodsSpu> spuList = goodsSpuMapper.selectList(new LambdaQueryWrapper<GoodsSpu>()
.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<String> cateIds = new HashSet<>();
for (GoodsSpu spu : spuList) {
//向上查询添加skuCode
codes.add(spu.getSpuCode());
cateIds.addAll(spu.listCategoryIds());
}
List<GoodsCategory> categoryList = categoryMapper.selectBatchIds(cateIds);
for (GoodsCategory category : categoryList) {
//向上查询添加CategoryCode
codes.add(category.getCode());
}
}
List<GoodsCategory> categoryList = categoryMapper.selectList(new LambdaQueryWrapper<GoodsCategory>().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<String> targetCodes = new HashSet<>();
List<BmsSupplier> supplierList = supplierMapper.selectList(new LambdaQueryWrapper<BmsSupplier>()
.eq(BmsSupplier::getCode,targetCode)
.or()
.eq(BmsSupplier::getName,targetName));
if(supplierList.size()>0){
targetCodes.add(targetCode);
for (BmsSupplier supplier : supplierList) {
List<String> bizIds = supplier.listBizRegionIds();
List<String> saleIds = supplier.listSaleRegionIds();
List<BmsRegion> regionList = regionMapper.selectBatchIds(saleIds);
for (BmsRegion region : regionList) {
targetCodes.add(region.getCode());
}
List<BmsRegion2> region2List = region2Mapper.selectBatchIds(bizIds);
for (BmsRegion2 region2 : region2List) {
targetCodes.add(region2.getCode());
}
}
}
List<BmsRegion> regionList = regionMapper.selectList(new LambdaQueryWrapper<BmsRegion>()
.eq(BmsRegion::getName,targetName)
.or()
.eq(BmsRegion::getCode,targetCode));
if (regionList.size()>0){
Set<String> 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<BmsRegion2> region2List = region2Mapper.selectList(new LambdaQueryWrapper<BmsRegion2>()
.eq(BmsRegion2::getName,targetName)
.or()
.eq(BmsRegion2::getCode,targetCode));
if (region2List.size()>0){
Set<String> 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<GoodsAccreditExt> list = super.baseMapper.queryPage(query);
List<GoodsAccreditResult> 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<GoodsAccreditExt> 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<GoodsAccreditMapper,Go
spuNotInIds.addAll(spuIds3);
cateNotInIds.addAll(cateIds3);
}
//无新值,直接返回空
if(skuIds.size()==1
&&spuIds.size()==1
&&cateIds.size()==1
&&skuNotInIds.size()==1
&&spuNotInIds.size()==1
&&cateNotInIds.size()==1){
return null;
}
return new GoodsAccrIdsDto(skuIds,spuIds,cateIds,skuNotInIds,spuNotInIds,cateNotInIds);
}
@ -396,7 +575,7 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
if(CollUtil.isEmpty(spuIds)){
return false;
}
List<GoodsSpu> spuList = spuMapper.selectBatchIds(spuIds);
List<GoodsSpu> 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<GoodsAccreditMapper,Go
GoodsCategory category = categoryMapper.selectById(param.getCategoryId());
accredit = new GoodsAccredit();
accredit.setCategoryId(category.getId().toString());
accredit.setCode(category.getCode());
accredit.setName(category.getName());
}
}else if (param.getSpuId()!=null){
accredit = this.getOne( new LambdaQueryWrapper<GoodsAccredit>()
@ -440,6 +621,8 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
GoodsSpu spu = goodsSpuMapper.selectById(param.getSpuId());
accredit = new GoodsAccredit();
accredit.setSpuId(spu.getId());
accredit.setCode(spu.getSpuCode());
accredit.setName(spu.getName());
}
}else if (param.getSkuId()!=null){
accredit = this.getOne( new LambdaQueryWrapper<GoodsAccredit>()
@ -448,6 +631,8 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
GoodsSku sku = goodsSkuMapper.selectById(param.getSkuId());
accredit = new GoodsAccredit();
accredit.setSkuId(sku.getId());
accredit.setCode(sku.getSkuCode());
accredit.setName(sku.getSkuName());
}
}
return accredit;

9
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java

@ -123,5 +123,14 @@ public class GoodsCustomerPriceServiceImpl extends ServiceImpl<GoodsCustomerPric
.eq(GoodsCustomerPrice::getSkuCode,skuCode);
return this.getOne(lqw,false);
}
@Override
public List<GoodsCustomerPrice> getBySupplierCodeAndCode(String supplierCode, List<String> skuCodes) {
LambdaQueryWrapper<GoodsCustomerPrice> lqw = new LambdaQueryWrapper<>();
lqw.eq(GoodsCustomerPrice::getSupplierCode,supplierCode)
.in(GoodsCustomerPrice::getSkuCode,skuCodes);
return this.list(lqw);
}
}

6
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java

@ -355,6 +355,8 @@ public class GoodsRuleServiceImpl extends ServiceImpl<GoodsRuleMapper,GoodsRule>
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<GoodsRuleMapper,GoodsRule>
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<GoodsRuleMapper,GoodsRule>
if(goodsRule ==null){
goodsRule = new GoodsRule();
goodsRule.setSaleRegionId(param.getSaleRegionId());
goodsRule.setCode(region.getCode());
goodsRule.setName(region.getName());
}
}
}

33
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<OmsOrderMapper,OmsOrder> 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<OmsOrderMapper,OmsOrder> im
String supplierCode = supplier.getCode();
List<String> skuCodes = orderItems.stream().map(OmsOrderItem::getSkuCode).collect(Collectors.toList());
if(skuCodes.size()>0){
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(skuCodes);
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
}
List<GoodsCustomerPrice> 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<String> 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());

5
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<VtbFundFlow>().eq(VtbFundFlow::getVerificationId,targetId));
vtbFundFlowService.flushActivityAmount(verification.getActivityId());
}
return null;
}

89
src/main/resources/mapper/goods/GoodsAccreditMapper.xml

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.goods.mapper.GoodsAccreditMapper">
<sql id="goodsAccreditSql">
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` </sql>
<select id="queryPage" resultType="com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt">
select
goods_accredit_item.id,
goods_accredit_item.`acc_type`,
goods_accredit_item.`target_type`,
goods_accredit_item.`target_code`,
goods_accredit_item.`target_name`,
goods_accredit_item.`target_id`,
<include refid="goodsAccreditSql"/>
from goods_accredit
left join goods_accredit_item
on goods_accredit.id = goods_accredit_item.acc_id
<where>
and `goods_accredit`.`del_flag` = 0
and `goods_accredit_item`.`del_flag` = 0
and `goods_accredit`.`empty_flag` = 0
<if test="query.codeList!=null and query.codeList.size > 0">
and goods_accredit.`code` in
<foreach collection="query.codeList" item ="codeitem" index="i" open="(" close=")" separator=",">
#{codeitem}
</foreach>
</if>
<if test="query.targetCodeList!=null and query.targetCodeList.size > 0">
and goods_accredit_item.`target_code` in
<foreach collection="query.targetCodeList" item ="codeitem" index="i" open="(" close=")" separator=",">
#{codeitem}
</foreach>
</if>
</where>
</select>
<select id="queryPage2" resultType="com.qs.serve.modules.goods.entity.dto.GoodsAccreditExt">
select
goods_rule.biz_region_id,
goods_rule.sale_region_id,
goods_rule.supplier_id,
goods_rule.code as target_code,
goods_rule.name as target_name,
goods_rule_item.target_type,
goods_rule_item.target_code as `code`,
goods_rule_item.target_name as `name`
from goods_rule
left join goods_rule_item
on goods_rule.id = goods_rule_item.rule_id
where 1=1
AND`goods_rule`.`del_flag` = 0
AND `goods_rule_item`.`del_flag` = 0
AND goods_rule.empty_flag = 0
<if test="query.codeList!=null and query.codeList.size > 0">
and goods_rule_item.`target_code` in
<foreach collection="query.codeList" item ="codeitem" index="i" open="(" close=")" separator=",">
#{codeitem}
</foreach>
</if>
<if test="query.targetCodeList!=null and query.targetCodeList.size > 0">
and goods_rule.`code` in
<foreach collection="query.targetCodeList" item ="codeitem" index="i" open="(" close=")" separator=",">
#{codeitem}
</foreach>
</if>
</select>
</mapper>
Loading…
Cancel
Save