luobang 2 gadi atpakaļ
vecāks
revīzija
1289958865

+ 28 - 7
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -781,8 +781,9 @@ public class StatisticalReportController extends BaseRESTfulController {
     @PostMapping("/getSaleSteelSpellingReport")
     public RESTfulResult getSaleSteelSpellingReport(@RequestBody(required=false) Map<String,Object> map
     ){
-        String startTime = (String)map.get("startTime");
-        String endTime = (String) map.get("endTime");
+        String startTime = map.get("startTime").toString();
+        String endTime =  map.get("endTime").toString();
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
         //分页数据
         List<Map<String, Object>> report = statisticalReportService.getSaleSteelSpellingReport(map);
         //初始化Map的值
@@ -792,6 +793,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map1.put("chengDuSpellingData",0);//成都
         map1.put("gongChengSpellingData",0);//工程
         map1.put("chaungDongSpellingData",0);//川东
+        map1.put("zitiSpellingData",0);
         map1.put("AllSpellingData",0);//合计
         Map<String,Object> map2=new HashMap<>();//
         map2.put("pinZhuang",null);
@@ -799,6 +801,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map2.put("chengDuSpellingData",0);
         map2.put("gongChengSpellingData",0);
         map2.put("chaungDongSpellingData",0);
+        map2.put("zitiSpellingData",0);
         map2.put("AllSpellingData",0);
         Map<String,Object> map3=new HashMap<>();
         map3.put("pinZhuang",null);
@@ -806,6 +809,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map3.put("chengDuSpellingData",0);
         map3.put("gongChengSpellingData",0);
         map3.put("chaungDongSpellingData",0);
+        map3.put("zitiSpellingData",0);
         map3.put("AllSpellingData",0);
         Map<String,Object> map4=new HashMap<>();
         map4.put("pinZhuang",null);
@@ -813,6 +817,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map4.put("chengDuSpellingData",0);
         map4.put("gongChengSpellingData",0);
         map4.put("chaungDongSpellingData",0);
+        map4.put("zitiSpellingData",0);
         map4.put("AllSpellingData",0);
         Map<String,Object> map5=new HashMap<>();
         map5.put("pinZhuang",null);
@@ -820,6 +825,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map5.put("chengDuSpellingData",0);
         map5.put("gongChengSpellingData",0);
         map5.put("chaungDongSpellingData",0);
+        map5.put("zitiSpellingData",0);
         map5.put("AllSpellingData",0);
         Map<String,Object> map6=new HashMap<>();
         map6.put("pinZhuang",null);
@@ -827,6 +833,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map6.put("chengDuSpellingData",0);
         map6.put("gongChengSpellingData",0);
         map6.put("chaungDongSpellingData",0);
+        map6.put("zitiSpellingData",0);
         map6.put("AllSpellingData",0);
         Map<String,Object> map7=new HashMap<>();
         map7.put("pinZhuang",null);
@@ -834,6 +841,7 @@ public class StatisticalReportController extends BaseRESTfulController {
         map7.put("chengDuSpellingData",0);
         map7.put("gongChengSpellingData",0);
         map7.put("chaungDongSpellingData",0);
+        map7.put("zitiSpellingData",0);
         map7.put("AllSpellingData",0);
         //35个数据
         List<Map<String,Object>> spellingData=new LinkedList<>();
@@ -853,7 +861,11 @@ public class StatisticalReportController extends BaseRESTfulController {
         spellingData.get(5).put("pinZhuang","六拼");
         spellingData.get(6).put("pinZhuang","合计");
         for (Map<String, Object> item : report) {
+
             String areaName=""+item.get("areaName");
+            if("是".equals(item.get("isSelfMention"))) {
+                areaName = "自提";
+            }
             int speNum=Integer.parseInt(""+item.get("speNum"));
             int total=Integer.parseInt(""+item.get("total"));
             //过滤无片区、拼装不在1-6之间的数据
@@ -861,16 +873,19 @@ public class StatisticalReportController extends BaseRESTfulController {
                 continue;
             }
             if(areaName.contains("重庆")){
-                spellingData.get(speNum-1).put("chongQinSpellingData",total);
+                spellingData.get(speNum-1).put("chongQinSpellingData",total + Integer.parseInt(spellingData.get(speNum-1).get("chongQinSpellingData").toString()));
                 spellingData.get(speNum-1).put("AllSpellingData",total+(int) spellingData.get(speNum-1).get("AllSpellingData"));
             }else if(areaName.contains("成都")){
-                spellingData.get(speNum-1).put("chengDuSpellingData",total);
+                spellingData.get(speNum-1).put("chengDuSpellingData",total + Integer.parseInt(spellingData.get(speNum-1).get("chengDuSpellingData").toString()));
                 spellingData.get(speNum-1).put("AllSpellingData",total+(int) spellingData.get(speNum-1).get("AllSpellingData"));
             }else if(areaName.contains("工程")){
-                spellingData.get(speNum-1).put("gongChengSpellingData",total);
+                spellingData.get(speNum-1).put("gongChengSpellingData",total + Integer.parseInt(spellingData.get(speNum-1).get("gongChengSpellingData").toString()));
                 spellingData.get(speNum-1).put("AllSpellingData",total+(int) spellingData.get(speNum-1).get("AllSpellingData"));
-            }else if(areaName.contains("川东")){
-                spellingData.get(speNum-1).put("chaungDongSpellingData",total);
+            }else if(areaName.contains("达州组") || areaName.contains("南充") || areaName.contains("广安组") || areaName.contains("万州组") || areaName.contains("西安")){
+                spellingData.get(speNum-1).put("chaungDongSpellingData",total + Integer.parseInt(spellingData.get(speNum-1).get("chaungDongSpellingData").toString()));
+                spellingData.get(speNum-1).put("AllSpellingData",total+(int) spellingData.get(speNum-1).get("AllSpellingData"));
+            }else if(areaName.contains("自提")) {
+                spellingData.get(speNum-1).put("zitiSpellingData",total + Integer.parseInt(spellingData.get(speNum-1).get("zitiSpellingData").toString()));
                 spellingData.get(speNum-1).put("AllSpellingData",total+(int) spellingData.get(speNum-1).get("AllSpellingData"));
             }
         }
@@ -880,17 +895,20 @@ public class StatisticalReportController extends BaseRESTfulController {
         int threeData=0;
         int fourData=0;
         int fiveData=0;
+        int sixData = 0;
         for (int i = 0; i < spellingData.size(); i++) {
             oneData+=(int) spellingData.get(i).get("chongQinSpellingData");
             twoData+=(int) spellingData.get(i).get("chengDuSpellingData");
             threeData+=(int) spellingData.get(i).get("gongChengSpellingData");
             fourData+=(int) spellingData.get(i).get("chaungDongSpellingData");
             fiveData+=(int) spellingData.get(i).get("AllSpellingData");
+            sixData += (int) spellingData.get(i).get("zitiSpellingData");
         }
         spellingData.get(6).put("chongQinSpellingData",oneData);
         spellingData.get(6).put("chengDuSpellingData",twoData);
         spellingData.get(6).put("gongChengSpellingData",threeData);
         spellingData.get(6).put("chaungDongSpellingData",fourData);
+        spellingData.get(6).put("zitiSpellingData",sixData);
         spellingData.get(6).put("AllSpellingData",fiveData);
         return success(spellingData);
     }
@@ -1298,6 +1316,9 @@ public class StatisticalReportController extends BaseRESTfulController {
     @ApiOperation("欠运力统计表")
     @PostMapping("yawnReport")
     public RESTfulResult yawnReport(@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);//根据时间段查询数据
         return success(statisticalReportService.yawnReport(map));
     }
 }

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

@@ -124,4 +124,7 @@ public interface StatisticalReportMapper {
     List<Map<String, Object>> saleSteelReportContinue(Map<String, Object> map);
 
     List<Map<String, Object>> yawnReport(Map<String, Object> map);
+
+    BigDecimal getSpellNum(BigDecimal saleOrderMaterialId);
+
 }

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

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.gson.JsonObject;
 import com.steerinfo.dil.mapper.StatisticalReportMapper;
 import com.steerinfo.dil.service.IStatisticalReportService;
@@ -266,17 +267,25 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         HashSet<Map<String,Object>> filtermaterialSpe = new HashSet<>();
         HashSet<Map<String,Object>> filterSaleRemark = new HashSet<>();
         HashSet<Map<String,Object>> filterTruckRemark = new HashSet<>();
+        HashSet<Map<String,Object>> filterAreaName = new HashSet<>();
         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);
+
             }else{
                 if((saleSteelReport.get(j-1).get("saleOrderMaterialId")).equals(stringObjectMap.get("saleOrderMaterialId"))){
                     stringObjectMap.put("group",saleSteelReport.get(j-1).get("group"));
+                    //stringObjectMap.put("spellNum",saleSteelReport.get(j-1).get("spellNum"));
                 }else{
                     stringObjectMap.put("group",Integer.parseInt(saleSteelReport.get(j-1).get("group").toString()) + 1);
+                    //BigDecimal spellNum = statisticalReportMapper.getSpellNum(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
+                    //stringObjectMap.put("spellNum",spellNum);
                 }
             }
             set.add(stringObjectMap.get("saleOrderMaterialId"));
@@ -326,6 +335,11 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             filterTruckRemarkMap.put("text",stringObjectMap.get("truckRemark"));
             filterTruckRemarkMap.put("value",stringObjectMap.get("truckRemark"));
             filterTruckRemark.add(filterTruckRemarkMap);
+            //片区筛选
+            Map<String,Object> filterAreaNameMap = new HashMap<>();
+            filterAreaNameMap.put("text",stringObjectMap.get("areaName"));
+            filterAreaNameMap.put("value",stringObjectMap.get("areaName"));
+            filterAreaName.add(filterAreaNameMap);
             totalNumber += Integer.parseInt(stringObjectMap.get("materialNum").toString());
             String capacityNumbers= (String) stringObjectMap.get("capacityNumbers");
             //确认是否有多个收货单位
@@ -374,6 +388,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             saleSteelReport.get(0).put("filterCarrierList",filterCarrierList);
             saleSteelReport.get(0).put("filterSaleRemark",filterSaleRemark);
             saleSteelReport.get(0).put("filterTruckRemark",filterTruckRemark);
+            saleSteelReport.get(0).put("filterAreaName",filterAreaName);
 
         }
         return saleSteelReport;
