Sfoglia il codice sorgente

添加了产品看板

wxf 2 anni fa
parent
commit
ab296cdc0b

+ 1 - 1
hx-ehsd/src/main/java/com/fjhx/ehsd/controller/delivery/DeliveryController.java

@@ -53,7 +53,7 @@ public class DeliveryController {
     }
 
     /**
-     * 样品交接单添加
+     * 样品交接单列表
      */
     @PostMapping("/sampleHandoverList")
     public Page<ContractProductVo> sampleHandoverList(@RequestBody SampleSelectDto dto) {

+ 9 - 0
hx-item/src/main/java/com/fjhx/item/controller/product/ProductInfoController.java

@@ -40,6 +40,15 @@ public class ProductInfoController {
         return productInfoService.getPage(dto);
     }
 
+
+    /**
+     * 产品库统计(根据产品库类型进行分类统计)
+     */
+    @PostMapping("/productInfoStatistics")
+    public  Map<String,Object> productInfoStatistics(@RequestBody ProductInfoSelectDto dto) {
+        return productInfoService.productInfoStatistics(dto);
+    }
+
     /**
      * 产品库分页 维多利亚
      */

+ 4 - 1
hx-item/src/main/java/com/fjhx/item/service/product/ProductInfoService.java

@@ -149,5 +149,8 @@ public interface ProductInfoService extends BaseService<ProductInfo> {
      */
     Map<String,Object> statisticsProduct();
 
-
+    /**
+     * 产品库统计(根据产品库类型进行分类统计)
+     */
+    Map<String,Object> productInfoStatistics(ProductInfoSelectDto dto);
 }

+ 48 - 0
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -8,6 +8,7 @@ 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;
@@ -41,6 +42,8 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 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;
@@ -740,6 +743,51 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         return baseMapper.statisticsProduct();
     }
 
+    /**
+     * 产品库统计(根据产品库类型进行分类统计)
+     */
+    @Override
+    public  Map<String,Object> productInfoStatistics(ProductInfoSelectDto dto) {
+        //存放产品库统计数据
+        Map<String,Object> map = new HashMap<>();
+
+        //存放产品分类统计数据
+        List<Map<String, Object>> list = new ArrayList<>();
+        QueryWrapper<ProductInfo> wrapper = Wrappers.query();
+        wrapper.groupBy("type");
+        wrapper.select("count(*) count, ifNull(type,-1)");
+        List<ProductInfo> productInfos = baseMapper.selectList(wrapper);
+        Map<String, List<ProductInfo>> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getType));
+
+        //计算统计合计
+        Integer amount = productInfos.stream().map(productInfo -> productInfo.getCount()).reduce(Integer::sum).orElse(0);
+
+        map.put("amount",amount);
+        //获取产品类型统计数据
+        List<DictTenantDataVo> dictTenantDataVoList = getDict("product_type");
+
+        if (dictTenantDataVoList.size()==0){
+            throw new ServiceException("数据异常:产品没有设置产品类型字典,请先添加");
+        }
+
+        for (DictTenantDataVo dictTenantDataVo : dictTenantDataVoList) {
+            Map typeMap = new HashMap();
+            //设置初始值
+            typeMap.put("type",dictTenantDataVo.getDictValue());
+            typeMap.put("count",0);
+
+            //赋值
+            List<ProductInfo> productInfoList = productInfoMap.get(dictTenantDataVo.getDictKey());
+            if (CollectionUtils.isNotEmpty(productInfoList)){
+                typeMap.put("count",productInfoList.get(0).getCount());
+            }
+            list.add(typeMap);
+
+        }
+        map.put("typeList",list);
+        return map;
+    }
+
 
     //根据字典编码获取字典的数据
     private List<DictTenantDataVo> getDict(String code) {

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -161,7 +161,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     @Override
     public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
-        wrapper.orderByDesc("t1.ct");
+        wrapper.orderByDesc("t1.create_time");
         if(StringUtils.isNotEmpty(dto.getKeyword())){
             wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
         }

+ 1 - 1
hx-sale/src/main/java/com/fjhx/sale/service/sample/SampleService.java

@@ -52,7 +52,7 @@ public interface SampleService extends BaseService<Sample> {
     void sampleHandover(SampleDto dto);
 
     /**
-     * 样品交接单添加
+     * 样品交接单列表
      */
     Page<ContractProductVo> sampleHandoverList(SampleSelectDto dto);
 }

+ 2 - 2
hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java

@@ -147,12 +147,12 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
     }
 
     /**
-     * 样品交接单添加
+     * 样品交接单列表
      */
     @Override
     public Page<ContractProductVo> sampleHandoverList(SampleSelectDto dto) {
         IWrapper<Sample> wrapper = getWrapper();
-        wrapper.orderByDesc("t1.ct");
+        wrapper.orderByDesc("t1.create_time");
         if(StringUtils.isNotEmpty(dto.getKeyword())){
             wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
         }