liyg há 2 anos atrás
pai
commit
e1b33344c0

+ 65 - 58
src/main/resources/com/steerinfo/dil/mapper/WmshGridMaterialMapper.xml

@@ -647,7 +647,9 @@
         WHERE WGM.BATCH_ID=#{batchId}
     </select>
     <select id="getDownPortStockList" resultType="java.util.Map">
-        SELECT WGM.GM_ID "gmId",
+        SELECT * FROM(
+        SELECT DISTINCT
+               WGM.GM_ID "gmId",
                WGM.GM_TONNAGE "gmTonnage",
                RP.PORT_NAME "portName",
                RM.MATERIAL_NAME "materialName",
@@ -661,25 +663,27 @@
                  LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
                  LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = ADN.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
                  LEFT JOIN (
-            SELECT
-                RM.MATERIAL_NAME "materialName",
-                SUM(WGM.GM_TONNAGE) "totalTonnage"
-            FROM WMSH_GRID_MATERIAL WGM
-                     LEFT JOIN DIL_BATCH DB ON WGM.BATCH_ID=DB.BATCH_ID
-                     LEFT JOIN RMS_PORT RP ON RP.PORT_ID=WGM.PORT_ID
-                     LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
-                     LEFT JOIN DIL_BATCH_INFACOTRY DBI ON DBI.BATCH_ID=DB.BATCH_ID
-                     LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-                     LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID =ADN.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
-            WHERE WGM.DELETED=0 AND WGM.GM_TONNAGE>0 AND RP.PORT_NAME!='万州港' AND ADN.DELETED=0 AND ADA.DELETED=0
-	AND DBI.BATCH_INFACOTRY_ID IN (
-		SELECT DISTINCT TLSR .BATCH_ID
-		FROM TMSSHIP_LOAD_SHIP_RESULT TLSR
-		LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
-		LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
-		WHERE OIC.DELETED=0
-	)
-            GROUP BY RM.MATERIAL_NAME
+            SELECT "materialName",
+                   SUM("gmTonnage") "totalTonnage"
+            FROM (
+                     SELECT DISTINCT
+                         RM.MATERIAL_NAME "materialName",
+                         WGM.GM_TONNAGE "gmTonnage",
+                         WGM.GM_ID ,
+                         DB.RESULT_FOREIGN_SHIP_NAME
+                     FROM WMSH_GRID_MATERIAL WGM
+                              LEFT JOIN DIL_BATCH DB ON WGM.BATCH_ID=DB.BATCH_ID
+                              LEFT JOIN RMS_PORT RP ON RP.PORT_ID=WGM.PORT_ID
+                              LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
+                              LEFT JOIN DIL_BATCH_INFACOTRY DBI ON DBI.BATCH_ID=DB.BATCH_ID
+                              LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                              LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = ADN.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
+                              LEFT JOIN TMSSHIP_LOAD_SHIP_RESULT TLSR ON ADA.BATCH_ID = TLSR.BATCH_ID
+                              LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
+                              LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
+                     WHERE WGM.DELETED=0 AND WGM.GM_TONNAGE>0 AND RP.PORT_NAME!='万州港' AND ADN.DELETED=0 AND ADA.DELETED=0 AND OIC.DELETED=0
+                 )
+            GROUP BY "materialName"
         ) temp ON temp."materialName" = RM.MATERIAL_NAME
         WHERE WGM.DELETED=0 AND WGM.GM_TONNAGE>0 AND RP.PORT_NAME!='万州港' AND ADN.DELETED=0 AND ADA.DELETED=0
 AND DBI.BATCH_INFACOTRY_ID IN (
@@ -689,45 +693,48 @@ AND DBI.BATCH_INFACOTRY_ID IN (
 		LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
 		WHERE OIC.DELETED=0
 	)
-        ORDER BY RM.MATERIAL_NAME
+        )
+        ORDER BY "materialName"
     </select>
     <select id="getRunStockList" resultType="java.util.Map">
-        SELECT
-            RM.MATERIAL_NAME "materialName",
-            DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-            LT."gmTonnage" "gmTonnage",
-            MT."totalTonnage" "totalTonnage"
-        FROM AMSSHIP_DELIVERY_NOTICE ADN
-                 LEFT JOIN DIL_BATCH_INFACOTRY DBI ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-                 LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = ADN.BATCH_ID
-                 LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
-                 LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
-                 LEFT JOIN (
-            SELECT  DB.BATCH_ID "batchId",
-                    SUM(TLSR.RESULT_ACTUAL_INSTALLATIONS) "gmTonnage"
-            FROM TMSSHIP_LOAD_SHIP_RESULT TLSR
-                     LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
-                     LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
-                     LEFT JOIN DIL_BATCH_INFACOTRY DBI ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-                     LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
-                     LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-            WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
-            GROUP BY DB.BATCH_ID
-        ) LT ON LT ."batchId"= DB.BATCH_ID
-                 LEFT JOIN (
-            SELECT  RM.MATERIAL_NAME "materialName",
-                    SUM(TLSR.RESULT_ACTUAL_INSTALLATIONS) "totalTonnage"
-            FROM TMSSHIP_LOAD_SHIP_RESULT TLSR
-                     LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
-                     LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
-                     LEFT JOIN DIL_BATCH_INFACOTRY DBI ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-                     LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
-                     LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
-                     LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
-            WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
-            GROUP BY  RM.MATERIAL_NAME
-        ) MT ON MT."materialName"=RM.MATERIAL_NAME
-        WHERE LT."gmTonnage" > 0 AND ADN.DELETED=0
-        ORDER BY RM.MATERIAL_NAME
+        SELECT * FROM (
+                          SELECT DISTINCT
+                              RM.MATERIAL_NAME "materialName",
+                              DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+                              LT."gmTonnage" "gmTonnage",
+                              MT."totalTonnage" "totalTonnage"
+                          FROM AMSSHIP_DELIVERY_NOTICE ADN
+                                   LEFT JOIN DIL_BATCH_INFACOTRY DBI ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                                   LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = ADN.BATCH_ID
+                                   LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
+                                   LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
+                                   LEFT JOIN (
+                              SELECT  DB.BATCH_ID "batchId",
+                                      SUM(TLSR.RESULT_ACTUAL_INSTALLATIONS) "gmTonnage"
+                              FROM TMSSHIP_LOAD_SHIP_RESULT TLSR
+                                       LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
+                                       LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
+                                       LEFT JOIN DIL_BATCH_INFACOTRY DBI ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                                       LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
+                                       LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                              WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
+                              GROUP BY DB.BATCH_ID
+                          ) LT ON LT ."batchId"= DB.BATCH_ID
+                                   LEFT JOIN (
+                              SELECT  RM.MATERIAL_NAME "materialName",
+                                      SUM(TLSR.RESULT_ACTUAL_INSTALLATIONS) "totalTonnage"
+                              FROM TMSSHIP_LOAD_SHIP_RESULT TLSR
+                                       LEFT JOIN TMSSHIP_TOTAL_RESULT TLR ON  TLR.RESULT_ID=TLSR.TOTAL_RESULT_ID
+                                       LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON OIC.INSTRUCTIONS_CAPACITY_ID=TLR.ORDER_ID
+                                       LEFT JOIN DIL_BATCH_INFACOTRY DBI ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                                       LEFT JOIN DIL_BATCH DB ON DBI.BATCH_ID=DB.BATCH_ID
+                                       LEFT JOIN RMS_MATERIAL RM ON DB.MATERIAL_ID=RM.MATERIAL_ID
+                                       LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                              WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
+                              GROUP BY  RM.MATERIAL_NAME
+                          ) MT ON MT."materialName"=RM.MATERIAL_NAME
+                          WHERE LT."gmTonnage" > 0 AND ADN.DELETED=0
+                      )
+        ORDER BY "materialName"
     </select>
 </mapper>