@@ -491,13 +506,27 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         return saleSteelReport;
     }
 
+    private static void sortListByDate(List<JSONObject> list) {
+        Collections.sort(list, new Comparator<JSONObject>() {
+            // list 排序, 根据age字段进行排序
+            public int compare(JSONObject a, JSONObject b) {
+                if (a.getDouble("age") >= b.getDouble("age")) {
+                    // -1为倒叙, 1为正序
+                    return -1;
+                } else {
+                    return 1;
+                }
+            }
+        });
+    }
+
     @Override
     public List<Map<String, Object>> steelTransportReport(Map<String, Object> map) {
         //查询出来的结果是根据省(承运方向)、市(承运线路)、承运商、运单状态来分组,不含自提车辆,默认查询时间为昨天八点到今天早上八点
         List<Map<String, Object>> saleSteelReport = statisticalReportMapper.steelTransportReport(map);
         //再查询今天继续装的归在昨天
-        List<Map<String,Object>> saleSteelReportContinue = statisticalReportMapper.saleSteelReportContinue(map);
-        saleSteelReport.addAll(saleSteelReportContinue);
+        //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有省、市、承运商、运单状态
@@ -507,6 +536,9 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             stringObjectMap.put("unEnfactory",0);
             stringObjectMap.put("unArragePlanTruckNumber",0);
             stringObjectMap.put("actuallyFinish",0);
+            if ("是".equals(stringObjectMap.get("isSelfMention"))){
+                stringObjectMap.put("carrier","自提");
+            }
             if(i == 0) {
                 if(stringObjectMap.get("orderStatusByOrder") != null) {
                     stringObjectMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
@@ -614,10 +646,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
     }
 
     public List<Map<String, Object>> yawnReport(Map<String, Object> map){
-        Date startTime=new Date((long)map.get("startTime"));
-        Date endTime=new Date((long)map.get("endTime"));
-        map.put("startTime",startTime);
-        map.put("endTime",endTime);
+
         return statisticalReportMapper.yawnReport(map);
     }
 }

+ 167 - 55
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -1934,6 +1934,7 @@
        SELECT * FROM (
              SELECT distinct OO.ORDER_ID "orderId",
                     ASO.SALE_ORDER_ID "saleOrderId",
+                    ASM.TRANSFER_OUT_OF_WAREHOUSE "areaName",
                     to_char(ASM.SALE_MAKE_DATE,'yyyy-mm-dd HH24:mi')  "saleMakeDate",
                     to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
                     ASO.INSERT_UPDATE_REMARK "saleOrderInertUpdateRemark",
@@ -2002,6 +2003,8 @@
                     TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
                     TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
                     ASOM.SALE_DATE_OF_RECEIPT   "saleDateReceipt",
+                    decode(nvl(asom.WARRANTY_NUMBER,0),0,'否','是')       "isContinue",
+                    aso.BUSINESS_DATE           "insertUploadTime",
                     (CASE WHEN
                         ASM.IS_POUND_SALE = 0
                         THEN NULL
@@ -2017,7 +2020,6 @@
                         ) "capacityNumbers",
                     NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
                     OO.ORDER_STATUS              "carStatus",
-                    RSA.AREA_NAME "areaName",
                     OO.INSERT_UPDATE_REMARK "orderInsertUpdateRemark",
                     TAR.INSERT_TIME "arrivalTime",
                     TRR.INSERT_TIME "receiptTime",
@@ -2078,7 +2080,13 @@
                     THEN ' '
                     WHEN TLFR.INSERT_TIME IS NULL THEN ' '
                     END)
-                                                                  "orderStatus"
+                                                                  "orderStatus",
+                    (SELECT count(asm.SALE_MATERIAL_ID)  FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+                    LEFT JOIN AMS_SALE_MATERIAL ASM
+                    ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+                    WHERE ASM.SALE_MATERIAL_ID IS NOT NULL
+                    AND   ASM.DELETED IS NULL
+                    AND   ASTM.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) "spellNum"
                     FROM AMS_SALE_ORDER ASO
                     LEFT JOIN RMS_CONSIGNEE RC
                               ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
@@ -2205,6 +2213,21 @@
                         RSA.AREA_NAME like '%${item}%'
                     </foreach>
                     </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}%'
