Browse Source

bom搜索优化

24282 1 year ago
parent
commit
ff7adac392

+ 10 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSelectDto.java

@@ -27,6 +27,16 @@ public class BomSelectDto extends BaseSelectDto {
     private String code;
 
     /**
+     * 规格品名
+     */
+    private String bomSpecName;
+
+    /**
+     * 规格品号
+     */
+    private String bomSpecCode;
+
+    /**
      * 种类 字典:bom_species
      */
     private String species;

+ 10 - 4
sd-business/src/main/java/com/sd/business/service/bom/impl/BomServiceImpl.java

@@ -71,8 +71,11 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
         wrapper.eq("b", Bom::getEmbossingProcess, dto.getEmbossingProcess());
         wrapper.eq("b", Bom::getFrontGrain, dto.getFrontGrain());
         wrapper.eq("b", Bom::getReverseGrain, dto.getReverseGrain());
-        if (StrUtil.isNotBlank(dto.getColour())) {
-            List<Long> bomIdList = bomSpecService.listObject(BomSpec::getBomId, i -> i.like(BomSpec::getColour, dto.getColour()));
+        if (StrUtil.isNotBlank(dto.getColour()) || StrUtil.isNotBlank(dto.getBomSpecCode()) || StrUtil.isNotBlank(dto.getBomSpecName())) {
+            List<Long> bomIdList = bomSpecService.listObject(BomSpec::getBomId, i -> i
+                    .like(StrUtil.isNotBlank(dto.getColour()), BomSpec::getColour, dto.getColour())
+                    .like(StrUtil.isNotBlank(dto.getBomSpecCode()), BomSpec::getCode, dto.getBomSpecCode())
+                    .like(StrUtil.isNotBlank(dto.getBomSpecName()), BomSpec::getName, dto.getBomSpecName()));
             if (bomIdList.size() == 0) {
                 return new Page<>();
             }
@@ -94,8 +97,11 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
         }
 
         List<Long> bomIdList = records.stream().map(BaseIdPo::getId).collect(Collectors.toList());
-        Map<Long, List<BomSpec>> bomSpecIdMap = bomSpecService
-                .mapKGroup(BomSpec::getBomId, q -> q.in(BomSpec::getBomId, bomIdList));
+        Map<Long, List<BomSpec>> bomSpecIdMap = bomSpecService.mapKGroup(BomSpec::getBomId, q -> q
+                .in(BomSpec::getBomId, bomIdList)
+                .like(StrUtil.isNotBlank(dto.getColour()), BomSpec::getColour, dto.getColour())
+                .like(StrUtil.isNotBlank(dto.getBomSpecCode()), BomSpec::getCode, dto.getBomSpecCode())
+                .like(StrUtil.isNotBlank(dto.getBomSpecName()), BomSpec::getName, dto.getBomSpecName()));
 
         for (BomVo record : records) {
             record.setBomSpecList(bomSpecIdMap.get(record.getId()));

+ 44 - 0
sd-business/src/main/java/com/sd/business/service/sku/impl/SkuServiceImpl.java

@@ -11,6 +11,7 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.bom.bo.BomSpecBo;
 import com.sd.business.entity.bom.po.BomSpec;
+import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.sku.dto.*;
 import com.sd.business.entity.sku.po.Sku;
 import com.sd.business.entity.sku.po.SkuSpec;
@@ -18,6 +19,7 @@ import com.sd.business.entity.sku.po.SkuSpecLink;
 import com.sd.business.entity.sku.vo.*;
 import com.sd.business.mapper.sku.SkuMapper;
 import com.sd.business.service.bom.BomSpecService;
+import com.sd.business.service.department.DepartmentService;
 import com.sd.business.service.sku.SkuService;
 import com.sd.business.service.sku.SkuSpecLinkService;
 import com.sd.business.service.sku.SkuSpecService;
@@ -52,6 +54,9 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
     @Autowired
     private BomSpecService bomSpecService;
 
+    @Autowired
+    private DepartmentService departmentService;
+
     @Override
     public Page<SkuVo> getPage(SkuSelectDto dto) {
         IWrapper<Sku> wrapper = getWrapper();
@@ -61,6 +66,19 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
         wrapper.eq("s", Sku::getType, dto.getType());
         wrapper.eq("s", Sku::getBrand, dto.getBrand());
 
+        Long deptId = SecurityUtils.getDeptId();
+        if (Objects.equals(dto.getType(), 0) && deptId != 100L) {
+            Department department = departmentService.getById(deptId);
+            if (department != null) {
+                if (StrUtil.isNotBlank(department.getWlnBrand())) {
+                    List<String> brandList = Arrays.asList(department.getWlnBrand().split(","));
+                    wrapper.in("s", Sku::getBrand, brandList);
+                } else {
+                    return new Page<>();
+                }
+            }
+        }
+
         if (StrUtil.isNotBlank(dto.getSpecCode()) || StrUtil.isNotBlank(dto.getSpecName())) {
             List<Long> skuIdList = skuSpecService.listObject(SkuSpec::getSkuId, q -> q
                     .like(StrUtil.isNotBlank(dto.getSpecCode()), SkuSpec::getCode, dto.getSpecCode())
@@ -234,6 +252,19 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
                 .eq("ss", SkuSpec::getWidth, dto.getWidth())
                 .eq("ss", SkuSpec::getHeight, dto.getHeight());
 
+        Long deptId = SecurityUtils.getDeptId();
+        Department department = departmentService.getById(deptId);
+        if (department == null) {
+            throw new ServiceException("非事业部账号无法替换包材");
+        }
+
+        if (StrUtil.isNotBlank(department.getWlnBrand())) {
+            List<String> brandList = Arrays.asList(department.getWlnBrand().split(","));
+            wrapper.in("s", Sku::getBrand, brandList);
+        } else {
+            return new Page<>();
+        }
+
         Page<ReplacePackagingMaterialVo> page = baseMapper.getReplacePackagingMaterialPage(dto.getPage(), wrapper);
         List<ReplacePackagingMaterialVo> records = page.getRecords();
 
@@ -315,6 +346,19 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
                 .eq("ss", SkuSpec::getWidth, dto.getWidth())
                 .eq("ss", SkuSpec::getHeight, dto.getHeight());
 
+        Long deptId = SecurityUtils.getDeptId();
+        Department department = departmentService.getById(deptId);
+        if (department == null) {
+            throw new ServiceException("非事业部账号无法替换包材");
+        }
+
+        if (StrUtil.isNotBlank(department.getWlnBrand())) {
+            List<String> brandList = Arrays.asList(department.getWlnBrand().split(","));
+            wrapper.in("s", Sku::getBrand, brandList);
+        } else {
+            return;
+        }
+
         List<ReplacePackagingMaterialVo> list = baseMapper.getReplacePackagingMaterialList(wrapper);
 
         if (list.size() == 0) {