liyg 2 rokov pred
rodič
commit
14f0c534ca

+ 23 - 4
src/main/java/com/steerinfo/dil/controller/WmshGridMaterialController.java

@@ -17,10 +17,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * WmshGridMaterial RESTful接口:
@@ -118,7 +117,27 @@ public class WmshGridMaterialController extends BaseRESTfulController {
      */
     @PostMapping(value = "/getDownPortStockList")
     public RESTfulResult getDownPortStockList(@RequestBody(required = false) Map<String,Object> mapVal){
-        return success(wmshGridMaterialService.getDownPortStockList(mapVal));
+        //查询所有在途的发货通知下的外轮
+        List<Map<String,Object>> list = wmshGridMaterialService.selectAllShip(mapVal);
+        //遍历获取所有的大类分类及求和
+        Map<String, BigDecimal> types=new HashMap<>();
+        for(int i=0;i<list.size();i++){
+            Map<String,Object> ship = list.get(i);
+            BigDecimal tonnage = DataChange.dataToBigDecimal(ship.get("gmTonnage"));
+            if(types.containsKey(ship.get("type")) && tonnage.doubleValue()>0){
+                //统计下游港口>0的库存
+                BigDecimal result=types.get(ship.get("type")).add(tonnage);
+                types.put(ship.get("type").toString(),result);
+            }else{
+                types.put(ship.get("type").toString(),tonnage);
+            }
+        }
+        //添加结果
+        for(int i=0;i<list.size();i++){
+            Map<String,Object> ship = list.get(i);
+            ship.put("typeTotalTonnage",types.get(ship.get("type").toString()).setScale(2));
+        }
+        return success(list);
     }
 
     /**

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/WmshGridMaterialMapper.java

@@ -54,4 +54,7 @@ public interface WmshGridMaterialMapper extends IBaseMapper<WmshGridMaterial, Bi
 
     //查询该批次的所有港存库
     List<Map<String, Object>> getAllGridOfBatch(Map<String,Object> map);
+
+    //查询船舶动态表
+    List<Map<String, Object>> selectAllShip(Map<String,Object> map);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IWmshGridMaterialService.java

@@ -55,4 +55,6 @@ public interface IWmshGridMaterialService {
     List<Map<String, Object>> getUnLockPortStock(Map<String, Object> mapVal);
 
     int updateWmshGridMaterial(Map<String, Object> map);
+
+    List<Map<String,Object>> selectAllShip(Map<String,Object> map);
 }

+ 33 - 4
src/main/java/com/steerinfo/dil/service/impl/WmshGridMaterialServiceImpl.java

@@ -12,10 +12,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * WmshGridMaterial服务实现:
@@ -66,6 +64,7 @@ public class WmshGridMaterialServiceImpl implements IWmshGridMaterialService {
 
     @Override
     public List<Map<String, Object>> getRunStockList(Map<String, Object> mapVal) {
+        mapVal.put("oneDate",getNowDate());
         return wmshGridMaterialMapper.getRunStockList(mapVal);
     }
 
@@ -207,4 +206,34 @@ public class WmshGridMaterialServiceImpl implements IWmshGridMaterialService {
         wmshOutboundResultMapper.updateForBind(map);
         return 1;
     }
+
+    @Override
+    public List<Map<String, Object>> selectAllShip(Map<String, Object> map) {
+        map.put("oneDate",getNowDate());
+        List<Map<String, Object>> list = wmshGridMaterialMapper.selectAllShip(map);
+        return list;
+    }
+
+    private String getNowDate(){
+        //设置当前的时间节点
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date oneDate=new Date();
+        int hour=oneDate.getHours();
+        if(hour >= 8 && hour < 18){
+            //当天8-18
+            oneDate.setHours(8);
+        }else{
+            if(hour >= 0 ){
+                //第二天8点前,日期减一
+                Calendar calendar=Calendar.getInstance();
+                calendar.setTime(oneDate);
+                calendar.add(Calendar.DATE, -1);
+            }
+            //当天18点后
+            oneDate.setHours(18);
+        }
+        oneDate.setMinutes(0);
+        oneDate.setSeconds(0);
+        return  sdf.format(oneDate);
+    }
 }

+ 202 - 62
src/main/resources/com/steerinfo/dil/mapper/WmshGridMaterialMapper.xml

@@ -455,8 +455,8 @@
         WHERE
         WIR.DELETED = 0
         AND rp.PORT_NAME = '万州港'
-        AND WIR.INSERT_TIME >  #{time}
-        AND WIR.INSERT_TIME >  #{time}
+        AND WIR.WORK_TIME >  #{time}
+        AND WIR.WORK_TIME >  #{time}
         GROUP BY
         rm.MATERIAL_NAME
         ) temp1 ON temp1."materialName" = rm.MATERIAL_NAME
@@ -471,7 +471,7 @@
         LEFT JOIN RMS_PORT rp ON rp.PORT_ID = WOR.HARBOR_ID
         WHERE
         rp.PORT_NAME = '万州港'
-        AND WOR.INSERT_TIME >  #{time}
+        AND WOR.WORK_TIME >  #{time}
         GROUP BY
         rm.MATERIAL_NAME
         ) temp2 ON temp2."materialName" = rm.MATERIAL_NAME
@@ -516,7 +516,7 @@
         WHERE
         WIR.DELETED = 0
         AND RP.PORT_NAME = '万州港'
-        AND WIR.INSERT_TIME >  #{time}
+        AND WIR.WORK_TIME >  #{time}
         GROUP BY
         WIR.BATCH_ID
         ) AfterIn ON AfterIn."batchId" = WGM.BATCH_ID
@@ -531,7 +531,7 @@
         LEFT JOIN RMS_PORT RP ON RP.PORT_ID = WOR.HARBOR_ID
         WHERE
         RP.PORT_NAME = '万州港'
-        AND WOR.INSERT_TIME >  #{time}
+        AND WOR.WORK_TIME >  #{time}
         GROUP BY
         WOR.BATCH_ID
         ) AfterOut ON AfterOut."batchId" = WGM.BATCH_ID
@@ -587,7 +587,7 @@
         ) BRT ON BRT ."batchId"=DB .BATCH_ID
         WHERE
         RP.PORT_NAME = '万州港'
-        AND WOR.INSERT_TIME >  #{time}
+        AND WOR.WORK_TIME >  #{time}
         GROUP BY
         "remark"
         ) noticeOut ON noticeOut."remark" = notice."remark"
@@ -609,7 +609,7 @@
         ) BRT ON BRT ."batchId"=DB .BATCH_ID
         WHERE
         RP.PORT_NAME = '万州港'
-        AND WIR.INSERT_TIME >  #{time}
+        AND WIR.WORK_TIME >  #{time}
         GROUP BY
         "remark"
         ) noticeIn ON noticeIn."remark" = notice."remark"
@@ -619,7 +619,7 @@
         <if test="con!=null and con!=''.toString()">
             and rm.MATERIAL_NAME || rp.PORT_NAME || db.RESULT_FOREIGN_SHIP_NAME like CONCAT(CONCAT('%',#{con}),'%')
         </if>
-        ORDER BY  BR."remark",rm.MATERIAL_NAME
+        ORDER BY  DECODE(BR."remark",'低富粉',1,'中富粉',2,'高富粉',3,'机精粉',4 ,'进口块矿',5,6),rm.MATERIAL_NAME
         )
         <where>
             "gmTonnage" > 0 or "afterTonnage" > 0
@@ -817,63 +817,203 @@
     </select>
     <select id="getRunStockList" resultType="java.util.Map">
         SELECT * FROM (
-                          SELECT DISTINCT
-                              RM.MATERIAL_NAME "materialName",
-                              DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-                              LT."gmTonnage" "gmTonnage",
-                              MT."totalTonnage" "totalTonnage",
-                              NVL(ADN.RESULT_MEMO,'进口块矿') "type",
-                              temp2."totalTonnage" "typeTotalTonnage"
-                          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
+                        SELECT DISTINCT
+                        ADN.BATCH_ID "batchInfactoryId",
+                        DB.BATCH_ID "batchId",
+                        RM.MATERIAL_NAME "materialName",
+                        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+                        LT."gmTonnage" "gmTonnage",
+                        NVL(ADN.RESULT_MEMO,'进口块矿') "type",
+                        temp2."totalTonnage" "typeTotalTonnage"
+                        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  TLSR.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
+                        LEFT JOIN TMSSHIP_UNLOAD_SHIP_RESULT TUSR ON TUSR.TOTAL_RESULT_ID=TLR.RESULT_ID
+                        WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
+                        AND  to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') > TLSR.RESULT_LOAD_SHIP_DATE
+                        AND (TUSR .RESULT_ID IS NULL OR TUSR.RESULT_START_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss'))
+                        GROUP BY TLSR.BATCH_ID
+                        ) LT ON LT ."batchId"= ADN.BATCH_ID
+                        LEFT JOIN (
+                        --按发货通知备注统计数量
+                        SELECT  NVL(ADN.RESULT_MEMO,'进口块矿') "remark",
+                        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 AMSSHIP_DELIVERY_NOTICE ADN ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                        LEFT JOIN TMSSHIP_UNLOAD_SHIP_RESULT TUSR ON TUSR.TOTAL_RESULT_ID=TLR.RESULT_ID
+                        WHERE OIC.DELETED=0 AND ADN.DELETED=0 AND TLSR.DELETED=0
+                        AND  to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') > TLSR.RESULT_LOAD_SHIP_DATE
+                        AND (TUSR .RESULT_ID IS NULL OR TUSR.RESULT_START_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss'))
+                        GROUP BY ADN.RESULT_MEMO
+                        ) temp2 ON temp2."remark"=NVL(ADN.RESULT_MEMO,'进口块矿')
+                        WHERE LT."gmTonnage" > 0 AND ADN.DELETED=0 AND ADA.DELETED=0
+        )
+        ORDER BY DECODE("type",'低富粉',1,'中富粉',2,'高富粉',3,'机精粉',4 ,'进口块矿',5,6),"batchInfactoryId","batchId"
+    </select>
+    <select id="selectAllShip" resultType="java.util.Map">
+        SELECT * FROM (
+                          select DISTINCT
+                              db.BATCH_ID "batchId",
+                              DBI2.BATCH_INFACOTRY_ID  "batchInfacoryId",
+                              db.result_foreign_ship_name "resultForeignShipName",
+                              rm.material_name "materialName",
+                              adn.NOTICE_DELIVERY_TIME "dateOfLoans",
+                              adn.RESULT_NUMBER_OF_LOANS "numberOfLoans",
+                              rp.port_name "portName",
+                              wgm.gm_tonnage-NVL(TIN."afterIn",0)+NVL(TOUT."afterOut",0) "gmTonnage",
+                              NVL(ADN.RESULT_MEMO,'进口块矿') "type"
+                          from AMSSHIP_DELIVERY_NOTICE adn
+                                   LEFT JOIN DIL_BATCH_INFACOTRY DBI2 on adn.batch_id=DBI2.BATCH_INFACOTRY_ID
+                                   LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = adn.batch_id
+                                   JOIN DIL_BATCH DB ON DBI2.BATCH_ID=DB.BATCH_ID
+                                   join rms_material rm on db.material_id=rm.material_id
+                                   left join rms_port rp on rp.port_id=ADA.DOWN_SWIM_PORT_ID
+                                   left join WMSH_GRID_MATERIAL wgm on wgm.batch_id = DB.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
                                    LEFT JOIN (
-                              SELECT  TLSR.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 TLSR.BATCH_ID
-                          ) LT ON LT ."batchId"= ADN.BATCH_ID
+                              SELECT
+                                  BATCH_ID "batchId",
+                                  PORT_ID "portId",
+                                  SUM(RESULT_MATERIAL_NUMBER) "afterIn"
+                              FROM WMSH_INBOUND_RESULT
+                              where DELETED=0 AND WORK_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss')
+                              GROUP BY BATCH_ID,PORT_ID
+                          ) TIN ON wgm.batch_id = TIN ."batchId" AND WGM.PORT_ID=TIN."portId"
                                    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
+                              SELECT
+                                  BATCH_ID "batchId",
+                                  HARBOR_ID "portId",
+                                  SUM(RESULT_TONNAGE) "afterOut"
+                              FROM WMSH_OUTBOUND_RESULT
+                              where  WORK_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss')
+                              GROUP BY BATCH_ID,HARBOR_ID
+                          ) TOUT ON wgm.batch_id = TOUT ."batchId" AND WGM.PORT_ID=TOUT."portId"
+                                   left join TMSSHIP_LOAD_SHIP_RESULT tlsr on DBI2.BATCH_INFACOTRY_ID=tlsr.batch_id
+                                   left join tmsship_total_result ttr on ttr.result_id=tlsr.TOTAL_RESULT_ID
+                                   left join TMSSHIP_UNLOAD_SHIP_RESULT tusr on tusr.TOTAL_RESULT_ID = ttr.result_id
+                                   left join omsship_instructions_capacity oic on ttr.order_id=oic.instructions_capacity_id
+                                   left join OMSSHIP_SHIPMENT_INSTRUCTIONS OSI  ON OSI.SHIPMENT_INSTRUCTIONS_ID=oic.INSTRUCTIONS_ID
+                                   left join rms_capacity rc on oic.capacity_id=rc.capacity_id
+                                   left join RMS_MATERIAL_TYPE RMT on adn.MATERIAL_TYPE_ID =  RMT.MATERIAL_TYPE_ID
+                                   left join (select * from tmsship_ship_location t where t.location_id in
+                                                                                          (SELECT
+                                                                                               t.location_id
+                                                                                           FROM
+                                                                                               (
+                                                                                                   SELECT
+                                                                                                       t.location_id,
+                                                                                                       t.total_result_id,
+                                                                                                       t.location_route_time,
+                                                                                                       ROW_NUMBER () OVER (
+                                                                                         PARTITION BY t.total_result_id
+                                                                                         ORDER BY t.location_route_time DESC
+                                                                                         ) AS rn
+                                                                                                   FROM
+                                                                                                       tmsship_ship_location t
+                                                                                               ) t
+                                                                                           WHERE
+                                                                                               rn = 1)) tsl
+                                             on tsl.total_result_id=ttr.result_id
+                          where tsl.LOCATION_STATUS is not null and tlsr.DELETED=0 and
+                                  to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') > TLSR.RESULT_LOAD_SHIP_DATE
+                            and (tusr.RESULT_ID is null or tusr.RESULT_START_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss'))
+                            and  adn.DELETED=0 and oic.DELETED=0
+                          union all
+                          select DISTINCT
+                              db.BATCH_ID "batchId",
+                              DBI2.BATCH_INFACOTRY_ID  "batchInfacoryId",
+                              db.result_foreign_ship_name "resultForeignShipName",
+                              rm.material_name "materialName",
+                              adn.NOTICE_DELIVERY_TIME "dateOfLoans",
+                              adn.RESULT_NUMBER_OF_LOANS "numberOfLoans",
+                              rp.port_name "portName",
+                              wgm.gm_tonnage-NVL(TIN."afterIn",0)+NVL(TOUT."afterOut",0) "gmTonnage",
+                              NVL(ADN.RESULT_MEMO,'进口块矿') "type"
+                          from AMSSHIP_DELIVERY_NOTICE adn
+                                   LEFT JOIN DIL_BATCH_INFACOTRY DBI2 on adn.batch_id=DBI2.BATCH_INFACOTRY_ID
+                                   LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = adn.batch_id
+                                   JOIN DIL_BATCH DB ON DBI2.BATCH_ID=DB.BATCH_ID
+                                   join rms_material rm on db.material_id=rm.material_id
+                                   left join rms_port rp on rp.port_id=ADA.DOWN_SWIM_PORT_ID
+                                   left join WMSH_GRID_MATERIAL wgm on wgm.batch_id = DB.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
                                    LEFT JOIN (
-                              --按发货通知备注统计数量
-                              SELECT "remark",
-                                     SUM("gmTonnage") "totalTonnage"
-                              FROM (
-                                       SELECT  NVL(ADN.RESULT_MEMO,'进口块矿') "remark",
-                                               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 ADN.RESULT_MEMO
-                                   )
-                              GROUP BY "remark"
-                          ) temp2 ON temp2."remark"=NVL(ADN.RESULT_MEMO,'进口块矿')
-                          WHERE LT."gmTonnage" > 0 AND ADN.DELETED=0 AND ADA.DELETED=0
+                              SELECT
+                                  BATCH_ID "batchId",
+                                  PORT_ID "portId",
+                                  SUM(RESULT_MATERIAL_NUMBER) "afterIn"
+                              FROM WMSH_INBOUND_RESULT
+                              where DELETED=0 AND WORK_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss')
+                              GROUP BY BATCH_ID,PORT_ID
+                          ) TIN ON wgm.batch_id = TIN ."batchId" AND WGM.PORT_ID=TIN."portId"
+                                   LEFT JOIN (
+                              SELECT
+                                  BATCH_ID "batchId",
+                                  HARBOR_ID "portId",
+                                  SUM(RESULT_TONNAGE) "afterOut"
+                              FROM WMSH_OUTBOUND_RESULT
+                              where  WORK_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss')
+                              GROUP BY BATCH_ID,HARBOR_ID
+                          ) TOUT ON wgm.batch_id = TOUT ."batchId" AND WGM.PORT_ID=TOUT."portId"
+                                   left join RMS_MATERIAL_TYPE RMT on adn.MATERIAL_TYPE_ID =  RMT.MATERIAL_TYPE_ID
+                          where adn.DELETED=0 and wgm.DELETED=0 and wgm.gm_tonnage-NVL(TIN."afterIn",0)+NVL(TOUT."afterOut",0)>0
+                            and  to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') > ADA.ATTORNEY_TIME
+                            and DBI2.BATCH_INFACOTRY_ID not in(
+                              select DISTINCT
+                                  DBI2.BATCH_INFACOTRY_ID  "batchInfacoryId"
+                              from AMSSHIP_DELIVERY_NOTICE adn
+                                       LEFT JOIN DIL_BATCH_INFACOTRY DBI2 on adn.batch_id=DBI2.BATCH_INFACOTRY_ID
+                                       LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADA.BATCH_ID = adn.batch_id
+                                       JOIN DIL_BATCH DB ON DBI2.BATCH_ID=DB.BATCH_ID
+                                       join rms_material rm on db.material_id=rm.material_id
+                                       left join rms_port rp on rp.port_id=ADA.DOWN_SWIM_PORT_ID
+                                       left join WMSH_GRID_MATERIAL wgm on wgm.batch_id = DB.BATCH_ID AND ADA.DOWN_SWIM_PORT_ID=WGM.PORT_ID
+                                       left join TMSSHIP_LOAD_SHIP_RESULT tlsr on DBI2.BATCH_INFACOTRY_ID=tlsr.batch_id
+                                       left join tmsship_total_result ttr on ttr.result_id=tlsr.TOTAL_RESULT_ID
+                                       left join TMSSHIP_UNLOAD_SHIP_RESULT tusr on tusr.TOTAL_RESULT_ID=ttr.result_id
+                                       left join omsship_instructions_capacity oic on ttr.order_id=oic.instructions_capacity_id
+                                       left join OMSSHIP_SHIPMENT_INSTRUCTIONS OSI  ON OSI.SHIPMENT_INSTRUCTIONS_ID=oic.INSTRUCTIONS_ID
+                                       left join rms_capacity rc on oic.capacity_id=rc.capacity_id
+                                       left join RMS_MATERIAL_TYPE RMT on adn.MATERIAL_TYPE_ID =  RMT.MATERIAL_TYPE_ID
+                                       left join (select * from tmsship_ship_location t where t.location_id in
+                                                                                              (SELECT
+                                                                                                   t.location_id
+                                                                                               FROM
+                                                                                                   (
+                                                                                                       SELECT
+                                                                                                           t.location_id,
+                                                                                                           t.total_result_id,
+                                                                                                           t.location_route_time,
+                                                                                                           ROW_NUMBER () OVER (
+                                                                                         PARTITION BY t.total_result_id
+                                                                                         ORDER BY t.location_route_time DESC
+                                                                                         ) AS rn
+                                                                                                       FROM
+                                                                                                           tmsship_ship_location t
+                                                                                                   ) t
+                                                                                               WHERE
+                                                                                                   rn = 1)) tsl
+                                                 on tsl.total_result_id=ttr.result_id
+                              where tsl.LOCATION_STATUS is not null and tlsr.DELETED=0 and
+                                      to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') > TLSR.RESULT_LOAD_SHIP_DATE
+                                and (tusr.RESULT_ID is null or tusr.RESULT_START_TIME > to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss'))
+                          )
                       )
-        ORDER BY "type","materialName"
+        WHERE "gmTonnage" > 0
+        ORDER BY DECODE("type",'低富粉',1,'中富粉',2,'高富粉',3,'机精粉',4 ,'进口块矿',5,6),"batchId","batchInfacoryId" DESC
     </select>
 </mapper>