Redeem 1 year ago
parent
commit
f566cfc2f3

+ 1 - 1
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>org.example</groupId>
     <artifactId>dil-tms-truck-api</artifactId>
-    <version>1.5</version>
+    <version>1.6</version>
 
     <parent>
         <groupId>org.springframework.boot</groupId>

+ 21 - 0
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -1548,4 +1548,25 @@ public class StatisticalReportController extends BaseRESTfulController {
         return success(statisticalReportService.getOyeSteelReportDetailsBySmId(saleOrderMaterialId));
     }
 
+
+    @ApiOperation("欠运力统计表")
+    @PostMapping("oYeYawnReport")
+    public synchronized RESTfulResult oYeYawnReport(@RequestBody(required = false) Map<String,Object> map) {
+        String startTime = map.get("startTime").toString();
+        String endTime = map.get("startTime").toString();
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
+        System.out.println(map.get("startDate"));
+        return success(statisticalReportService.oYeYawnReport(map));
+    }
+
+    @PostMapping("oYeSteelTransportReport")
+    @ApiOperation(value="销售钢材报表每日运输情况查询")
+    public RESTfulResult oYeSteelTransportReport(@RequestBody(required = false) Map<String,Object> map,
+                                              String startTime,
+                                              String endTime){
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
+        List<Map<String, Object>> report = statisticalReportService.oYeSteelTransportReport(map);
+        return success(report);
+    }
+
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java

@@ -144,4 +144,11 @@ public interface StatisticalReportMapper {
 
 
     String getRealSsoId(String carrierSsoId);
+
+    List<Map<String, Object>> oYeYawnReport(Map<String, Object> map);
+
+    List<Map<String, Object>> oYeYawnReportMonth(Map<String, Object> map);
+
+    List<Map<String, Object>> oYeSteelTransportReport(Map<String, Object> map);
+
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.java

@@ -178,4 +178,6 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
 
     Date getMakeDate(BigDecimal saleMaterialIdOld);
 
+    String getInboundWarehouse(BigDecimal saleMaterialIdOld);
+
 }

+ 152 - 6
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -1145,15 +1145,161 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("queueStartTime") != null && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() == 0){
                 map.put("orderStatus","排队中");
                 map.put("orderStatusTime",map.get("queueStartTime"));
-            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() != 0 && map.get("outGateTime") == null){
-                map.put("orderStatus","已进厂");
-                map.put("orderStatusTime",map.get("entryGateTime"));
-            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("outGateTime") != null){
-                map.put("orderStatus","已出厂");
-                map.put("orderStatusTime",map.get("outGateTime"));
             }
             map.put("mapList",mapList);
         }
         return map;
     }