+                    </foreach>
+                    </if>
+                    <if test="spellNumList != null and spellNumList.size > 0">
+                        and <foreach collection="spellNumList" item="item" open="(" separator="or" close=")">
+                        (SELECT count(asm.SALE_MATERIAL_ID)  FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+                        LEFT JOIN AMS_SALE_MATERIAL ASM
+                        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+                        WHERE ASM.SALE_MATERIAL_ID IS NOT NULL
+                        AND   ASM.DELETED IS NULL
+                        AND   ASTM.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) like '%${item}%'
+                    </foreach>
+                    </if>
                     <if test="orderStatusList != null and orderStatusList.size > 0">
                         and <foreach collection="orderStatusList" item="item" open="(" separator="or" close=")">
                         (CASE
@@ -2289,11 +2312,13 @@
         SELECT
         "areaName",
         "speNum",
+        "isSelfMention",
         COUNT("orderId") "total"
         FROM (
         SELECT
         ASM.TRANSFER_OUT_OF_WAREHOUSE "areaName",
         OO .ORDER_ID "orderId",
+        ASO.SALE_ORDER_ISSELF_MENTION "isSelfMention",
         COUNT(ASOM.SALE_ORDER_MATERIAL_ID) "speNum"
         FROM AMS_SALE_ORDER ASO
         LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
@@ -2304,19 +2329,28 @@
         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_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
         AND NVL(OO.ORDER_TYPE, 0) in (0, 1)
         WHERE ASO.SALE_TYPE = 1
-        AND OO.ORDER_STATUS IN (4,5,2)
+        AND (OO.ORDER_STATUS = 2 or OO.ORDER_STATUS = 5 and ttr.ORDER_STATUS = '已出厂')
         AND ASO.DELETED = 0
+        AND ASO.SALE_ORDER_STATUS = 4
         and ASM.SALE_MATERIAL_ID IS NOT NULL
+        and asm.DELETED is null
         <if test="startTime != null">
-            and to_date(#{startTime},'yyyy-mm-dd hh24:mi:ss') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-            and to_date(#{endTime}, 'yyyy-mm-dd hh24:mi:ss') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+            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)
         </if>
-        GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE,OO .ORDER_ID
+        GROUP BY  ASO.SALE_ORDER_ISSELF_MENTION,ASM.TRANSFER_OUT_OF_WAREHOUSE,OO .ORDER_ID
         )
-        GROUP BY "areaName","speNum"
-        ORDER BY "areaName","speNum"
+        GROUP BY "isSelfMention","areaName","speNum"
+        ORDER BY "isSelfMention","areaName","speNum"
     </select>
 
     <select id="getSaleSteelReportNew" resultType="java.util.Map" parameterType="java.util.Map">
@@ -3912,11 +3946,12 @@
         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",
         OO.ORDER_STATUS "orderStatusByOrder",
         TTR.ORDER_STATUS "orderStatusByResult"
         FROM
-        AMS_SALE_ORDER ASO
-        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        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 where astm.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) > 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
@@ -3925,32 +3960,32 @@
         AND NVL( OO.ORDER_TYPE, 0 ) IN ( 0, 1 )
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
         WHERE
-        ASO.SALE_ORDER_ISSELF_MENTION = '否'
-        AND NVL(OO.CAPACITY_ID,0) != 35128
-        AND (
-        aso.DELETED = 2
-        AND aso.SALE_ORDER_STATUS = 4
-        OR aso.DELETED = 0
+         NVL(OO.CAPACITY_ID,0) != 35128
+        AND  aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
-        )
         AND R_CARRIER.CARRIER_ABBREVIATION IS NOT NULL
-        AND NVL(ASOM.WARRANTY_NUMBER,0) = 0
         AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
         AND ASO.SALE_TYPE = 1
         <if test="oneDate != 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>
         <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)
         </if>
         GROUP BY
         RRA.ADDRESS_PROVINCE,
         RRA.ADDRESS_DISTRICT|| RRA.ADDRESS_TOWN,
         R_CARRIER.CARRIER_ABBREVIATION,
         OO.ORDER_STATUS,
