Browse Source

到账认领添加未结清金额字段

yzc 1 year ago
parent
commit
360cdc27df

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

@@ -211,5 +211,15 @@ public class ContractVo extends Contract {
      */
     private String salesmanName;
 
+    /**
+     * 合同到账金额(根据合同币种)
+     */
+    private BigDecimal sumContractClaimMoney;
+
+    /**
+     * 合同未到账金额(未结清金额)(根据合同币种)
+     */
+    private BigDecimal sumContractNotClaimMoney;
+
 }
 

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -230,6 +230,11 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         customerService.attributeAssign(records, ContractVo::getBuyCorporationId, (item, customer) -> {
             item.setBuyCorporationName(customer.getName());
         });
+
+        //计算合同未到账(未结清)金额
+        for (ContractVo contractVo : records) {
+            contractVo.setSumContractNotClaimMoney(contractVo.getAmount().subtract(contractVo.getSumContractClaimMoney()));
+        }
         return contractAndSamplePage;
     }
 

+ 59 - 64
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -375,75 +375,70 @@
         FROM
         (
         SELECT
-        t1.id,
-        t1.sell_corporation_id,
-        t1.contract_type,
-        1 AS dataType,
-        t1.`code`,
-        t1.buy_corporation_id,
-        t1.version,
-        t1.amount,
-        t1.create_user,
-        t1.create_time,
-        t1.refund_status,
-        t1.`status`,
-        (
-        SELECT
-        IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
-        FROM
-        claim_contract cc
-        LEFT JOIN claim c ON cc.claim_id = c.id
-        LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
-        WHERE
-        cc.contract_id = t1.id
-        ) AS sumClaimMoney
-        FROM
-        contract t1
-        WHERE
-        t1.`status` >= 30
-        AND t1.`status` &lt; 88
-        AND t1.is_show != 1
+            t1.id,
+            t1.sell_corporation_id,
+            t1.contract_type,
+            1 AS dataType,
+            t1.`code`,
+            t1.buy_corporation_id,
+            t1.version,
+            t1.amount,
+            t1.create_user,
+            t1.create_time,
+            t1.refund_status,
+            t1.`status`,
+            (SELECT IFNULL(SUM(IFNULL(cc.money, 0) * IFNULL(arw.rate, 1)), 0)
+             FROM claim_contract cc
+                      LEFT JOIN claim c ON cc.claim_id = c.id
+                      LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+             WHERE cc.contract_id = t1.id) AS sumClaimMoney,
+            (SELECT IFNULL(SUM(cc.contract_money), 0)
+             FROM claim_contract cc
+                      LEFT JOIN claim c ON cc.claim_id = c.id
+                      LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+             WHERE cc.contract_id = t1.id) AS sumContractClaimMoney
+        FROM contract t1
+        WHERE t1.`status` >= 30
+          AND t1.`status` &lt; 88
+          AND t1.is_show != 1
         AND t1.is_change = 0
         UNION
         SELECT
-        t1.id,
+            t1.id,
         t1.sell_corporation_id,
-        3 AS contract_type,
-        2 AS dataType,
-        t1.`code`,
-        t1.buy_corporation_id,
-        t1.versions AS version,
-        t1.amount,
-        t1.create_user,
-        t1.create_time,
-        IF
-        ( sumClaimMoney >= t1.amount, 20, IF ( sumClaimMoney != 0, 10, 0 ) ) AS refund_status,
-        t1.`status`,
-        t1.sumClaimMoney
+        3 AS contract_type, 2 AS dataType, t1.`code`, t1.buy_corporation_id, t1.versions AS version, t1.amount, t1.create_user, t1.create_time, IF
+            ( sumClaimMoney >= t1.amount, 20, IF ( sumClaimMoney != 0, 10, 0 ) ) AS refund_status, t1.`status`, t1.sumClaimMoney, t1.sumContractClaimMoney
         FROM
-        (
-        SELECT
-        t1.*,
-        (
-        SELECT
-        IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
-        FROM
-        claim_contract cc
-        LEFT JOIN claim c ON cc.claim_id = c.id
-        LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
-        WHERE
-        cc.contract_id = t1.id
-        ) AS sumClaimMoney
-        FROM
-        sample t1
-        WHERE
-        t1.`status` >= 30
-        AND t1.`status` &lt; 88
-        AND t1.is_show != 1
-        AND t1.is_change = 0
-        ) AS t1
-        ) t1
-        ${ew.customSqlSegment}
+            (
+            SELECT
+            t1.*, (
+            SELECT
+            IFNULL( SUM ( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
+            FROM
+            claim_contract cc
+            LEFT JOIN claim c ON cc.claim_id = c.id
+            LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+            WHERE
+            cc.contract_id = t1.id
+            ) AS sumClaimMoney, (
+            SELECT
+            IFNULL( SUM (cc.contract_money), 0 )
+            FROM
+            claim_contract cc
+            LEFT JOIN claim c ON cc.claim_id = c.id
+            LEFT JOIN bytesailing_account.account_running_water arw ON c.business_id = arw.id
+            WHERE
+            cc.contract_id = t1.id
+            ) AS sumContractClaimMoney
+            FROM
+            sample t1
+            WHERE
+            t1.`status` >= 30
+            AND t1.`status` &lt; 88
+            AND t1.is_show != 1
+            AND t1.is_change = 0
+            ) AS t1) t1
+            ${ew.customSqlSegment}
     </select>
 
     <update id="updateContract" parameterType="com.fjhx.sale.entity.contract.po.Contract">