Browse Source

物料申购属性统计

home 2 years ago
parent
commit
2a0ab8924a

+ 9 - 1
hx-service/storage/src/main/java/com/fjhx/apply/controller/ApplyPurchaseController.java

@@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,12 +26,19 @@ public class ApplyPurchaseController {
     @Autowired
     private ApplyPurchaseService applyPurchaseService;
 
-    @PostMapping("technologyTypeStatistics")
+    @PostMapping("/technologyTypeStatistics")
     public R technologyTypeStatistics(@RequestBody Map<String, String> condition) {
         Map<String, Map<String, Object>> map = applyPurchaseService.technologyTypeStatistics(condition);
         return R.success(map);
     }
 
 
+    @PostMapping("/numStatistics")
+    public R numStatistics(@RequestBody Map<String, String> condition) {
+        List<Map<String, Object>> map = applyPurchaseService.numStatistics(condition);
+        return R.success(map);
+    }
+
+
 }
 

+ 3 - 1
hx-service/storage/src/main/java/com/fjhx/apply/mapper/ApplyPurchaseMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.apply.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.entity.apply.ApplyPurchase;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.entity.apply.ApplyPurchase;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -20,4 +20,6 @@ public interface ApplyPurchaseMapper extends BaseMapper<ApplyPurchase> {
 
     List<Map<String, Object>> technologyTypeStatistics(@Param("ew") QueryWrapper<Object> wrapper);
 
+    List<Map<String, Object>> numStatistics(@Param("ew") QueryWrapper<Object> wrapper);
+
 }

+ 9 - 1
hx-service/storage/src/main/java/com/fjhx/apply/mapper/ApplyPurchaseMapper.xml

@@ -8,11 +8,19 @@
                m.Width                     width,
                count(0)                    num
         from apply_purchase ap
-                 left join apply_purchasedetail apd on ap.ApplyBillNo = apd.ApplyBillNo
+                 inner join apply_purchasedetail apd on ap.ApplyBillNo = apd.ApplyBillNo
                  left join material m on apd.MaterialCode = m.Code
                  left join purchase_contract pc on pc.ApplyBillNo = ap.ApplyBillNo
                  left join stock_tag st on st.PurchaseBillNo = pc.PurchaseBillNo
             ${ew.customSqlSegment}
     </select>
 
+    <select id="numStatistics" resultType="java.util.Map">
+        select count(0) count, ap.ApproveBillState approveBillState
+        from apply_purchase ap
+                 inner join apply_purchasedetail apd on ap.ApplyBillNo = apd.ApplyBillNo
+                 left join material m on apd.MaterialCode = m.Code
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 3 - 0
hx-service/storage/src/main/java/com/fjhx/apply/service/ApplyPurchaseService.java

@@ -3,6 +3,7 @@ package com.fjhx.apply.service;
 import com.fjhx.base.BaseService;
 import com.fjhx.entity.apply.ApplyPurchase;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -17,4 +18,6 @@ public interface ApplyPurchaseService extends BaseService<ApplyPurchase> {
 
     Map<String, Map<String, Object>> technologyTypeStatistics(Map<String, String> condition);
 
+    List<Map<String, Object>> numStatistics(Map<String, String> condition);
+
 }

+ 66 - 9
hx-service/storage/src/main/java/com/fjhx/apply/service/impl/ApplyPurchaseServiceImpl.java

@@ -13,10 +13,7 @@ import com.fjhx.utils.BigDecimalUtil;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -72,11 +69,25 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
         initMap.put("purchaseQty", BigDecimal.ZERO);
         initMap.put("num", BigDecimal.ZERO);
 
-        technologyType.putIfAbsent("0", initMap);
-        technologyType.putIfAbsent("1", initMap);
-        technologyType.putIfAbsent("2", initMap);
-        technologyType.putIfAbsent("3", initMap);
-        technologyType.putIfAbsent("4", initMap);
+        Map<String, Object> initMap0 = ObjectUtil.clone(initMap);
+        initMap0.put("technologyType", 0);
+        technologyType.putIfAbsent("0", initMap0);
+
+        Map<String, Object> initMap1 = ObjectUtil.clone(initMap);
+        initMap1.put("technologyType", 1);
+        technologyType.putIfAbsent("1", initMap1);
+
+        Map<String, Object> initMap2 = ObjectUtil.clone(initMap);
+        initMap2.put("technologyType", 2);
+        technologyType.putIfAbsent("2", initMap2);
+
+        Map<String, Object> initMap3 = ObjectUtil.clone(initMap);
+        initMap3.put("technologyType", 3);
+        technologyType.putIfAbsent("3", initMap3);
+
+        Map<String, Object> initMap4 = ObjectUtil.clone(initMap);
+        initMap4.put("technologyType", 4);
+        technologyType.putIfAbsent("4", initMap4);
 
         // 统计面料(0直喷,1热转,2打纸,4其他)之和
         HashMap<String, Object> fabricMap = new HashMap<>();
@@ -102,6 +113,52 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
         return technologyType;
     }
 
+    @Override
+    public List<Map<String, Object>> numStatistics(Map<String, String> condition) {
+
+        String technologyType = condition.get("technologyType");
+
+        QueryWrapper<Object> wrapper = getApplyPurchaseTimeWrapper(condition);
+
+        String keyword = condition.get("keyword");
+        if (ObjectUtil.isNotEmpty(keyword)) {
+            wrapper.and(q -> q.like("m.Code", keyword).or().like("m.Name", keyword));
+        }
+
+        wrapper.eq(ObjectUtil.isNotEmpty(technologyType), "m.TechnologyType", technologyType);
+
+        wrapper.groupBy("ap.ApproveBillState");
+
+        List<Map<String, Object>> list = baseMapper.numStatistics(wrapper);
+
+        Map<Integer, Long> collect = list.stream().collect(Collectors.toMap(
+                item -> (Integer) item.get("approveBillState"),
+                item -> (Long) item.get("count")
+        ));
+
+
+        Map<String, Object> approvedMap = new HashMap<>();
+        approvedMap.put("key", "审批中");
+        approvedMap.put("value", 1);
+        approvedMap.put("count", (collect.get(0) == null ? 0 : collect.get(0)) + (collect.get(1) == null ? 0 : collect.get(1)));
+
+        Map<String, Object> passedMap = new HashMap<>();
+        passedMap.put("key", "已通过");
+        passedMap.put("value", 2);
+        passedMap.put("count", collect.get(2) == null ? 0 : collect.get(2));
+
+        Map<String, Object> rejectedMap = new HashMap<>();
+        rejectedMap.put("key", "已驳回");
+        rejectedMap.put("value", 3);
+        rejectedMap.put("count", collect.get(3) == null ? 0 : collect.get(3));
+
+        Map<String, Object> wholeMap = new HashMap<>();
+        wholeMap.put("key", "全部");
+        wholeMap.put("count", (Long) approvedMap.get("count") + (Long) passedMap.get("count") + (Long) rejectedMap.get("count"));
+
+        return Arrays.asList(wholeMap, approvedMap, rejectedMap, passedMap);
+    }
+
 
     /**
      * 领料追踪统计获取wrapper