-        TTR.ORDER_STATUS
-        ORDER BY RRA.ADDRESS_PROVINCE,R_CARRIER.CARRIER_ABBREVIATION
+        TTR.ORDER_STATUS,
+        ASO.SALE_ORDER_ISSELF_MENTION
+        ORDER BY ASO.SALE_ORDER_ISSELF_MENTION,RRA.ADDRESS_PROVINCE,R_CARRIER.CARRIER_ABBREVIATION
     </select>
     <select id="getNoSaleterialIdWeight" resultType="java.util.Map">
         SELECT DISTINCT OO.ORDER_ID "orderId",
@@ -4008,14 +4043,8 @@
         WHERE
         ASO.SALE_ORDER_ISSELF_MENTION = '否'
         AND NVL(OO.CAPACITY_ID,0) != 35128
-        AND (
-        aso.DELETED BETWEEN 1
-        AND 2
+        AND aso.DELETED = 0
         AND aso.SALE_ORDER_STATUS = 4
-        OR aso.DELETED = 0
-        AND aso.SALE_ORDER_STATUS BETWEEN 0
-        AND 4
-        )
         AND R_CARRIER.CARRIER_ABBREVIATION IS NOT NULL
         AND NVL(ASOM.WARRANTY_NUMBER,0) = 1
         AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