+
+    public List<Map<String,Object>> oYeYawnReport(Map<String, Object> map) {
+        List<Map<String,Object>> dayList =  statisticalReportMapper.oYeYawnReport(map);
+        List<Map<String,Object>> monthList =  statisticalReportMapper.oYeYawnReportMonth(map);
+        dayList.addAll(monthList);
+        return dayList;
+    }
+
+
+
+    public List<Map<String, Object>> oYeSteelTransportReport(Map<String, Object> map) {
+        //查询出来的结果是根据省(承运方向)、市(承运线路)、承运商、运单状态来分组,不含自提车辆,默认查询时间为昨天八点到今天早上八点
+        List<Map<String, Object>> saleSteelReport = statisticalReportMapper.oYeSteelTransportReport(map);
+        //再查询今天继续装的归在昨天
+        //List<Map<String,Object>> saleSteelReportContinue = statisticalReportMapper.saleSteelReportContinue(map);
+        //saleSteelReport.addAll(saleSteelReportContinue);
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        for (int i=0 ;i < saleSteelReport.size();i++) {
+            //map里面key有省、市、承运商、运单状态
+            Map<String, Object> stringObjectMap  = saleSteelReport.get(i);
+            BigDecimal saleOrderStatus = DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderStatus"));
+            //未上报
+            stringObjectMap.put("noUploadPlanTruckNumber",0);
+            //审核
+            stringObjectMap.put("processPlanTruckNumber",0);
+            //首先未派发
+            stringObjectMap.put("unArragePlanTruckNumber",0);
+            //已派发
+            stringObjectMap.put("arrageTruckNumber",0);
+            //已派单
+            stringObjectMap.put("dispatchOrderEd",0);
+            //已接单
+            stringObjectMap.put("receivedOrder",0);
+            //排队中
+            stringObjectMap.put("queueOrder",0);
+            //已出库
+            stringObjectMap.put("outBoundEd",0);
+            //已完成
+            stringObjectMap.put("finishEd",0);
+            stringObjectMap.put("actuallyFinish",0);
+            if ("是".equals(stringObjectMap.get("isSelfMention"))){
+                stringObjectMap.put("carrier","自提");
+            }
+            if(i == 0) {
+                if(stringObjectMap.get("orderStatusByOrder") != null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                    //已派单就是2,4,5
+                    //已接单就是状态为5且未排队、未进厂、未出厂的
+                    stringObjectMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    if ("已派单".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 4) {
+                        stringObjectMap.put("dispatchOrderEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if (("已派单".equals(stringObjectMap.get("orderStatusByResult"))|| "已接单".equals(stringObjectMap.get("orderStatusByResult"))) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                        stringObjectMap.put("receivedOrder",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if ("排队中".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                        stringObjectMap.put("queueOrder",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if ("已出库".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                        stringObjectMap.put("outBoundEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    //已完成
+                    if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
+                        stringObjectMap.put("finishEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                }else if(stringObjectMap.get("orderStatusByOrder") == null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0){
+                    stringObjectMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                }
+                if(saleOrderStatus.compareTo(new BigDecimal(0)) == 0) {
+                    stringObjectMap.put("noUploadPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                }
+                if(saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                    stringObjectMap.put("processPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                }
+                mapList.add(stringObjectMap);
+            }else{
+                Map<String,Object> spanMap = mapList.get(mapList.size() - 1);
+                //判断如果承运方向和承运商相同,就需要进行处理,否则加进数组
+                String carrierDirection = spanMap.get("carrierDirection").toString();
+                String carrierDirection1 = stringObjectMap.get("carrierDirection").toString();
+                String carrier = spanMap.get("carrier").toString();
+                String carrier1 = stringObjectMap.get("carrier").toString();
+                if(carrier.compareTo(carrier1) == 0 && carrierDirection.compareTo(carrierDirection1) == 0){
+                    //首先,将承运线路拼进来
+                    if(!spanMap.get("carrierLine").toString().contains(stringObjectMap.get("carrierLine").toString())) {
+                        spanMap.put("carrierLine",spanMap.get("carrierLine") + "、" + stringObjectMap.get("carrierLine"));
+                    }
+                    //然后计算销售下达计划车数
+                    //计算承运商安排运力数(不含取消)
+                    if(stringObjectMap.get("orderStatusByOrder") != null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        spanMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(spanMap.get("arrageTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        if ("已派单".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 4) {
+                            spanMap.put("dispatchOrderEd",DataChange.dataToBigDecimal(spanMap.get("dispatchOrderEd")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if (("已派单".equals(stringObjectMap.get("orderStatusByResult"))|| "已接单".equals(stringObjectMap.get("orderStatusByResult"))) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                            spanMap.put("receivedOrder",DataChange.dataToBigDecimal(spanMap.get("receivedOrder")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("排队中".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                            spanMap.put("queueOrder",DataChange.dataToBigDecimal(spanMap.get("queueOrder")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("已出库".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                            spanMap.put("outBoundEd",DataChange.dataToBigDecimal(spanMap.get("outBoundEd")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        //已完成
+                        if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
+                            spanMap.put("finishEd",DataChange.dataToBigDecimal(spanMap.get("finishEd")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                    }else if(stringObjectMap.get("orderStatusByOrder") == null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0){
+                        spanMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("unArragePlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(0)) == 0) {
+                        spanMap.put("noUploadPlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("noUploadPlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        spanMap.put("processPlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("processPlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                }else{
+                    if(stringObjectMap.get("orderStatusByOrder") != null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        stringObjectMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        if ("已派单".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 4) {
+                            stringObjectMap.put("dispatchOrderEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if (("已派单".equals(stringObjectMap.get("orderStatusByResult"))|| "已接单".equals(stringObjectMap.get("orderStatusByResult"))) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                            stringObjectMap.put("receivedOrder",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("排队中".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                            stringObjectMap.put("queueOrder",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("已进厂".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                            stringObjectMap.put("enFactoryEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("已出库".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                            stringObjectMap.put("outBoundEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        //已完成
+                        if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
+                            stringObjectMap.put("finishEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                    }else if(stringObjectMap.get("orderStatusByOrder") == null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        stringObjectMap.put("unArragePlanTruckNumber", DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(0)) == 0) {
+                        stringObjectMap.put("noUploadPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        stringObjectMap.put("processPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    mapList.add(stringObjectMap);
+                }
+            }
+        }
+        return mapList;
+    }
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckSelfMachineService.java

@@ -145,6 +145,9 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
             dateMap.put("orderDate",orderDate);
             Date makeDate = tmstruckLeaveFactoryResultMapper.getMakeDate(DataChange.dataToBigDecimal(dateMap.get("saleMaterialIdOld")));
             dateMap.put("makeDate",makeDate);
+            //查询出库仓库
+            String inboundWarehouse = tmstruckLeaveFactoryResultMapper.getInboundWarehouse(DataChange.dataToBigDecimal(dateMap.get("saleMaterialIdOld")));
+            dateMap.put("inboundWarehouse",inboundWarehouse);
         }
         map.put("orderTimeFlag",rulesMapper.getVersionValue(15) == 1 ? 1 : null);
         return map;

+ 702 - 78
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -2219,6 +2219,9 @@
                     <if test="carrierSsoId != null">
                         and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
                     </if>
+                    <if test="inboundWarehouse != null">
+                        and RRP.ADDRESS_DELIVERY_ADDRESS = #{inboundWarehouse}
+                    </if>
                     <if test="remark != null" >
                         and  RSR.SALER_NAME || RCA.CAPACITY_NUMBER ||
                              RC.CONSIGNEE_COMPANY_NAME || (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
@@ -2994,16 +2997,20 @@
         SELECT * FROM (
         SELECT distinct OO.ORDER_ID "orderId",
         ASO.SALE_ORDER_ID "saleOrderId",
-        to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
+        CASE WHEN ASO.SALE_TYPE = 1
+        THEN to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd')
+        WHEN ASO.SALE_TYPE = 50
+        THEN to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd')
+        END  "orderTime",
         ASO.SALE_NUMBER "saleOrderNo",
         ASO.SALE_ORDER_STATUS "saleOrderStatus",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
         CASE
             WHEN bdo.CONSIGNEE_ID is null and bdo.PRICE_VALUE is null and bdo.REMARK is not null
             then null
-            WHEN TWR.RESULT_GROSS_WEIGHT is null
+            WHEN TWB.BATCH_NET_WEIGHT is null
             then null
-            when TWR.RESULT_GROSS_WEIGHT is not null
+            when TWB.BATCH_NET_WEIGHT is not null
             then ASM.MATERIAL_NUMBER
             end "materialNum",
         (CASE
@@ -3076,7 +3083,6 @@
         RRA.ADDRESS_TOWN "addressTown",
         OO.ORDER_LINE_SEQUENCE "lineSqe",
         OO.DRIVER_TEL "capacityTel",
-
         TWB .WEIGHT_BATCH_ID "weightBatchId",
         (
         CASE
@@ -3153,7 +3159,12 @@
         --制单时间
         to_char(ASM.SALE_MAKE_DATE,'yyyy-fmmm-dd HH24:mi') "saleMakeDate",
         --操作人
-        OO.RECORD_USERNAME "recordUserName"
+        OO.RECORD_USERNAME "recordUserName",
+        (CASE WHEN ASO.SALE_TYPE = 1
+         THEN '厂内库'
+         WHEN ASO.SALE_TYPE = 50
+         THEN OOR.INBOUND_WAREHOUSE
+        END) "outBoundWarehouse"
         FROM AMS_SALE_ORDER ASO
         LEFT JOIN RMS_CONSIGNEE RC
         ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
@@ -3215,20 +3226,31 @@
         ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
         LEFT JOIN RMS_CONSIGNEE RC2
         ON RC2.CONSIGNEE_ID = BDO.CONSIGNEE_ID
-
-        WHERE ASO.SALE_TYPE = 1
+        LEFT JOIN OYE_OUTBOUND_RESULT OOR
+        ON OOR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        WHERE ASO.SALE_TYPE in (1,50)
         and (aso.DELETED between 1 and 2 and aso.SALE_ORDER_STATUS = 4 or aso.DELETED = 0 and aso.SALE_ORDER_STATUS between 0 and 4)
         and ASM.SALE_MATERIAL_ID IS NOT NULL
         and NVL(BDO.WETHER_TO_STATEMENT,0) = 0
         <if test="oneDate != null and saleMakeDate == null">
-            and to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and ((to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd') and ASO.SALE_TYPE = 1)
+            OR (
+            (to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd') and ASO.SALE_TYPE = 50
+            ))
         </if>
         <if test="carrierSsoId != null">
             and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
         </if>
         <if test="startDate != null and saleMakeDate == null">
-            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and (
+            (to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
             and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and ASO.SALE_TYPE = 1)
+            OR  (
+                to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+                and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+                and ASO.SALE_TYPE = 50
+            ))
         </if>
         <if test="oneDate != null and saleMakeDate != null">
             and to_date(#{oneDate}, 'yyyy-mm-dd') = to_date(to_char(ASM.SALE_MAKE_DATE,'yyyy-mm-dd'),'yyyy-mm-dd')
@@ -3279,6 +3301,15 @@
             RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
         </foreach>
         </if>
+        <if test="outBoundWarehouseList != null">
+            and <foreach collection="outBoundWarehouseList" item="item" open="(" separator="or" close=")">
+            (CASE WHEN ASO.SALE_TYPE = 1
+            THEN '厂内库'
+            WHEN ASO.SALE_TYPE = 50
+            THEN OOR.INBOUND_WAREHOUSE
+            END)  like '%${item}%'
+        </foreach>
+        </if>
         <if test="carrierNames != null">
             and (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
             THEN '自提'
@@ -3379,7 +3410,12 @@
         SELECT * FROM (
         SELECT distinct OO.ORDER_ID "orderId",
         ASO.SALE_ORDER_ID "saleOrderId",
-        to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
+
+        to_char(
+            CASE WHEN ASO.SALE_TYPE = 1
+            THEN ASOM.SALE_DATE_OF_RECEIPT-1
+            ELSE ASOM.SALE_DATE_OF_RECEIPT
+            END,'yyyy-mm-dd') "orderTime",
         ASO.SALE_NUMBER "saleOrderNo",
         ASO.SALE_ORDER_STATUS "saleOrderStatus",
         BDO.DETAILS_ID  "detailsId",
@@ -3387,9 +3423,9 @@
         CASE
         WHEN bdo.CONSIGNEE_ID is null and bdo.PRICE_VALUE is null and bdo.REMARK is not null
         then null
-        WHEN TWR.RESULT_GROSS_WEIGHT is null
+        WHEN TWB.BATCH_NET_WEIGHT is null
         then null
-        when TWR.RESULT_GROSS_WEIGHT is not null
+        when TWB.BATCH_NET_WEIGHT is not null
         then ASM.MATERIAL_NUMBER
         end "materialNum",
         (CASE
@@ -3543,7 +3579,12 @@
             BDO.STATEMENT_ID IS NULL
             THEN '未生成账单'
             ELSE '已生成账单,账单编号' || BS.STATEMENT_NUMBER
-            END) "statementRemark"
+            END) "statementRemark",
+        (CASE WHEN ASO.SALE_TYPE = 1
+        THEN '厂内库'
+        WHEN ASO.SALE_TYPE = 50
+        THEN OOR.INBOUND_WAREHOUSE
+        END) "outBoundWarehouse"
         FROM AMS_SALE_ORDER ASO
         LEFT JOIN RMS_CONSIGNEE RC
         ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
@@ -3607,20 +3648,31 @@
         ON RC2.CONSIGNEE_ID = BDO.CONSIGNEE_ID
         left join BMSTRUCK_STATEMENT BS
         ON BS.STATEMENT_ID = BDO.STATEMENT_ID
-
-        WHERE ASO.SALE_TYPE = 1
+        LEFT JOIN OYE_OUTBOUND_RESULT OOR
+        ON OOR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        WHERE ASO.SALE_TYPE IN (1,50)
         and (aso.DELETED between 1 and 2 and aso.SALE_ORDER_STATUS = 4 or aso.DELETED = 0 and aso.SALE_ORDER_STATUS between 0 and 4)
         and ASM.SALE_MATERIAL_ID IS NOT NULL
         and BDO.WETHER_TO_STATEMENT = 1
-        <if test="oneDate != null  and saleMakeDate == null">
-            and to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+        <if test="oneDate != null and saleMakeDate == null">
+            and ((to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd') and ASO.SALE_TYPE = 1)
+            OR (
+            (to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd') and ASO.SALE_TYPE = 50
+            ))
         </if>
         <if test="carrierSsoId != null">
             and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
         </if>
-        <if test="startDate != null  and saleMakeDate == null">
-            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+        <if test="startDate != null and saleMakeDate == null">
+            and (
+            (to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
             and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and ASO.SALE_TYPE = 1)
+            OR  (
+            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and ASO.SALE_TYPE = 50
+            ))
         </if>
         <if test="oneDate != null and saleMakeDate != null">
             and to_date(#{oneDate}, 'yyyy-mm-dd') = to_date(to_char(ASM.SALE_MAKE_DATE,'yyyy-mm-dd'),'yyyy-mm-dd')
@@ -3671,6 +3723,15 @@
             RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
         </foreach>
         </if>
+        <if test="outBoundWarehouseList != null">
+            and <foreach collection="outBoundWarehouseList" item="item" open="(" separator="or" close=")">
+            (CASE WHEN ASO.SALE_TYPE = 1
+            THEN '厂内库'
+            WHEN ASO.SALE_TYPE = 50
+            THEN OOR.INBOUND_WAREHOUSE
+            END)  like '%${item}%'
+        </foreach>
+        </if>
         <if test="carrierNames != null">
             and (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
             THEN '自提'
@@ -6385,12 +6446,14 @@
         SELECT * FROM (
         SELECT distinct OO.ORDER_ID "orderId",
         ASO.SALE_ORDER_ID "saleOrderId",
-        to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
+        to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd') "orderTime",
+        ASM.SALE_MAKE_DATE  "saleMakeDate",
         ASO.INSERT_UPDATE_REMARK "saleOrderInertUpdateRemark",
         ASO.SALE_NUMBER "saleOrderNo",
         ASO.UPDATE_TIME "updateTime",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
         ASM.MATERIAL_NUMBER "materialNum",
+        ASM.MATERIAL_WEIGHT "materialWeight",
         ASM.DELETED "deletedStatus",
         decode(asm.DELETED,null,'正常','关闭') "flStatus",
         RC.CONSIGNEE_COMPANY_NAME "consigneeName",
@@ -6446,23 +6509,10 @@
         QQR.RESULT_START_TIME   "queueStartTime",
         QQR.UPDATE_TIME         "allowEnfactoryTime",
         TWB .WEIGHT_BATCH_ID "weightBatchId",
-        (
-        CASE
-        WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
-        THEN TWB.BATCH_NET_WEIGHT
-        ELSE TWR.RESULT_NET_WEIGHT
-        END
-        ) "netWeight",
-        TWR.RESULT_NET_WEIGHT   "toExcelNetWeight",
+        TWB.BATCH_NET_WEIGHT "netWeight",
         TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
         TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
         ASM.MATERIAL_PLAN_NUMBER    "materialPlanNumber",
-        (CASE WHEN
-        ASM.IS_POUND_SALE = 0
-        THEN TWR.RESULT_NET_WEIGHT
-        WHEN ASM.IS_POUND_SALE = 1
-        THEN ORI.SINGLE_WEIGHT * ASM.MATERIAL_NUMBER
-        END) "materialThoWeight",
         R_CARRIER.CARRIER_ID        "carrierId",
         (CASE WHEN
         RCA.CAPACITY_NUMBER = '空白'
@@ -6507,7 +6557,7 @@
         THEN '已完成'
         WHEN QQR.RESULT_START_TIME IS NOT NULL
         THEN '排队中'
-        when OO.ORDER_STATUS=5
+        when OO.ORDER_STATUS = 5
         then '已接单'
         END)
         "orderStatus",
@@ -6560,10 +6610,6 @@
         ON TTR.ORDER_ID = OO.ORDER_ID
         LEFT JOIN QMS_QUEUE_RESULT QQR
         ON QQR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
-        ON
-        TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
-        AND TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
         ON TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
@@ -6572,12 +6618,17 @@
         ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
         LEFT JOIN OYE_REALTIME_INVENTORY ORI
         ON ORI.INVENTORY_ID = ASM.SALE_WAREHOUSE
+        LEFT JOIN OYE_OUTBOUND_RESULT OOR
+        ON OOR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
         WHERE
         ASM.SALE_MATERIAL_ID IS NOT NULL
         and asm.SALE_ORDER_ID != -1
         <if test="carrierSsoId != null">
             and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
         </if>
+        <if test="inboundWarehouse != null">
+            and ORI.INBOUND_WAREHOUSE = #{inboundWarehouse}
+        </if>
         <if test="remark != null" >
             and  RSR.SALER_NAME || RCA.CAPACITY_NUMBER ||
             RC.CONSIGNEE_COMPANY_NAME || (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
@@ -6632,6 +6683,11 @@
             RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
         </foreach>
         </if>
+        <if test="inventoryWarehouseList != null and inventoryWarehouseList.size > 0">
+            and <foreach collection="inventoryWarehouseList" item="item" open="(" separator="or" close=")">
+            ORI.INBOUND_WAREHOUSE like '%${item}%'
+        </foreach>
+        </if>
         <if test="flStatusList != null and flStatusList.size > 0">
             and <foreach collection="flStatusList" item="item" open="(" separator="or" close=")">
             decode(asm.DELETED,null,'正常','关闭') like '%${item}%'
@@ -6680,9 +6736,9 @@
             and <foreach collection="orderStatusList" item="item" open="(" separator="or" close=")">
             (CASE
             when OO.ORDER_STATUS =2
-            then '作业已完成'
+            then '已完成'
             when OO.ORDER_STATUS=4
-            then '物流公司已派单'
+            then '已派单'
             when nvl(OO.ORDER_STATUS,0)=0
             then '未派发'
             when OO.ORDER_STATUS=7
@@ -6694,7 +6750,7 @@
             WHEN QQR.RESULT_START_TIME IS NOT NULL
             THEN '排队中'
             when OO.ORDER_STATUS=5
-            then '司机已接单'
+            then '已接单'
             END) like '%${item}%'
         </foreach>
         </if>
@@ -6810,10 +6866,9 @@
                         NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
                         OO.ORDER_STATUS              "carStatus",
                         ASOM.TRUCK_REMARK           "truckRemark",
-                        DECODE(ASO.SALE_ORDER_STATUS,1,'销售订单已上报',
-                               2,'销售已提交',
-                               4,'财务已审批',
-                               0,'销售订单未上报') "saleOrderStatus",
+                        DECODE(ASO.SALE_ORDER_STATUS,
+                               4,'已审核',
+                               0,'待审核') "saleOrderStatus",
                         DECODE(nvl(OO.ORDER_STATUS,0) ,2,'已完成',4,'已派发',5,'已接收',0,'未派发',7,'已关闭',8,'已关闭')
                             "orderStatus",
                         oo.ORDER_STATUS "orderStatu"
@@ -6843,17 +6898,11 @@
                            ON TTR.ORDER_ID = OO.ORDER_ID
                  LEFT JOIN QMS_QUEUE_RESULT QQR
                            ON QQR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                 LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
-                           ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                 LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
-                           ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                  LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
                            ON TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                  LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
                            ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
-                 LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
-                           ON BDO.ORDER_ID = OO.ORDER_ID
-        WHERE ASO.SALE_TYPE in (1, 50)
+        WHERE ASO.SALE_TYPE = 50
           AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
     </select>
     <select id="getOyeSteelReportDetailsListBySmId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
@@ -6884,28 +6933,13 @@
             RM.MATERIAL_SPECIFICATION   "materialSpecification",
             RM.MATERIAL_MODEL   "materialModel",
             TWB .WEIGHT_BATCH_ID "weightBatchId",
-
-            (
-                CASE
-                    WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
-                        THEN TWB.BATCH_NET_WEIGHT
-                    ELSE TWR.RESULT_NET_WEIGHT
-                    END
-                ) "netWeight",
-            TLR.RESULT_LOAD_END_TIME     "loadTime",
-            BDO.DETAILS_AMOUNT           "detailsAmount",
+            TWB.WEIGHT_BATCH_ID  "netWeight",
             oo.ORDER_NUMBER             "orderNo",
             ORI.INBOUND_WAREHOUSE   "inventoryWarehouse",
             ORI.MATERIAL_NUMBER "inventoryMaterialNumber",
             ORI.THEORY_WEIGHT   "inventoryTheoryWeight",
             ORI.SINGLE_WEIGHT   "singleWeight",
-            ORI.METER           "meter",
-            (CASE WHEN
-                      ASM.IS_POUND_SALE = 0
-                      THEN TWR.RESULT_NET_WEIGHT
-                  WHEN ASM.IS_POUND_SALE = 1
-                      THEN ORI.SINGLE_WEIGHT * ASM.MATERIAL_NUMBER
-                END) "materialThoWeight"
+            ORI.METER           "meter"
         FROM AMS_SALE_ORDER ASO
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
                            ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
@@ -6924,14 +6958,6 @@
                                AND NVL(OO.ORDER_TYPE,0) in (0,1)
                  LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
                            ON TTR.ORDER_ID = OO.ORDER_ID
-                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
-                           ON   TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
-                               AND TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                 LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
-                           ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
-                 LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
-                           ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                               AND TLR.MATERIAL_ID = RM.MATERIAL_ID
                  LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
                            ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
                  LEFT JOIN OYE_REALTIME_INVENTORY ORI
@@ -6947,4 +6973,602 @@
         RMS_CARRIER RC
         WHERE RC.CARRIER_SSO_ID = #{carrierSsoId}
     </select>
+    <select id="oYeYawnReport" resultType="java.util.Map">
+        SELECT
+        "target",
+        "carrierName",
+        "planNum",
+        "quxiaoNum",
+        "orderNum" - "quxiaoNum" "orderNum",
+        "notSendNum",
+        NVL("queueNum",0) "queueNum",
+        NVL("receivedNum",0) "receivedNum",
+        NVL("unReceiveNum",0) "unReceiveNum",
+        (CASE NVL("orderNum",0)
+        WHEN 0 THEN
+        'NAL'
+        ELSE
+        CONCAT(ROUND("orderNum"*100/"planNum", 2),'%')
+        END) AS "percent",
+        NVL("numGong",0) "numGong",
+        NVL("numCang",0) "numCang",
+        NVL("truckNetWeight",0) "totalNet",
+        NVL("truckThoWeight",0) "materialThoWeight",
+        nvl("unloadThoWeight",0) "unloadThoWeight",
+        decode("target",'钢材达州组',1,'钢材万州组',2,'钢材南充组',3,'钢材巴中组',4,'钢材广安组',5,'钢材武汉组',6,'钢材西安组',7,'钢材重庆组',8,'钢材成都组',9,'钢材工程组',10,11) "no"
+        FROM
+        (
+        --查询非自提
+        SELECT T0."target",T0."carrierName",
+        T1."planNum",T1."orderNum",T1."quxiaoNum",
+        T1."planNum"-"orderNum" "notSendNum",
+        T1."queueNum",
+        T1."receivedNum",
+        T1."unReceiveNum",
+        T2 ."num" "numGong" ,T3 ."num" "numCang",
+        T5."truckNetWeight" + T7."truckNetWeight"  "truckNetWeight",
+        T5."truckThoWeight",
+        T5."unloadThoWeight"
+        FROM
+        (SELECT DISTINCT
+        ASo.SALE_REMARK "target",
+        (Case when
+        ASO.SALE_TYPE = 4
+        THEN '车皮'
+        else
+        RC.CARRIER_ABBREVIATION
+        end) "carrierName"
+        FROM
+        AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC ON RC.CARRIER_ID = ADSO.CARRIER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        WHERE
+        RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND ASO.SALE_ORDER_ISSELF_MENTION != '是'
+        and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        AND ASO.SALE_TYPE = 50
+        ) T0
+        LEFT JOIN
+        (
+        SELECT
+        ASO.SALE_REMARK "target",--方向
+        (Case when
+        ASO.SALE_TYPE = 4
+        THEN '车皮'
+        else
+        RC.CARRIER_ABBREVIATION
+        end)     "carrierName",--承运商
+        COUNT(DISTINCT CASE WHEN
+        ASO.SALE_TYPE = 1
+        THEN
+        ASOM.SALE_ORDER_MATERIAL_ID
+        ELSE null
+        END) "planNum",--计划总数
+        COUNT(DISTINCT CASE WHEN
+        ASO.SALE_TYPE = 1 AND OO .CAPACITY_ID !=35907 --空白不计入已派发运单
+        THEN
+        OO .ORDER_ID
+        ELSE null
+        END) "orderNum",--运单总数
+        COUNT(DISTINCT OO_QUXIAO .ORDER_ID) "quxiaoNum",--取消运单数
+        COUNT(DISTINCT OO_QUEUE.ORDER_ID) "queueNum",--排队中数量
+        COUNT(DISTINCT OO_RECEIVED.ORDER_ID) "receivedNum",--已接单数量
+        COUNT(DISTINCT OO_UN_RECEIVE.ORDER_ID) "unReceiveNum" --未接收数量
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO_QUXIAO
+        ON OO_QUXIAO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID AND OO_QUXIAO.CAPACITY_ID=35128
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR .ORDER_ID = OO .ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID AND TWR .SALE_MATERIAL_ID=ASM .SALE_MATERIAL_ID
+        LEFT JOIN
+        (
+        --未接收
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '已派单'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_UN_RECEIVE ON OO_UN_RECEIVE.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN
+        (
+        --已接单
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '已接单'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_RECEIVED ON OO_RECEIVED.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN
+        (
+        --排队中
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '排队中'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_QUEUE ON OO_QUEUE.ORDER_ID = OO.ORDER_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND ASO.SALE_ORDER_ISSELF_MENTION !='是'
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        and ASM.SALE_ORDER_ID != -1
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        GROUP BY ASO.SALE_REMARK,Case when
+        ASO.SALE_TYPE = 4
+        THEN '车皮'
+        else
+        RC.CARRIER_ABBREVIATION
+        end
+        ) T1 ON T0."target" = T1."target" AND T1."carrierName" = T0."carrierName"
+        LEFT JOIN
+        (
+        --查询工地数量
+        SELECT
+        ASO .SALE_REMARK "target",--方向
+        RC.CARRIER_ABBREVIATION "carrierName",--承运商
+        COUNT(DISTINCT OO .ORDER_ID) "num"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
+        AND ASO.SALE_ORDER_ISSELF_MENTION='否'
+        AND RRP.UNLOAD_TYPE = '工地'
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        GROUP BY ASO .SALE_REMARK,RC.CARRIER_ABBREVIATION
+        ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
+        LEFT JOIN
+        (
+        --查询仓库数量
+        SELECT
+        ASO .SALE_REMARK "target",--方向
+        RC.CARRIER_ABBREVIATION "carrierName",--承运商
+        COUNT(DISTINCT OO .ORDER_ID) "num"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
+        AND ASO.SALE_ORDER_ISSELF_MENTION='否'
+        AND RRP.UNLOAD_TYPE = '库房'
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        GROUP BY ASO .SALE_REMARK,RC.CARRIER_ABBREVIATION
+        ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"
+        LEFT JOIN
+        (
+        --查询净重、理重
+        SELECT
+        ASO .SALE_REMARK "target",--方向
+        Case when
+        ASO.SALE_TYPE = 4
+        THEN '车皮'
+        else
+        RC.CARRIER_ABBREVIATION
+        end "carrierName",--承运商
+        SUM(CASE WHEN
+        ASO.SALE_TYPE = 1 AND ASM .WEIGHT_BATCH_ID IS NULL
+        THEN
+        TWR.RESULT_NET_WEIGHT
+        ELSE 0
+        END) "truckNetWeight",
+        SUM(CASE WHEN
+        ASM.IS_POUND_SALE = 0 AND TWB.BATCH_NET_WEIGHT IS NOT NULL
+        THEN TWB.BATCH_NET_WEIGHT
+        WHEN ASM.IS_POUND_SALE = 1 AND ASM.WEIGHT_BATCH_ID IS NOT NULL
+        THEN ASM.MATERIAL_WEIGHT
+        END) "truckThoWeight",
+        SUM(CASE WHEN
+        TWR.RESULT_NET_WEIGHT IS NULL
+        THEN ASM.MATERIAL_WEIGHT
+        ELSE 0
+        END) "unloadThoWeight"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_iD
+        LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
+        ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
+        WHERE
+        nvl(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND OO.CAPACITY_ID!=35128
+        AND NVL(OO.ORDER_TYPE,0) IN (0,1,4)
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        AND ASO.SALE_TYPE = 50
+        AND ASO.SALE_ORDER_ISSELF_MENTION !='是'
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        GROUP BY ASO .SALE_REMARK,(Case when
+        ASO.SALE_TYPE = 4
+        THEN '车皮'
+        else
+        RC.CARRIER_ABBREVIATION
+        end)
+        ) T5 ON T0 ."target" = T5."target" AND T0."carrierName" = 	T5."carrierName"
+        LEFT JOIN
+        (
+        --查询批次净重
+        SELECT "target",
+        "carrierName",
+        NVL(SUM("batchNetWeight"),0) "truckNetWeight"
+        FROM
+        (
+        SELECT DISTINCT
+        TWB .WEIGHT_BATCH_ID,
+        TWB .BATCH_NET_WEIGHT "batchNetWeight",
+        ASO .SALE_REMARK "target",--方向
+        RC.CARRIER_ABBREVIATION "carrierName"--承运商
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_iD
+        LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
+        ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
+        WHERE
+        nvl(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND OO.CAPACITY_ID!=35128
+        AND NVL(OO.ORDER_TYPE,0) IN (0,1,4)
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        AND ASO.SALE_TYPE = 50
+        AND ASO.SALE_ORDER_ISSELF_MENTION !='是'
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        )
+        GROUP BY "carrierName","target"
+        ) T7 ON T0 ."target" = T7."target" AND T0."carrierName" = 	T7."carrierName")
+    </select>
+    <select id="oYeYawnReportMonth" resultType="java.util.Map">
+        SELECT
+        T1."target",
+        T1."carrierName",
+        T1."planNum",
+        "orderNum" - "quxiaoNum" "orderNum",
+        T1."quxiaoNum",
+        T1."planNum"-"orderNum" "notSendNum",
+        nvl(T1."queueNum",0) "queueNum",
+        nvl(T1."receivedNum",0) "receivedNum",
+        nvl(T1."unReceiveNum",0) "unReceiveNum",
+        nvl(T2 ."num",0) "numGong" ,nvl(T3 ."num",0) "numCang",
+        nvl(T5."truckNetWeight",0) "totalNet",
+        nvl(T5."truckThoWeight",0) "materialThoWeight"
+        FROM
+        (
+        SELECT
+        '月合计' "target",--方向
+        '月合计' "carrierName",--承运商
+        COUNT(DISTINCT ASOM.SALE_ORDER_MATERIAL_ID) "planNum",--计划总数
+        COUNT(DISTINCT OO .ORDER_ID) "orderNum",--运单总数
+        COUNT(DISTINCT OO_QUXIAO .ORDER_ID) "quxiaoNum",--取消运单数
+        COUNT(DISTINCT OO_QUEUE.ORDER_ID) "queueNum",--排队中数量
+        COUNT(DISTINCT OO_RECEIVED.ORDER_ID) "receivedNum",--已接单数量
+        COUNT(DISTINCT OO_UN_RECEIVE.ORDER_ID) "unReceiveNum",--未接收数量
+        SUM(TWR.RESULT_NET_WEIGHT) "totalNet",--总净重
+        SUM(ASM.MATERIAL_WEIGHT) "materialThoWeight"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO_QUXIAO
+        ON OO_QUXIAO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID AND OO_QUXIAO.CAPACITY_ID=35128
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR .ORDER_ID = OO .ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID AND TWR .SALE_MATERIAL_ID=ASM .SALE_MATERIAL_ID
+        LEFT JOIN
+        (
+        --未接收
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '已派单'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_UN_RECEIVE ON OO_UN_RECEIVE.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN
+        (
+        --已接单
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '已接单'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_RECEIVED ON OO_RECEIVED.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN
+        (
+        --排队中
+        SELECT OO.ORDER_ID
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_ID
+        WHERE TTR.ORDER_STATUS = '排队中'
+        AND OO.CAPACITY_ID!=35128
+        AND OO . ORDER_TYPE= 1
+        ) OO_QUEUE ON OO_QUEUE.ORDER_ID = OO.ORDER_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        and ASM.SALE_ORDER_ID != -1
+        <if test="startMonthTime != null">
+            and to_date(#{startMonthTime}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endMonthTime}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        ) T1
+        LEFT JOIN
+        (
+        --查询工地数量
+        SELECT
+        '月合计' "target",--方向
+        '月合计' "carrierName",--承运商
+        COUNT(DISTINCT OO .ORDER_ID) "num"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        and
+        aso.SALE_ORDER_STATUS = 4
+        AND RC.CARRIER_ABBREVIATION IS NOT NULL
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
+        AND RRP.UNLOAD_TYPE = '工地'
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        <if test="startMonthTime != null">
+            and to_date(#{startMonthTime}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endMonthTime}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
+        LEFT JOIN
+        (
+        --查询仓库数量
+        SELECT
+        '月合计' "target",--方向
+        '月合计' "carrierName",--承运商
+        COUNT(DISTINCT OO .ORDER_ID) "num"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
+        AND RRP.UNLOAD_TYPE = '库房'
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        <if test="startMonthTime != null">
+            and to_date(#{startMonthTime}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endMonthTime}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"
+        LEFT JOIN
+        (
+        --查询净重、理重
+        SELECT
+        '月合计' "target",--方向
+        '月合计' "carrierName",--承运商
+        SUM( TWR.RESULT_NET_WEIGHT) "truckNetWeight",
+        SUM(CASE WHEN
+        ASM.IS_POUND_SALE = 0 AND TWR.RESULT_NET_WEIGHT IS NOT NULL
+        THEN TWR.RESULT_NET_WEIGHT
+        WHEN ASM.IS_POUND_SALE = 1 AND TWR.RESULT_NET_WEIGHT IS NOT NULL
+        THEN ASM.MATERIAL_WEIGHT
+        END) "truckThoWeight"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO .SALE_ORDER_MATERIAL_ID = ASOM .SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC
+        ON RC .CARRIER_ID = ADSO .CARRIER_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_iD
+        WHERE
+        NVL(aso.DELETED,0) in (0,2)
+        AND aso.SALE_ORDER_STATUS = 4
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
+        AND ASO.SALE_TYPE = 50
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
+        AND ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASM.SALE_ORDER_ID != -1
+        <if test="startMonthTime != null">
+            and to_date(#{startMonthTime}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endMonthTime}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        ) T5 ON T1 ."target" = T5."target" AND T1."carrierName" = 	T5."carrierName"
+    </select>
+    <select id="oYeSteelTransportReport" resultType="java.util.Map">
+        SELECT
+        RRA.ADDRESS_PROVINCE "carrierDirection",
+        RRA.ADDRESS_DISTRICT|| RRA.ADDRESS_TOWN "carrierLine",
+        R_CARRIER.CARRIER_ABBREVIATION "carrier",
+        COUNT( ASOM.SALE_ORDER_MATERIAL_ID ) "planTruckNumber",
+        ASO.SALE_ORDER_ISSELF_MENTION "isSelfMention",
+        aso.SALE_ORDER_STATUS "saleOrderStatus",
+        OO.ORDER_STATUS "orderStatusByOrder",
+        TTR.ORDER_STATUS "orderStatusByResult"
+        FROM
+        AMS_SALE_ORDER_MATERIAL ASOM left join AMS_SALE_ORDER aso on aso.SALE_ORDER_ID = asom.SALE_ORDER_ID
+        and (select count(astm.SALE_ORDER_MATERIAL_ID)  from AMS_SALE_TRUCKNO_MATERIAL ASTM
+        LEFT JOIN AMS_SALE_MATERIAL ASM ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        where astm.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID
+        AND ASM.DELETED IS NULL
+        AND ASM.SALE_ORDER_ID != -1
+        ) > 0
+        LEFT JOIN RMS_RECEIVE_PLACE RRP ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA ON RRA.ADDRESS_ID = RRP.ADDRESS_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER R_CARRIER ON R_CARRIER.CARRIER_ID = ADSO.CARRIER_ID
+        LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        AND NVL( OO.ORDER_TYPE, 0 ) IN ( 0, 1 )
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
+        WHERE
+        NVL(OO.CAPACITY_ID,0) != 35128
+        AND  aso.DELETED = 0
+        AND R_CARRIER.CARRIER_ABBREVIATION IS NOT NULL
+        AND ASO.SALE_TYPE = 50
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd') &lt;= to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        GROUP BY
+        RRA.ADDRESS_PROVINCE,
+        RRA.ADDRESS_DISTRICT|| RRA.ADDRESS_TOWN,
+        R_CARRIER.CARRIER_ABBREVIATION,
+        aso.SALE_ORDER_STATUS,
+        OO.ORDER_STATUS,
+        TTR.ORDER_STATUS,
+        ASO.SALE_ORDER_ISSELF_MENTION
+        ORDER BY ASO.SALE_ORDER_ISSELF_MENTION,RRA.ADDRESS_PROVINCE,R_CARRIER.CARRIER_ABBREVIATION,aso.SALE_ORDER_STATUS
+    </select>
 </mapper>

+ 17 - 6
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1306,10 +1306,10 @@
         ASM.MATERIAL_ID AS "materialid",
         (
             CASE
-                WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
-                    THEN TWB.BATCH_GROSS_WEIGHT_TIME
-                ELSE TWR.RESULT_GROSS_WEIGHT_TIME
-                END
+            WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
+            THEN TWB.BATCH_GROSS_WEIGHT_TIME
+            ELSE TWR.RESULT_GROSS_WEIGHT_TIME
+            END
         )  "netWeightTime",
         ASM.SALE_MATERIAL_ID AS "saleMaterialId"
         FROM OMSTRUCK_ORDER OO
@@ -1387,7 +1387,7 @@
                            ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
                  LEFT JOIN AMS_SALE_MATERIAL ASM
                            ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
-        where  ASM.MATERIAL_ID=#{materialid}
+        where  ASM.MATERIAL_ID = #{materialid}
           and ASM.SALE_MATERIAL_ID = #{saleMaterialIdOld}
           and OO.order_number=#{orderNumber} and oo.order_status in (2,5)
             FETCH NEXT 1 ROW ONLY
@@ -1649,13 +1649,24 @@
         )
     </delete>
     <select id="getOrderDate" resultType="java.lang.String" parameterType="decimal">
-        SELECT to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+        SELECT
+        to_char(
+            CASE WHEN ASO.SALE_TYPE = 1
+            THEN ASOM.SALE_DATE_OF_RECEIPT-1
+            ELSE ASOM.SALE_DATE_OF_RECEIPT
+            END,'yyyy-mm-dd') FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
         LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
         ON ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_ORDER ASO
+        ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
         WHERE ASTM.MATERIAL_ID = #{saleMaterialIdOld}
     </select>
     <select id="getMakeDate" resultType="java.util.Date" parameterType="decimal">
         SELECT SALE_MAKE_DATE FROM AMS_SALE_MATERIAL ASM
         WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialIdOld}
     </select>
+    <select id="getInboundWarehouse" resultType="java.lang.String">
+        SELECT OOR.INBOUND_WAREHOUSE FROM OYE_OUTBOUND_RESULT OOR
+        WHERE OOR.SALE_MATERIAL_ID = #{saleMaterialIdOld}
+    </select>
 </mapper>