Преглед на файлове

头部统计客户金额

caozj преди 1 година
родител
ревизия
011252b626

+ 8 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java

@@ -256,6 +256,14 @@ public class ContractController {
     }
 
     /**
+     * 头部统计客户金额
+     */
+    @GetMapping("/getHeadCustomerStatistics")
+    public Map<String,Object> getHeadCustomerStatistics() {
+        return contractService.getHeadCustomerStatistics();
+    }
+
+    /**
      * 根据合同id获取合同的资金流水信息
      */
     @PostMapping("/111")

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -304,6 +304,11 @@ public class Contract extends BasePo {
     private String issue;
 
     /**
+     * 是否显示
+     */
+    private String isShow;
+
+    /**
      * 原合同id
      */
     private Long oldContractId;

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java

@@ -160,5 +160,10 @@ public class ContractVo extends Contract {
      */
     private List<ClaimContract> claimContractList;
 
+    /**
+     * 总数
+     */
+    private BigDecimal sumQuantity;
+
 }
 

+ 16 - 6
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -209,6 +209,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     private Page<ContractVo> pageCommon(ContractSelectDto dto, IWrapper<Contract> wrapper) {
         wrapper.orderByDesc("t1", Contract::getCreateTime);
         wrapper.eq("t1", Contract::getIsChange, "0");//列表只展示未变更得数据
+        wrapper.ne("t1",Contract::getIsShow,1);
         wrapper.between("t1", Contract::getStatus, FlowStatusEnum1.DRAFT.getKey(), FlowStatusEnum1.CANCELLATION.getKey() - 1);
         if (StringUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("t1", Contract::getStatus, dto.getStatus());
@@ -1623,12 +1624,21 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         map.put("sumAmount",BigDecimal.ZERO);
         map.put("sumArrivalAmount",BigDecimal.ZERO);
         map.put("sumQuantity",BigDecimal.ZERO);
+        map.put("list",new ArrayList<>());
         List<ContractVo> list = baseMapper.getCustomerMoney();
-        BigDecimal sumAmount = list.stream().map(ContractVo::getSumAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
-        //赋值原卖方公司名称 多公司
-        corporationService.attributeAssign(list, ContractVo::getSellCorporationId, (item, corporation) -> {
-            item.setSellCorporationName(corporation.getName());
-        });
-        return null;
+        if(CollectionUtils.isNotEmpty(list)){
+            BigDecimal sumAmount = list.stream().map(ContractVo::getSumAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
+            BigDecimal sumQuantity = list.stream().map(ContractVo::getSumQuantity).reduce(BigDecimal.ZERO,BigDecimal::add);
+            BigDecimal sumClaimMoney = list.stream().map(ContractVo::getSumClaimMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
+            //赋值原卖方公司名称 多公司
+            corporationService.attributeAssign(list, ContractVo::getSellCorporationId, (item, corporation) -> {
+                item.setSellCorporationName(corporation.getName());
+            });
+            map.put("sumAmount",sumAmount);
+            map.put("sumArrivalAmount",sumQuantity);
+            map.put("sumQuantity",sumClaimMoney);
+            map.put("list",list);
+        }
+        return map;
     }
 }

+ 19 - 6
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -217,12 +217,25 @@
 
     <select id="getCustomerMoney" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
         SELECT
-            sell_corporation_id AS sellCorporationId,
-            IFNULL( SUM( amount ), 0 ) AS sumAmount
+            t1.sell_corporation_id AS sellCorporationId,
+            IFNULL( SUM( t2.amount ), 0 ) AS sumAmount,
+            IFNULL( SUM( t2.quantity ), 0 ) AS sumQuantity,
+        (
+            SELECT
+                IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( cc.rate, 1 )), 0 )
+            FROM
+                claim_contract cc
+            WHERE
+                FIND_IN_SET( cc.contract_id, GROUP_CONCAT( t1.id ) )
+        ) AS sumClaimMoney
         FROM
-            contract
-        WHERE t1.is_show = 0
-        GROUP BY
-            sell_corporation_id
+            contract t1
+        LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
+        WHERE
+            t1.is_show != 1
+            AND t1.is_change = 0
+            AND t1.`status` >= 30
+            AND t1.`status` &lt; 70
+        GROUP BY sell_corporation_id
     </select>
 </mapper>