@@ -4112,13 +4141,26 @@
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_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
-        WHERE TLFR .RESULT_ID IS NULL AND TER .RESULT_ID IS NOT NULL AND OO.CAPACITY_ID!=35128 AND OO . ORDER_TYPE= 1
+        WHERE TLFR.RESULT_OUT_GATE_TIME IS NULL AND TER.RESULT_ENTRY_GATE_TIME IS NOT NULL AND OO.CAPACITY_ID!=35128 AND OO . ORDER_TYPE= 1
         ) OO_EN ON OO_EN .ORDER_ID = OO .ORDER_ID
         WHERE
-        ASO .DELETED=0
+         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 ASO.SALE_TYPE = 1
         AND ASO.SALE_ORDER_ISSELF_MENTION='否'
-        and #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        and #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM .TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T1
         LEFT JOIN
@@ -4144,12 +4186,25 @@
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
         WHERE
-        ASO .DELETED=0
-        AND OO.ORDER_TYPE = 1
+        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 ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
         AND ASO.SALE_ORDER_ISSELF_MENTION='否'
         AND RRP.UNLOAD_TYPE = '工地'
-        AND #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        AND #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
         LEFT JOIN
@@ -4175,18 +4230,28 @@
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
         WHERE
-        ASO .DELETED=0
-        AND OO.ORDER_TYPE = 1
+        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 ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
         AND ASO.SALE_ORDER_ISSELF_MENTION='否'
         AND RRP.UNLOAD_TYPE = '库房'
