瀏覽代碼

采购头部统计

caozj 1 年之前
父節點
當前提交
aec0b26ebb

+ 7 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseController.java

@@ -40,6 +40,13 @@ public class PurchaseController {
     public Page<PurchaseVo> page(@RequestBody PurchaseSelectDto dto) {
         return purchaseService.getPage(dto);
     }
+    /**
+     * 统计头部
+     */
+    @PostMapping("/statisticsPurchaseHead")
+    public Map<String,Object> statisticsPurchaseHead() {
+        return purchaseService.statisticsPurchaseHead();
+    }
 
     /**
      * 采购统计(采购列表)

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseVo.java

@@ -49,4 +49,9 @@ public class PurchaseVo extends Purchase {
      * 已付款金额
      */
     private BigDecimal paySumAmount;
+
+    /**
+     * 订单号
+     */
+    private String contractCode;
 }

+ 26 - 10
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -578,19 +578,35 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
      */
     @Override
     public Map<String, Object> statisticsPurchaseHead() {
+        long sumOrderCount = this.count(Wrappers.<Purchase>query().lambda().isNotNull(Purchase::getDataResourceId));
+        long noArrivalOrderCount = this.count(Wrappers.<Purchase>query().lambda().isNotNull(Purchase::getDataResourceId).eq(Purchase::getArrivalStatus,0));
+        long partArrivalOrderCount = this.count(Wrappers.<Purchase>query().lambda().isNotNull(Purchase::getDataResourceId).eq(Purchase::getArrivalStatus,10));
+        long alArrivalOrderCount = this.count(Wrappers.<Purchase>query().lambda().isNotNull(Purchase::getDataResourceId).eq(Purchase::getArrivalStatus,20));
+        BigDecimal sumPurchaseMoney = getSumMoney(-1);
+        BigDecimal noArrivalPurchaseMoney = getSumMoney(0);
+        BigDecimal partArrivalPurchaseMoney = getSumMoney(10);
+        BigDecimal alArrivalPurchaseMoney = getSumMoney(20);
         //初始化MAP
-        long count = this.count(Wrappers.<Purchase>query().lambda().isNotNull(Purchase::getDataResourceId));
         Map<String, Object> map = new HashMap<String, Object>() {{
-            put("sumOrderCount", count);
-            put("sumPurchaseMoney", BigDecimal.ZERO);
-            put("noArrivalOrderCount", BigDecimal.ZERO);
-            put("noArrivalPurchaseMoney", BigDecimal.ZERO);
-            put("partArrivalOrderCount", BigDecimal.ZERO);
-            put("partArrivalPurchaseMoney", BigDecimal.ZERO);
-            put("alArrivalOrderCount", BigDecimal.ZERO);
-            put("alArrivalPurchaseMoney", BigDecimal.ZERO);
+            put("sumOrderCount", sumOrderCount);
+            put("sumPurchaseMoney", sumPurchaseMoney);
+            put("noArrivalOrderCount", noArrivalOrderCount);
+            put("noArrivalPurchaseMoney", noArrivalPurchaseMoney);
+            put("partArrivalOrderCount",partArrivalOrderCount);
+            put("partArrivalPurchaseMoney", partArrivalPurchaseMoney);
+            put("alArrivalOrderCount", alArrivalOrderCount);
+            put("alArrivalPurchaseMoney", alArrivalPurchaseMoney);
         }};
-
         return map;
     }
+
+    public BigDecimal getSumMoney(int arrivalStatus){
+        QueryWrapper<Purchase> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("IFNULL(SUM(amount),0) as purchaseMoney");
+        if(arrivalStatus!=-1){
+            queryWrapper.eq("arrival_status",arrivalStatus);
+        }
+        BigDecimal purchaseMoney = (BigDecimal) this.getMap(queryWrapper).getOrDefault("purchaseMoney",BigDecimal.ZERO);
+        return purchaseMoney;
+    }
 }

+ 3 - 2
hx-purchase/src/main/resources/mapper/purchase/PurchaseMapper.xml

@@ -6,10 +6,11 @@
             p.*,
             (
                 select IFNULL(SUM(IFNULL(money,0)*IFNULL(rate,0)),0) from pay_detail t1
-                                                                              LEFT JOIN pay t2 ON t1.pay_id = t2.id
+                LEFT JOIN pay t2 ON t1.pay_id = t2.id
                 WHERE t2.`status`  &gt;= 30 AND t2.`status` &lt; 88
                   AND t1.purchase_id = p.id
-            )AS paySumAmount
+            )AS paySumAmount,
+            ( SELECT `code` FROM `bytesailing_sale`.contract WHERE id = p.data_resource_id ) AS contractCode
         from purchase p
             ${ew.customSqlSegment}
     </select>