Browse Source

流水处理

yzc 1 year ago
parent
commit
e14cfea488
1 changed files with 131 additions and 83 deletions
  1. 131 83
      hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml

+ 131 - 83
hx-account/src/main/resources/mapper/account/AccountRunningWaterMapper.xml

@@ -3,89 +3,137 @@
 <mapper namespace="com.fjhx.account.mapper.account.AccountRunningWaterMapper">
     <!--这段代码正常是不需要跨库查询的。但是一开始封装包的时候分装的不合理,pom里面包是不能互相引用的。account包继承sale包会出现依赖冲突,目前不好改动,只能跨库查询-->
     <select id="getPage" resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
-        SELECT arw.*,
-               if(arw.type = 60, (select c.`code` from bytesailing_sale.contract c where c.id = arw.business_id),
-                  IF
-                      (
-                              arw.type = 40,
-                              (SELECT GROUP_CONCAT(c.`code`)
-                               FROM tax_refund_details trd
-                                        LEFT JOIN bytesailing_sale.contract c ON c.id = trd.contract_id
-                               WHERE trd.account_running_water_id = arw.id),
-                              IF
-                                  (
-                                          arw.type = 30, (SELECT GROUP_CONCAT(clc.contract_code)
-                                                          FROM bytesailing_sale.claim cl
-                                                                   LEFT JOIN bytesailing_sale.claim_contract clc ON clc.claim_id = cl.id
-                                                          WHERE cl.business_id = arw.id),
-                                          (SELECT IF
-                                                      (
-                                                              t1.type = 20,
-                                                              (SELECT GROUP_CONCAT(c.`code`)
-                                                               FROM bytesailing_purchase.pay pa
-                                                                        LEFT JOIN bytesailing_purchase.pay_detail pad ON pad.pay_id = pa.id
-                                                                  LEFT JOIN bytesailing_purchase.purchase p ON pad.purchase_id = p.id
-                                                                  LEFT JOIN bytesailing_sale.contract c ON p.data_resource_id = c.id
-                                                                  WHERE
-                                                                  t1.business_id = pa.id ),(
-					SELECT
-						GROUP_CONCAT( t4.`code` )
-					FROM
-						account_request_funds t2
-						LEFT JOIN account_request_funds_detail t3 ON t2.id = t3.account_request_funds_id
-						LEFT JOIN `bytesailing_sale`.contract t4 ON t3.contract_id = t4.id
-					WHERE
-						t1.business_id = t2.id
-					)
-				) contractCodes
-                                           FROM account_payment t1
-                                           WHERE t1.id = arw.business_id)
-                                  )
-                      )
-                   ) AS contractCodes,
-               if(arw.type = 60, (select c.`id` from bytesailing_sale.contract c where c.id = arw.business_id),
-                  IF
-                      (
-                              arw.type = 40,
-                              (SELECT GROUP_CONCAT(c.`id`)
-                               FROM tax_refund_details trd
-                                        LEFT JOIN bytesailing_sale.contract c ON c.id = trd.contract_id
-                               WHERE trd.account_running_water_id = arw.id),
-                              IF
-                                  (
-                                          arw.type = 30, (SELECT GROUP_CONCAT(clc.contract_id)
-                                                          FROM bytesailing_sale.claim cl
-                                                                   LEFT JOIN bytesailing_sale.claim_contract clc ON clc.claim_id = cl.id
-                                                          WHERE cl.business_id = arw.id),
-                                          (SELECT IF
-                                                      (
-                                                              t1.type = 20,
-                                                              (SELECT GROUP_CONCAT(c.`id`)
-                                                               FROM bytesailing_purchase.pay pa
-                                                                        LEFT JOIN bytesailing_purchase.pay_detail pad ON pad.pay_id = pa.id
-                                                                  LEFT JOIN bytesailing_purchase.purchase p ON pad.purchase_id = p.id
-                                                                  LEFT JOIN bytesailing_sale.contract c ON p.data_resource_id = c.id
-                                                                  WHERE
-                                                                  t1.business_id = pa.id ),(
-					SELECT
-						GROUP_CONCAT( t4.`id` )
-					FROM
-						account_request_funds t2
-						LEFT JOIN account_request_funds_detail t3 ON t2.id = t3.account_request_funds_id
-						LEFT JOIN `bytesailing_sale`.contract t4 ON t3.contract_id = t4.id
-					WHERE
-						t1.business_id = t2.id
-					)
-				) contractCodes
-                                           FROM account_payment t1
-                                           WHERE t1.id = arw.business_id)
-                                  )
-                      )
-                   ) AS contractIds,
-               am.alias accountManagementName,
-               am.corporation_id
-        FROM account_running_water arw
-                 LEFT JOIN account_management am ON arw.account_management_id = am.id
+        SELECT
+            arw.*,
+            IF
+                (
+                        arw.type = 60,
+                        ( SELECT c.`code` FROM bytesailing_jxst.sales_contract c WHERE c.id = arw.business_id ),
+                        IF
+                            (
+                                    arw.type = 40,
+                                    (
+                                        SELECT
+                                            GROUP_CONCAT( c.`code` )
+                                        FROM
+                                            tax_refund_details trd
+                                                LEFT JOIN bytesailing_jxst.sales_contract c ON c.id = trd.contract_id
+                                        WHERE
+                                            trd.account_running_water_id = arw.id
+                                    ),
+                                    IF
+                                        (
+                                                arw.type = 30,
+                                                (
+                                                    SELECT
+                                                        GROUP_CONCAT( clc.contract_code )
+                                                    FROM
+                                                        bytesailing_sale.claim cl
+                                                            LEFT JOIN bytesailing_sale.claim_contract clc ON clc.claim_id = cl.id
+                                                    WHERE
+                                                        cl.business_id = arw.id
+                                                ),
+                                                (
+                                                    SELECT
+                                                        IF
+                                                            (
+                                                                    t1.type = 20,
+                                                                    (
+                                                                        SELECT
+                                                                            GROUP_CONCAT( c.`code` )
+                                                                        FROM
+                                                                            bytesailing_purchase.pay pa
+                                                                                LEFT JOIN bytesailing_purchase.pay_detail pad ON pad.pay_id = pa.id
+                                                                        LEFT JOIN bytesailing_purchase.purchase p ON pad.purchase_id = p.id
+                                                                        LEFT JOIN bytesailing_jxst.sales_contract c ON p.data_resource_id = c.id
+                                                                        WHERE
+                                                                        t1.business_id = pa.id
+                                                            ),(
+						SELECT
+							GROUP_CONCAT( t4.`code` )
+						FROM
+							account_request_funds t2
+							LEFT JOIN account_request_funds_detail t3 ON t2.id = t3.account_request_funds_id
+							LEFT JOIN bytesailing_jxst.sales_contract t4 ON t3.contract_id = t4.id
+						WHERE
+							t1.business_id = t2.id
+						)
+					) contractCodes
+                                                    FROM
+                                                        account_payment t1
+                                                    WHERE
+                                                        t1.id = arw.business_id
+                                                )
+                                        )
+                            )
+                ) AS contractCodes,
+            IF
+                (
+                        arw.type = 60,
+                        ( SELECT c.`id` FROM bytesailing_jxst.sales_contract c WHERE c.id = arw.business_id ),
+                        IF
+                            (
+                                    arw.type = 40,
+                                    (
+                                        SELECT
+                                            GROUP_CONCAT( c.`id` )
+                                        FROM
+                                            tax_refund_details trd
+                                                LEFT JOIN bytesailing_jxst.sales_contract c ON c.id = trd.contract_id
+                                        WHERE
+                                            trd.account_running_water_id = arw.id
+                                    ),
+                                    IF
+                                        (
+                                                arw.type = 30,
+                                                (
+                                                    SELECT
+                                                        GROUP_CONCAT( clc.contract_id )
+                                                    FROM
+                                                        bytesailing_sale.claim cl
+                                                            LEFT JOIN bytesailing_sale.claim_contract clc ON clc.claim_id = cl.id
+                                                    WHERE
+                                                        cl.business_id = arw.id
+                                                ),
+                                                (
+                                                    SELECT
+                                                        IF
+                                                            (
+                                                                    t1.type = 20,
+                                                                    (
+                                                                        SELECT
+                                                                            GROUP_CONCAT( c.`id` )
+                                                                        FROM
+                                                                            bytesailing_purchase.pay pa
+                                                                                LEFT JOIN bytesailing_purchase.pay_detail pad ON pad.pay_id = pa.id
+                                                                        LEFT JOIN bytesailing_purchase.purchase p ON pad.purchase_id = p.id
+                                                                        LEFT JOIN bytesailing_jxst.sales_contract c ON p.data_resource_id = c.id
+                                                                        WHERE
+                                                                        t1.business_id = pa.id
+                                                            ),(
+						SELECT
+							GROUP_CONCAT( t4.`id` )
+						FROM
+							account_request_funds t2
+							LEFT JOIN account_request_funds_detail t3 ON t2.id = t3.account_request_funds_id
+							LEFT JOIN bytesailing_jxst.sales_contract t4 ON t3.contract_id = t4.id
+						WHERE
+							t1.business_id = t2.id
+						)
+					) contractCodes
+                                                    FROM
+                                                        account_payment t1
+                                                    WHERE
+                                                        t1.id = arw.business_id
+                                                )
+                                        )
+                            )
+                ) AS contractIds,
+            am.alias accountManagementName,
+            am.corporation_id
+        FROM
+            account_running_water arw
+                LEFT JOIN account_management am ON arw.account_management_id = am.id
             ${ew.customSqlSegment}
     </select>
     <select id="getDetail" resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">