ljy121 1 год назад
Родитель
Сommit
b37f11010c
1 измененных файлов с 20 добавлено и 17 удалено
  1. 20 17
      zjugis-business/src/main/resources/mapper/oracle/ContractMapper.xml

+ 20 - 17
zjugis-business/src/main/resources/mapper/oracle/ContractMapper.xml

@@ -16,15 +16,14 @@
     </select>
 
     <select id="page" resultType="com.zjugis.business.bean.entity.Contract">
-        SELECT c.*,PA.invoiceAmount,PA.returnAmount,PA.receivableAmount,PA.contractBalance FROM CONTRACT c
+        SELECT c.*,PA.invoiceAmount,PA.returnAmount,(PA.invoiceAmount - PA.returnAmount) as receivableAmount,(c.CONTRACT_AMOUNT - pa.invoiceAmount) as contractBalance FROM CONTRACT c
         LEFT JOIN (
-        SELECT MAIN_PROJECT_ID,
+        SELECT CONTRACT_ID,
         COALESCE(SUM(COALESCE(INVOICE_AMOUNT,0)),0) as invoiceAmount,
-        COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount,
-        COALESCE(SUM(COALESCE(RECEIVABLE_AMOUNT,0)),0) as receivableAmount,
-        COALESCE(SUM(COALESCE(CONTRACT_BALANCE,0)),0) as contractBalance
-        FROM PROJECT_AMOUNT GROUP BY MAIN_PROJECT_ID
-        ) PA on PA.MAIN_PROJECT_ID = c.PROJECT_ID
+        COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount
+        FROM CONTRACT_INVOICE_RELATION WHERE ISVALID = 1
+        GROUP BY CONTRACT_ID
+        ) PA on PA.CONTRACT_ID = c.ID
         <if test="params != null and params.deptId != null and params.deptId != ''">
         RIGHT JOIN PROJECT pr ON pr.ID = c.PROJECT_ID
         </if>
@@ -164,14 +163,19 @@
     </select>
 
     <select id="calc" resultType="com.zjugis.business.bean.entity.ProjectAmount">
-        SELECT
-        COALESCE(SUM(COALESCE(PA.VIRTUAL_AMOUNT,0)),0) as contractAmount,
-        COALESCE(SUM(COALESCE(PA.INVOICE_AMOUNT,0)),0) as invoiceAmount,
-        COALESCE(SUM(COALESCE(PA.RETURN_AMOUNT,0)),0) as returnAmount,
-        COALESCE(SUM(COALESCE(PA.RECEIVABLE_AMOUNT,0)),0) as receivableAmount,
-        COALESCE(SUM(COALESCE(PA.CONTRACT_BALANCE,0)),0) as contractBalance
-        FROM PROJECT_AMOUNT PA RIGHT JOIN
-        ( SELECT c.PROJECT_ID FROM CONTRACT c
+        SELECT  COALESCE(SUM(COALESCE(c.CONTRACT_AMOUNT,0)),0) as contractAmount,
+        COALESCE(SUM(COALESCE(PA.invoiceAmount,0)),0) as invoiceAmount,
+        COALESCE(SUM(COALESCE(PA.returnAmount,0)),0) as returnAmount,
+        COALESCE(SUM(COALESCE(PA.invoiceAmount - PA.returnAmount,0)),0) as receivableAmount,
+        COALESCE(SUM(COALESCE(c.CONTRACT_AMOUNT - pa.invoiceAmount,0)),0) as contractBalance
+        FROM CONTRACT c
+        LEFT JOIN (
+            SELECT CONTRACT_ID,
+            COALESCE(SUM(COALESCE(INVOICE_AMOUNT,0)),0) as invoiceAmount,
+            COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount
+            FROM CONTRACT_INVOICE_RELATION WHERE ISVALID = 1
+            GROUP BY CONTRACT_ID
+            ) PA on PA.CONTRACT_ID = c.ID
             <if test="params != null and params.deptId != null and params.deptId != ''">
                 RIGHT JOIN PROJECT pr ON pr.ID = c.PROJECT_ID
             </if>
@@ -243,8 +247,7 @@
                 AND pr.ZRBM_ID = #{params.deptId}
             </if>
         </where>
-        GROUP BY c.PROJECT_ID
-        ) c on c.PROJECT_ID = PA.PROJECT_ID
+
     </select>
 
     <select id="signCalc" resultType="com.zjugis.business.bean.entity.ProjectAmount">