Преглед изворни кода

产品物料查询分类子集

24282 пре 2 година
родитељ
комит
be143922af

+ 4 - 0
hx-item/src/main/java/com/fjhx/item/service/product/ProductClassifyService.java

@@ -38,5 +38,9 @@ public interface ProductClassifyService extends BaseService<ProductClassify> {
      */
     void delete(Long id);
 
+    /**
+     * 获取子集id
+     */
+    List<Long> getChildIdList(long classifyId);
 
 }

+ 24 - 6
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductClassifyServiceImpl.java

@@ -3,25 +3,21 @@ package com.fjhx.item.service.product.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.item.entity.product.dto.ProductClassifyDto;
 import com.fjhx.item.entity.product.po.ProductClassify;
 import com.fjhx.item.mapper.product.ProductClassifyMapper;
 import com.fjhx.item.service.product.ProductClassifyService;
-import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.TreeUtil;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 
 /**
@@ -90,6 +86,28 @@ public class ProductClassifyServiceImpl extends ServiceImpl<ProductClassifyMappe
     public void delete(Long id) {
         this.removeById(id);
     }
+
+    @Override
+    public List<Long> getChildIdList(long classifyId) {
+        List<Long> idList = new ArrayList<>();
+        idList.add(classifyId);
+
+        recursionSetChildId(idList, list(), classifyId);
+        return idList;
+    }
+
+    /**
+     * 递归赋值子集id
+     */
+    private void recursionSetChildId(List<Long> idList, List<ProductClassify> list, Long id) {
+        for (ProductClassify productClassify : list) {
+            if (Objects.equals(id, productClassify.getParentId())) {
+                idList.add(productClassify.getId());
+                recursionSetChildId(idList, list, productClassify.getId());
+            }
+        }
+    }
+
     /**
      * 保证同级名称不重复
      */

+ 26 - 14
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -43,7 +42,6 @@ import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.utils.UserUtil;
 import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.ListUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -68,8 +66,10 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
 
     @Autowired
     private ProductClassifyService productClassifyService;
+
     @Autowired
     private ISysDeptService sysDeptService;
+
     @Autowired
     private CustomerService customerService;
 
@@ -82,16 +82,21 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         wrapper.orderByDesc("pi", ProductInfo::getId);
         wrapper.eq("pi", ProductInfo::getType, dto.getType());
         wrapper.eq("pi", ProductInfo::getDefinition, dto.getDefinition());
-        wrapper.eq("pi", ProductInfo::getProductClassifyId, dto.getProductClassifyId());
-        wrapper.like("pi",ProductInfo::getName,dto.getName());
-        wrapper.like("pi",ProductInfo::getCustomCode,dto.getCustomCode());
-        wrapper.like("pi",ProductInfo::getBarCode,dto.getBarCode());
-        wrapper.like("json_unquote(standard_json->'$.englishName')",dto.getEnglishName());
-        wrapper.like("json_unquote(standard_json->'$.customsCode')",dto.getCustomsCode());
-//        wrapper.keyword(dto,
-//                new SqlField("pi", ProductInfo::getName),
-//                new SqlField("pi", ProductInfo::getCode),
-//                new SqlField("pi", ProductInfo::getCustomCode)
+
+        if (dto.getProductClassifyId() != null) {
+            List<Long> childIdList = productClassifyService.getChildIdList(dto.getProductClassifyId());
+            wrapper.in("pi", ProductInfo::getProductClassifyId, childIdList);
+        }
+
+        wrapper.like("pi", ProductInfo::getName, dto.getName());
+        wrapper.like("pi", ProductInfo::getCustomCode, dto.getCustomCode());
+        wrapper.like("pi", ProductInfo::getBarCode, dto.getBarCode());
+        wrapper.like("json_unquote(standard_json->'$.englishName')", dto.getEnglishName());
+        wrapper.like("json_unquote(standard_json->'$.customsCode')", dto.getCustomsCode());
+        //        wrapper.keyword(dto,
+        //                new SqlField("pi", ProductInfo::getName),
+        //                new SqlField("pi", ProductInfo::getCode),
+        //                new SqlField("pi", ProductInfo::getCustomCode)
 //        );
         //计算并根据生命周期过滤
         wrapper.eq("IF(DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.growUpDay' ),3,IF( DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.newProductsDay' ), 2, 1 ))", dto.getLifeCycle());
@@ -132,16 +137,23 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
 
     @Override
     public Page<ProductInfoVo> getPageByWdly(ProductInfoSelectDto dto) {
+
+
         IWrapper<ProductInfo> wrapper = getWrapper();
         wrapper.orderByDesc("pi", ProductInfo::getId);
         wrapper.eq("pi", ProductInfo::getType, dto.getType());
         wrapper.eq("pi", ProductInfo::getDefinition, dto.getDefinition());
-        wrapper.eq("pi", ProductInfo::getProductClassifyId, dto.getProductClassifyId());
+
+        if (dto.getProductClassifyId() != null) {
+            List<Long> childId = productClassifyService.getChildIdList(dto.getProductClassifyId());
+            wrapper.in("pi", ProductInfo::getProductClassifyId, childId);
+        }
+
         wrapper.keyword(dto,
                 new SqlField("pi", ProductInfo::getName),
                 new SqlField("pi", ProductInfo::getCustomCode)
         );
-        //计算并根据生命周期过滤
+        // 计算并根据生命周期过滤
         wrapper.eq("IF(DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.growUpDay' ),3,IF( DATEDIFF(now(),pi.create_time)> json_unquote( victoriatourist_json -> '$.newProductsDay' ), 2, 1 ))", dto.getLifeCycle());
         wrapper.eq("json_unquote( victoriatourist_json -> '$.combination' )", dto.getCombination());
         Page<ProductInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);