luobang 2 år sedan
förälder
incheckning
e2294022ec

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

@@ -1191,7 +1191,6 @@ public class StatisticalReportController extends BaseRESTfulController {
                                                   String remark,
                                                   String capacityNo,
                                                   String consigneeName
-
     ){
         DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
         if (remark != null && !"".equals(remark) && !"null".equals(remark)) {

+ 52 - 39
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -302,8 +302,13 @@ public class StatisticalReportImpl implements IStatisticalReportService {
             filterCarrierList.add(filterCarrierMap);
             //车牌号筛选
             Map<String,Object> filterCapacityMap = new HashMap<>();
-            filterCapacityMap.put("text",stringObjectMap.get("newCapacityNo"));
-            filterCapacityMap.put("value",stringObjectMap.get("newCapacityNo"));
+            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<>();
@@ -531,6 +536,13 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         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("savePlanTruckNumber",0);
+            //提交
+            stringObjectMap.put("submitPlanTruckNumber",0);
             //首先未派发
             stringObjectMap.put("unArragePlanTruckNumber",0);
             //已派发
@@ -556,7 +568,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                 stringObjectMap.put("carrier","自提");
             }
             if(i == 0) {
-                if(stringObjectMap.get("orderStatusByOrder") != null) {
+                if(stringObjectMap.get("orderStatusByOrder") != null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
                     //已派单就是2,4,5
                     stringObjectMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                     //已接单就是状态为5且未排队、未进厂、未出厂的
@@ -579,22 +591,18 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                     if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
                         stringObjectMap.put("finishEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                     }
-                    ////进厂待装是进了厂,排队中的,且订单状态为5的
-                    //if(DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5
-                    //        && ("排队中".equals(stringObjectMap.get("orderStatusByResult")) || "已进厂".equals(stringObjectMap.get("orderStatusByResult")))){
-                    //    stringObjectMap.put("enFactoryLoading",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
-                    //}
-                    //if(DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 4 ||
-                    //        (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5 && "已接收".equals(stringObjectMap.get("orderStatusByResult")))){
-                    //    stringObjectMap.put("unEnfactory",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
-                    //    //已该条件去查询,那些未进厂是什么情况
-                    //    //List<Map<String,Object>> remarkList =
-                    //}
-                    //stringObjectMap.put("actuallyFinish",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() -
-                    //        DataChange.dataToBigDecimal(stringObjectMap.get("enFactoryLoading")).intValue() -
-                    //        DataChange.dataToBigDecimal(stringObjectMap.get("unEnfactory")).intValue());
+                }else if(stringObjectMap.get("orderStatusByOrder") == null && saleOrderStatus.compareTo(new BigDecimal(4)) == 0){
+                    stringObjectMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                 }else{
-                    stringObjectMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("unArragePlanTruckNumber")).intValue());
+                    if(saleOrderStatus.compareTo(new BigDecimal(0)) == 0) {
+                        stringObjectMap.put("noUploadPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(1)) == 0) {
+                        stringObjectMap.put("savePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    if(saleOrderStatus.compareTo(new BigDecimal(2)) == 0) {
+                        stringObjectMap.put("submitPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
                 }
                 mapList.add(stringObjectMap);
             }else{
@@ -612,7 +620,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                     //然后计算销售下达计划车数
                     spanMap.put("planTruckNumber",DataChange.dataToBigDecimal(spanMap.get("planTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                     //计算承运商安排运力数(不含取消)
-                    if(stringObjectMap.get("orderStatusByOrder") != null) {
+                    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());
@@ -633,24 +641,21 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                         if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
                             spanMap.put("finishEd",DataChange.dataToBigDecimal(spanMap.get("finishEd")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                         }
-                        ////进厂待装是进了厂,排队中的,且订单状态为5的
-                        //if(DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5
-                        //        && ("排队中".equals(stringObjectMap.get("orderStatusByResult")) || "已进厂".equals(stringObjectMap.get("orderStatusByResult")))){
-                        //    spanMap.put("enFactoryLoading",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() + DataChange.dataToBigDecimal(spanMap.get("enFactoryLoading")).intValue());
-                        //}
-                        ////未进厂是订单状态为4或者已接收
-                        //if(DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 4 ||
-                        //        (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5 && "已接收".equals(stringObjectMap.get("orderStatusByResult")))){
-                        //    spanMap.put("unEnfactory",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() + DataChange.dataToBigDecimal(spanMap.get("unEnfactory")).intValue());
-                        //}
-                        //spanMap.put("actuallyFinish",DataChange.dataToBigDecimal(spanMap.get("planTruckNumber")).intValue() -
-                        //        DataChange.dataToBigDecimal(spanMap.get("enFactoryLoading")).intValue() -
-                        //        DataChange.dataToBigDecimal(spanMap.get("unEnfactory")).intValue());
-                    }else{
+                    }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());
+                    }else{
+                        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(1)) == 0) {
+                            spanMap.put("savePlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("savePlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if(saleOrderStatus.compareTo(new BigDecimal(2)) == 0) {
+                            spanMap.put("submitPlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("submitPlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
                     }
                 }else{
-                    if(stringObjectMap.get("orderStatusByOrder") != null) {
+                    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());
@@ -684,14 +689,22 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                         //stringObjectMap.put("actuallyFinish",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() -
                         //        DataChange.dataToBigDecimal(stringObjectMap.get("enFactoryLoading")).intValue() -
                         //        DataChange.dataToBigDecimal(stringObjectMap.get("unEnfactory")).intValue());
-                    }else{
-                    stringObjectMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("unArragePlanTruckNumber")).intValue());
-                }
+                    }else if(saleOrderStatus.compareTo(new BigDecimal(4)) == 0) {
+                        stringObjectMap.put("unArragePlanTruckNumber", DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    } else {
+                        if(saleOrderStatus.compareTo(new BigDecimal(0)) == 0) {
+                            stringObjectMap.put("noUploadPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if(saleOrderStatus.compareTo(new BigDecimal(1)) == 0) {
+                            stringObjectMap.put("savePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if(saleOrderStatus.compareTo(new BigDecimal(2)) == 0) {
+                            stringObjectMap.put("submitPlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                    }
                     mapList.add(stringObjectMap);
                 }
             }
-
-
         }
         return mapList;
     }

+ 43 - 7
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -1945,6 +1945,7 @@
                     ASM.EAS_PRIMARY_ID "closeEntryId",
                     ASM.STEEL_METER "steelMeters",
                     ASM.DELETED "deletedStatus",
+                    decode(asm.DELETED,null,'正常','关闭') "flStatus",
                     RC.CONSIGNEE_COMPANY_NAME "consigneeName",
                     ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
                     RS.SHIPPER_NAME "shipperName",
@@ -2139,12 +2140,16 @@
                               ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_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="remark != null" >
                         and  RSR.SALER_NAME || RCA.CAPACITY_NUMBER ||
-                             RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION ||
+                             RC.CONSIGNEE_COMPANY_NAME || (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+                        THEN '自提'
+                        ELSE R_CARRIER.CARRIER_ABBREVIATION
+                        END) ||
                              RM.MATERIAL_NAME || RM.MATERIAL_MODEL ||
                              RM.MATERIAL_SPECIFICATION || (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
                         THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
@@ -2179,7 +2184,7 @@
                             RCA.CAPACITY_NUMBER is null
                         </if>
                         <if test="item != null">
-                            RCA.CAPACITY_NUMBER like '%${item}%'
+                            nvl(RCA.CAPACITY_NUMBER,'空白') like '%${item}%'
                         </if>
                     </foreach>
                     </if>
@@ -2196,6 +2201,11 @@
                          RC.CONSIGNEE_COMPANY_NAME 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}%'
+                    </foreach>
+                    </if>
                     <if test="carrierNames != null">
                         and (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
                         THEN '自提'
@@ -3236,6 +3246,7 @@
     <select id="getInwardSaleSteelOrder" resultType="java.util.Map">
         SELECT * FROM (SELECT DISTINCT
                            ASO.SALE_ORDER_ID "saleOrderId",
+                           ASM.EAS_PRIMARY_ID   "flId",
                            ASM.SALE_MATERIAL_ID "saleMaterialId",
                            ASO.SALE_NUMBER "saleOrderNo",
                            ASM.MATERIAL_NUMBER "materialNum",
@@ -3285,9 +3296,14 @@
                                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.MATERIAL_ID = ASM.MATERIAL_ID
+                                        AND TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
                        WHERE
                            ASO.SALE_TYPE = 4
                          AND ASO.DELETED = 0
+                         AND ASM.DELETED IS NULL
+                         AND ASM.SALE_MATERIAL_ID IS NOT NULL
+                         AND ASM.SALE_ORDER_ID != -1
+                         AND TPAR.SEND_STATION_ID IS NOT NULL
                          AND rc.CONSIGNEE_COMPANY_NAME IS NOT NULL
         <if test="oneDate != null">
             and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = ASO.INSERT_TIME
@@ -3308,6 +3324,15 @@
         <if test="consigneeNames != null">
             and RC.CONSIGNEE_COMPANY_NAME like #{consigneeNames}
         </if>
+        <if test="sendStation != null">
+            and RAS.ARRIVAL_NAME like '%${sendStation}%'
+        </if>
+        <if test="materialSpe != null">
+            and RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL like '%${materialSpe}%'
+        </if>
+        <if test="materialName != null">
+            and RM.MATERIAL_NAME like '%${materialName}%'
+        </if>
         ORDER BY
         ASO.SALE_ORDER_ID DESC,
         oo.ORDER_ID DESC)
@@ -3961,11 +3986,17 @@
         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 where astm.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) > 0
+        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
@@ -3976,9 +4007,7 @@
         WHERE
          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(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')
@@ -3990,16 +4019,23 @@
             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) = 1
+            AND ASOM.PREVIOUS_ORDER_NUMBER IS NOT NULL
+            OR
+             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) = 1
+            AND ASOM.PREVIOUS_ORDER_NUMBER IS  NULL)
         </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
+        ORDER BY ASO.SALE_ORDER_ISSELF_MENTION,RRA.ADDRESS_PROVINCE,R_CARRIER.CARRIER_ABBREVIATION,aso.SALE_ORDER_STATUS
     </select>
     <select id="getNoSaleterialIdWeight" resultType="java.util.Map">
         SELECT DISTINCT OO.ORDER_ID "orderId",

+ 1 - 1
src/main/resources/log4j.properties

@@ -1,5 +1,5 @@
 ## LOG4J配置
-log4j.rootCategory=INFO,file, RUNNING,errorfile
+log4j.rootCategory=INFO,file, RUNNING,errorfile,stdout
 ## 控制台输出
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout