|
@ -1,5 +1,6 @@ |
|
|
package com.qs.serve.modules.goods.controller; |
|
|
package com.qs.serve.modules.goods.controller; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.qs.serve.common.model.annotation.SysLog; |
|
|
import com.qs.serve.common.model.annotation.SysLog; |
|
@ -8,10 +9,14 @@ import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
|
|
|
import com.qs.serve.modules.bms.service.BmsSubjectService; |
|
|
|
|
|
import com.qs.serve.modules.bms.service.BmsSupplierService; |
|
|
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; |
|
|
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; |
|
|
import com.qs.serve.modules.goods.common.GoodsConst; |
|
|
import com.qs.serve.modules.goods.common.GoodsConst; |
|
|
import com.qs.serve.modules.goods.entity.*; |
|
|
import com.qs.serve.modules.goods.entity.*; |
|
|
import com.qs.serve.modules.goods.entity.bo.*; |
|
|
import com.qs.serve.modules.goods.entity.bo.*; |
|
|
|
|
|
import com.qs.serve.modules.goods.entity.dto.GoodsRuleItemDTO; |
|
|
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; |
|
|
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice; |
|
|
import com.qs.serve.modules.goods.entity.so.GoodsHisOrderQuery; |
|
|
import com.qs.serve.modules.goods.entity.so.GoodsHisOrderQuery; |
|
|
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; |
|
|
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery; |
|
@ -36,10 +41,7 @@ import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
import javax.validation.Valid; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
import java.util.ArrayList; |
|
|
import java.util.*; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Locale; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -54,6 +56,7 @@ import java.util.stream.Collectors; |
|
|
public class GoodsSpuController { |
|
|
public class GoodsSpuController { |
|
|
|
|
|
|
|
|
private GoodsSpuMapper goodsSpuMapper; |
|
|
private GoodsSpuMapper goodsSpuMapper; |
|
|
|
|
|
private GoodsRuleService goodsRuleService; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSkuService goodsSkuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
private GoodsSpuService goodsSpuService; |
|
|
private GoodsSpuSpecService goodsSpuSpecService; |
|
|
private GoodsSpuSpecService goodsSpuSpecService; |
|
@ -61,6 +64,7 @@ public class GoodsSpuController { |
|
|
private GoodsCategoryRuleService goodsCategoryRuleService; |
|
|
private GoodsCategoryRuleService goodsCategoryRuleService; |
|
|
private TbsActivityGoodsService activityGoodsService; |
|
|
private TbsActivityGoodsService activityGoodsService; |
|
|
private TbsBudgetConditionService budgetConditionService; |
|
|
private TbsBudgetConditionService budgetConditionService; |
|
|
|
|
|
private BmsSupplierService bmsSupplierService; |
|
|
private GoodsCategoryService goodsCategoryService; |
|
|
private GoodsCategoryService goodsCategoryService; |
|
|
private SeeYonRequestBaseService seeYonRequestBaseService; |
|
|
private SeeYonRequestBaseService seeYonRequestBaseService; |
|
|
private ErpDispatchDataMapper dispatchDataMapper; |
|
|
private ErpDispatchDataMapper dispatchDataMapper; |
|
@ -125,6 +129,57 @@ public class GoodsSpuController { |
|
|
param.setSelectNotIntCateIds(Arrays.asList(categoryRule.getIgnoreBrandIds())); |
|
|
param.setSelectNotIntCateIds(Arrays.asList(categoryRule.getIgnoreBrandIds())); |
|
|
log.warn("setSelectNotIntCateIds {}",JsonUtil.objectToJson(param)); |
|
|
log.warn("setSelectNotIntCateIds {}",JsonUtil.objectToJson(param)); |
|
|
} |
|
|
} |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierService.getByNameOrCode(param.getSupplierCode()); |
|
|
|
|
|
if(supplier==null){ |
|
|
|
|
|
return R.error("供应商不存在或停用"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//规则设置
|
|
|
|
|
|
List<GoodsRuleItem> ruleItems = goodsRuleService.listBySupplierId(supplier.getId()); |
|
|
|
|
|
GoodsRuleItemDTO ruleItemDTO = goodsRuleService.buildGoodsRuleItemDTO(ruleItems); |
|
|
|
|
|
if(ruleItemDTO!=null){ |
|
|
|
|
|
|
|
|
|
|
|
if(CollUtil.isEmpty(param.getSelectNotIntCateIds())){ |
|
|
|
|
|
param.setSelectNotIntCateIds(ruleItemDTO.getNotInCategoryIds()); |
|
|
|
|
|
}else if (ruleItemDTO.getNotInCategoryIds()!=null){ |
|
|
|
|
|
param.getSelectNotIntCateIds().addAll(ruleItemDTO.getNotInCategoryIds()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(param.getSelectCateIds())){ |
|
|
|
|
|
param.setSelectCateIds(ruleItemDTO.getOnlyCategoryIds()); |
|
|
|
|
|
}else if (CollUtil.isNotEmpty(ruleItemDTO.getOnlyCategoryIds())){ |
|
|
|
|
|
//交集
|
|
|
|
|
|
Collection<String> ids = cn.hutool.core.collection.CollectionUtil |
|
|
|
|
|
.intersection(ruleItemDTO.getOnlyCategoryIds(), param.getSelectCateIds()); |
|
|
|
|
|
List<String> idsList = new ArrayList<>(); |
|
|
|
|
|
idsList.addAll(ids); |
|
|
|
|
|
param.setSelectCateIds(idsList); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(param.getSelectIds())){ |
|
|
|
|
|
List<Long> ids = ruleItemDTO.getOnlySpuIds().stream().map(Long::parseLong).collect(Collectors.toList()); |
|
|
|
|
|
param.setSelectIds(ids); |
|
|
|
|
|
}else if (CollUtil.isNotEmpty(ruleItemDTO.getOnlySpuIds())){ |
|
|
|
|
|
List<Long> ids = ruleItemDTO.getOnlySpuIds().stream().map(Long::parseLong).collect(Collectors.toList()); |
|
|
|
|
|
//交集
|
|
|
|
|
|
Collection<Long> id2s = cn.hutool.core.collection.CollectionUtil |
|
|
|
|
|
.intersection(ids, param.getSelectIds()); |
|
|
|
|
|
List<Long> idsList = new ArrayList<>(); |
|
|
|
|
|
idsList.addAll(id2s); |
|
|
|
|
|
param.setSelectIds(idsList); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(param.getSelectNotInIds())){ |
|
|
|
|
|
List<Long> ids = ruleItemDTO.getNotInSpuIds().stream().map(Long::parseLong).collect(Collectors.toList()); |
|
|
|
|
|
param.setSelectNotInIds(ids); |
|
|
|
|
|
}else if (CollUtil.isNotEmpty(ruleItemDTO.getOnlySpuIds())){ |
|
|
|
|
|
List<Long> ids = ruleItemDTO.getNotInSpuIds().stream().map(Long::parseLong).collect(Collectors.toList()); |
|
|
|
|
|
param.getSelectNotInIds().addAll(ids); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long total = goodsSpuService.selectCountSkuJoinSpuList(param); |
|
|
Long total = goodsSpuService.selectCountSkuJoinSpuList(param); |
|
|
if(total<1){ |
|
|
if(total<1){ |
|
|
return R.byEmptyList(); |
|
|
return R.byEmptyList(); |
|
|