-        AND #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        AND #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE,RC.CARRIER_ABBREVIATION
         ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"
-
-
         UNION
-
         SELECT T1."target",T1."carrierName",
         T1."planNum",T1."orderNum",T1."quxiaoNum",
         T1."planNum"-"orderNum" "notSendNum",
@@ -4241,13 +4306,26 @@
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR .ORDER_ID = OO .ORDER_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
-        WHERE TLFR .RESULT_ID IS NULL AND TER .RESULT_ID IS NOT NULL AND OO.CAPACITY_ID!=35128 AND OO . ORDER_TYPE= 1
+        WHERE TLFR.RESULT_OUT_GATE_TIME IS NULL AND TER .RESULT_ENTRY_GATE_TIME IS NOT NULL AND OO.CAPACITY_ID!=35128 AND OO . ORDER_TYPE= 1
         ) OO_EN ON OO_EN .ORDER_ID = OO .ORDER_ID
         WHERE
-        ASO .DELETED=0
+        aso.DELETED = 0
+        AND aso.SALE_ORDER_STATUS = 4
+        AND NVL(OO.ORDER_STATUS,0) IN (0,2,4,5)
+        AND ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
         AND ASO.SALE_ORDER_ISSELF_MENTION='是'
-        and #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        and #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM .TRANSFER_OUT_OF_WAREHOUSE
         ) T1
         LEFT JOIN
@@ -4273,12 +4351,25 @@
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
         WHERE
-        ASO .DELETED=0
-        AND OO.ORDER_TYPE = 1
+         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 ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN(0,1)
         AND ASO.SALE_ORDER_ISSELF_MENTION='是'
         AND RRP.UNLOAD_TYPE = '工地'
-        AND #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        AND #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE
         ) T2 ON T1 ."target" = T2."target" AND T1."carrierName" = 	T2."carrierName"
         LEFT JOIN
@@ -4304,15 +4395,36 @@
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_PLAN_ID=ASOM.SALE_ORDER_MATERIAL_ID
         WHERE
-        ASO .DELETED=0
-        AND OO.ORDER_TYPE = 1
+        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 ASO.SALE_TYPE = 1
+        AND NVL(OO.ORDER_TYPE,0) IN (0,1)
         AND ASO.SALE_ORDER_ISSELF_MENTION='是'
         AND RRP.UNLOAD_TYPE = '库房'
-        AND #{startTime} &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
-        AND #{endTime} >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+        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(#{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)
+        </if>
         GROUP BY ASM.TRANSFER_OUT_OF_WAREHOUSE
         ) T3 ON T1 ."target" = T3."target" AND T1."carrierName" = 	T3."carrierName"
         )
         ORDER BY "no","carrierName"
     </select>
+    <select id="getSpellNum" resultType="java.math.BigDecimal" parameterType="decimal">
+        SELECT count(asm.SALE_MATERIAL_ID)  FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        WHERE ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND   ASM.DELETED IS NULL
+        AND   ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
 </mapper>