luobang 2 年 前
コミット
9f7cdf8c99

+ 23 - 12
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -260,9 +260,10 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         HashSet set = new HashSet<>();
         HashSet<Map<String,Object>> filterConsigneeList = new HashSet<>();
         HashSet<Map<String,Object>> filterCarrierList = new HashSet<>();
-        HashSet<Map<String,Object>> filterCapacityList = new HashSet<>();
+        HashSet<Map<String,Object>> filterCapacityList = new LinkedHashSet<>();
         HashSet<Map<String,Object>> filtermaterialNameList = new HashSet<>();
         HashSet<Map<String,Object>> filterorderStatus = new HashSet<>();
+        HashSet<Map<String,Object>> filterorderStatusActually = new HashSet<>();
         HashSet<Map<String,Object>> filteraddressPlace = new HashSet<>();
         HashSet<Map<String,Object>> filtermaterialSpe = new HashSet<>();
         HashSet<Map<String,Object>> filterSaleRemark = new HashSet<>();
@@ -271,13 +272,18 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         int totalNumber = 0;
         for (int j = 0; j < saleSteelReport.size();j++) {
             Map<String,Object> stringObjectMap = saleSteelReport.get(j);
+            //车牌号筛选
+
             stringObjectMap.put("rowKey",j + 1);
             if(j == 0) {
                 stringObjectMap.put("group",j);
                 //根据车序号ID去查询正常状态分录的个数
                 //BigDecimal spellNum = statisticalReportMapper.getSpellNum(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
                 //stringObjectMap.put("spellNum",spellNum);
-
+                Map<String,Object> filterCapacityMap = new HashMap<>();
+                filterCapacityMap.put("text","空白");
+                filterCapacityMap.put("value","空白");
+                filterCapacityList.add(filterCapacityMap);
             }else{
                 if((saleSteelReport.get(j-1).get("saleOrderMaterialId")).equals(stringObjectMap.get("saleOrderMaterialId"))){
                     stringObjectMap.put("group",saleSteelReport.get(j-1).get("group"));
@@ -289,6 +295,15 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                 }
             }
             set.add(stringObjectMap.get("saleOrderMaterialId"));
+            Map<String,Object> filterCapacityMap = new HashMap<>();
+            if(stringObjectMap.get("newCapacityNo") == null) {
+                filterCapacityMap.put("text","空白");
+                filterCapacityMap.put("value","空白");
+            }else{
+                filterCapacityMap.put("text",stringObjectMap.get("newCapacityNo"));
+                filterCapacityMap.put("value",stringObjectMap.get("newCapacityNo"));
+            }
+            filterCapacityList.add(filterCapacityMap);
             calculateDifferenceTime(stringObjectMap);
             //收货客户筛选
             Map<String, Object> filterConsigneeMap = new HashMap<>();
@@ -300,16 +315,6 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             filterCarrierMap.put("text",stringObjectMap.get("carrierName"));
             filterCarrierMap.put("value",stringObjectMap.get("carrierName"));
             filterCarrierList.add(filterCarrierMap);
-            //车牌号筛选
-            Map<String,Object> filterCapacityMap = new HashMap<>();
-            if(stringObjectMap.get("newCapacityNo") == null) {
-                filterCapacityMap.put("text","空白");
-                filterCapacityMap.put("value","空白");
-            }else{
-                filterCapacityMap.put("text",stringObjectMap.get("newCapacityNo"));
-                filterCapacityMap.put("value",stringObjectMap.get("newCapacityNo"));
-            }
-            filterCapacityList.add(filterCapacityMap);
             //物资筛选
             Map<String,Object> filtermaterialNameMap = new HashMap<>();
             filtermaterialNameMap.put("text",stringObjectMap.get("materialName"));
@@ -320,6 +325,11 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             filterorderStatusMap.put("text",stringObjectMap.get("orderStatus"));
             filterorderStatusMap.put("value",stringObjectMap.get("orderStatus"));
             filterorderStatus.add(filterorderStatusMap);
+            //运单实际状态筛选
+            Map<String,Object> filterorderStatusActuallyMap = new HashMap<>();
+            filterorderStatusActuallyMap.put("text",stringObjectMap.get("orderStatusActually"));
+            filterorderStatusActuallyMap.put("value",stringObjectMap.get("orderStatusActually"));
+            filterorderStatusActually.add(filterorderStatusActuallyMap);
             //收货地址筛选
             Map<String,Object> filteraddressPlaceMap = new HashMap<>();
             filteraddressPlaceMap.put("text",stringObjectMap.get("addressPlace"));
@@ -387,6 +397,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             saleSteelReport.get(0).put("filterConsigneeList",filterConsigneeList);
             saleSteelReport.get(0).put("filtermaterialNameList",filtermaterialNameList);
             saleSteelReport.get(0).put("filterorderStatus",filterorderStatus);
+            saleSteelReport.get(0).put("filterorderStatusActually",filterorderStatusActually);
             saleSteelReport.get(0).put("filteraddressPlace",filteraddressPlace);
             saleSteelReport.get(0).put("filtermaterialSpe",filtermaterialSpe);
             saleSteelReport.get(0).put("filterCapacityList",filterCapacityList);

+ 181 - 54
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -1990,6 +1990,13 @@
                     RRA.ADDRESS_TOWN "addressTown",
                     OO.ORDER_LINE_SEQUENCE "lineSqe",
                     OO.DRIVER_TEL "capacityTel",
+                    (CASE WHEN
+                        OO.ORDER_STATUS = 2 and TTR.ORDER_STATUS = '已出厂'
+                        THEN '已完成'
+                        WHEN TTR.ORDER_STATUS IS NULL
+                        THEN '未派发'
+                        ELSE TTR.ORDER_STATUS
+                        END) "orderStatusActually",
                     QQR.RESULT_START_TIME   "queueStartTime",
                     QQR.UPDATE_TIME         "allowEnfactoryTime",
                     TWR.RESULT_GROSS_WEIGHT "grossWeight",
@@ -2004,7 +2011,15 @@
                     TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
                     TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
                     ASOM.SALE_DATE_OF_RECEIPT   "saleDateReceipt",
-                    decode(nvl(asom.WARRANTY_NUMBER,0),0,'否','是')       "isContinue",
+                    (CASE
+                        WHEN
+                        ASOM.WARRANTY_NUMBER IS NULL
+                        THEN '否'
+                        WHEN ASOM.WARRANTY_NUMBER IS NOT NULL AND ASOM.PREVIOUS_ORDER_NUMBER IS NULL
+                        THEN '否'
+                        WHEN ASOM.WARRANTY_NUMBER IS NOT NULL AND ASOM.PREVIOUS_ORDER_NUMBER IS NOT NULL
+                        THEN '是'
+                        end)      "isContinue",
                     aso.BUSINESS_DATE           "insertUploadTime",
                     (CASE WHEN
                         ASM.IS_POUND_SALE = 0
@@ -2237,7 +2252,15 @@
                     </if>
                     <if test="isContinueList != null and isContinueList.size > 0">
                         and <foreach collection="isContinueList" item="item" open="(" separator="or" close=")">
-                        decode(nvl(asom.WARRANTY_NUMBER,0),0,'否','是') like '%${item}%'
+                        (CASE
+                        WHEN
+                        ASOM.WARRANTY_NUMBER IS NULL
+                        THEN '否'
+                        WHEN ASOM.WARRANTY_NUMBER IS NOT NULL AND ASOM.PREVIOUS_ORDER_NUMBER IS NULL
+                        THEN '否'
+                        WHEN ASOM.WARRANTY_NUMBER IS NOT NULL AND ASOM.PREVIOUS_ORDER_NUMBER IS NOT NULL
+                        THEN '是'
+                        end)  like '%${item}%'
                     </foreach>
                     </if>
                     <if test="spellNumList != null and spellNumList.size > 0">
@@ -2279,6 +2302,17 @@
                         END) like '%${item}%'
                     </foreach>
                     </if>
+                    <if test="orderStatusActuallyList != null and orderStatusActuallyList.size > 0">
+                        and <foreach collection="orderStatusActuallyList" item="item" open="(" separator="or" close=")">
+                        (CASE WHEN
+                        OO.ORDER_STATUS = 2 and TTR.ORDER_STATUS = '已出厂'
+                        THEN '已完成'
+                        WHEN TTR.ORDER_STATUS IS NULL
+                        THEN '未派发'
+                        ELSE TTR.ORDER_STATUS
+                        END) like '%${item}%'
+                    </foreach>
+                    </if>
                     <if test="addressPlaceList != null and addressPlaceList.size > 0">
                         and <foreach collection="addressPlaceList" item="item" open="(" separator="or" close=")">
                         RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
@@ -3057,6 +3091,7 @@
                         ASM.MATERIAL_NUMBER "materialNum",
                         ASM.EAS_PRIMARY_ID "closeEntryId",
                         ASM.DELETED "deletedStatus",
+                        aso.BUSINESS_TYPE   "inwardSteelType",
                         RC.CONSIGNEE_COMPANY_NAME "consigneeName",
                         ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
                         RS.SHIPPER_NAME "shipperName",
@@ -3445,6 +3480,7 @@
         ASO.SALE_NUMBER "saleOrderNo",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
         ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
+        ASO.SALE_ORDER_STATUS   "saleOrderStatus",
         ASM.MATERIAL_NUMBER "materialNumber",
         ASM.TRANSFER_IN_OF_WAREHOUSE    "saleRemarkByasm",
         ASM.MATERIAL_NUMBER "materialNum",
@@ -4126,6 +4162,10 @@
         "notSendNum",
         NVL("notEnNum",0) "notEnNum",
         NVL("EnNum",0) "EnNum",
+        NVL("enFactoryNum",0) "enFactoryNum",
+        NVL("queueNum",0) "queueNum",
+        NVL("receivedNum",0) "receivedNum",
+        NVL("unReceiveNum",0) "unReceiveNum",
         (CASE NVL("orderNum",0)
              WHEN 0 THEN
                  'NAL'
@@ -4135,6 +4175,7 @@
         NVL("numGong",0) "numGong",
         NVL("numCang",0) "numCang",
         NVL("totalNet",0) "totalNet",
+        NVL("materialThoWeight",0) "materialThoWeight",
         decode("target",'钢材达州组',1,'钢材万州组',2,'钢材南充组',3,'钢材西安组',4,'钢材重庆组',5,'钢材成都组',6,'钢材工程组',7,
         '钢材广安组',8,'钢材巴中组',9,10) "no"
         FROM
@@ -4144,8 +4185,13 @@
         T1."planNum",T1."orderNum",T1."quxiaoNum",
         T1."planNum"-"orderNum" "notSendNum",
         T1."notEnNum",T1."EnNum",
+        T1."receivedNum",
+        T1."enFactoryNum",
+        T1."queueNum",
+        T1."unReceiveNum",
         T2 ."num" "numGong" ,T3 ."num" "numCang",
-        T1."totalNet"
+        T1."totalNet",
+        T1."materialThoWeight"
         FROM
         (
         SELECT
@@ -4155,8 +4201,13 @@
         COUNT(DISTINCT OO .ORDER_ID) "orderNum",--运单总数
         COUNT(DISTINCT OO_QUXIAO .ORDER_ID) "quxiaoNum",--取消运单数
         COUNT(DISTINCT OO_NOT_EN .ORDER_ID) "notEnNum",--未进场数量
+        COUNT(DISTINCT OO_ENFACTORY.ORDER_ID) "enFactoryNum",--已进厂数量
+        COUNT(DISTINCT OO_QUEUE.ORDER_ID) "queueNum",--排队中数量
+        COUNT(DISTINCT OO_RECEIVED.ORDER_ID) "receivedNum",--已接单数量
+        COUNT(DISTINCT OO_UN_RECEIVE.ORDER_ID) "unReceiveNum",--未接收数量
         COUNT(DISTINCT OO_EN .ORDER_ID) "EnNum",--进场待装数量
-        SUM(TWR.RESULT_NET_WEIGHT) "totalNet"--总净重
+        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
@@ -4176,6 +4227,46 @@
         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
+        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_ENFACTORY ON OO_ENFACTORY.ORDER_ID = OO.ORDER_ID
         LEFT JOIN
         (
         --未进场
@@ -4199,19 +4290,16 @@
          aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
         AND RC.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5,7)
         AND ASO.SALE_TYPE = 1
         AND ASO.SALE_ORDER_ISSELF_MENTION='否'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS 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-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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM .TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T1
@@ -4241,21 +4329,18 @@
         aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
         AND RC.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        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 ASO.SALE_ORDER_ISSELF_MENTION='否'
         AND RRP.UNLOAD_TYPE = '工地'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS 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-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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
@@ -4285,21 +4370,18 @@
         aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
         AND RC.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        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 ASO.SALE_ORDER_ISSELF_MENTION='否'
         AND RRP.UNLOAD_TYPE = '库房'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS 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-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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"
@@ -4309,9 +4391,14 @@
         T1."planNum"-"orderNum" "notSendNum",
         NVL("notEnNum",0) "notEnNum",
         NVL("EnNum",0) "EnNum",
+        NVL("enFactoryNum",0) "enFactoryNum",
+        NVL("queueNum",0) "queueNum",
+        NVL("receivedNum",0) "receivedNum",
+        NVL("unReceiveNum",0) "unReceiveNum",
         T2 ."num" "numGong" ,
         T3 ."num" "numCang",
-        T1."totalNet"
+        T1."totalNet",
+        T1."materialThoWeight"
         FROM
         (
         --查询自提
@@ -4323,7 +4410,12 @@
         COUNT(DISTINCT OO_QUXIAO .ORDER_ID) "quxiaoNum",--取消运单数
         COUNT(DISTINCT OO_NOT_EN .ORDER_ID) "notEnNum",--未进场数量
         COUNT(DISTINCT OO_EN .ORDER_ID) "EnNum",--进场待装数量
-        SUM(TWR.RESULT_NET_WEIGHT) "totalNet"--总净重
+        COUNT(DISTINCT OO_ENFACTORY.ORDER_ID) "enFactoryNum",--已进厂数量
+        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
@@ -4343,6 +4435,50 @@
         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
+        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_ENFACTORY ON OO_ENFACTORY.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN
+        (
         --未进场
         SELECT OO.ORDER_ID
         FROM OMSTRUCK_ORDER OO
@@ -4363,20 +4499,17 @@
         WHERE
         aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        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 ASO.SALE_ORDER_ISSELF_MENTION='是'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS 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-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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM .TRANSFER_OUT_OF_WAREHOUSE
         ) T1
@@ -4406,21 +4539,18 @@
          aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
         AND RC.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        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 ASO.SALE_ORDER_ISSELF_MENTION='是'
         AND RRP.UNLOAD_TYPE = '工地'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS NULL
         <if test="startDate != 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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND ASM.SALE_ORDER_ID != -1
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE
         ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
@@ -4450,21 +4580,18 @@
         aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
         AND RC.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        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 ASO.SALE_ORDER_ISSELF_MENTION='是'
         AND RRP.UNLOAD_TYPE = '库房'
         AND ASM.SALE_MATERIAL_ID IS NOT NULL
-        AND ASM.DELETED IS NULL
         <if test="startDate != 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 NVL(ASOM.WARRANTY_NUMBER,0) = 0
-            or
-            to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-2,'yyyy-mm-dd'),'yyyy-mm-dd')
-            AND NVL(ASOM.WARRANTY_NUMBER,0) = 1)
+            AND ASM.SALE_ORDER_ID != -1
+            AND (NVL(ASOM.WARRANTY_NUMBER,0) = 0
+            or (NVL(ASOM.WARRANTY_NUMBER,0) = 1 and asom.PREVIOUS_ORDER_NUMBER is null))
         </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE
         ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"