luobang %!s(int64=2) %!d(string=hai) anos
pai
achega
bd5925696c

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

@@ -531,31 +531,68 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         for (int i=0 ;i < saleSteelReport.size();i++) {
             //map里面key有省、市、承运商、运单状态
             Map<String, Object> stringObjectMap  = saleSteelReport.get(i);
+            //首先未派发
+            stringObjectMap.put("unArragePlanTruckNumber",0);
+            //已派发
             stringObjectMap.put("arrageTruckNumber",0);
+            //已派单
+            stringObjectMap.put("dispatchOrderEd",0);
+            //已接单
+            stringObjectMap.put("receivedOrder",0);
+            //排队中
+            stringObjectMap.put("queueOrder",0);
+            //已进厂
+            stringObjectMap.put("enFactoryEd",0);
+            //已出厂
+            stringObjectMap.put("outFactoryEd",0);
+            //已完成
+            stringObjectMap.put("finishEd",0);
+            //进厂带状
             stringObjectMap.put("enFactoryLoading",0);
             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) {
+                    //已派单就是2,4,5
                     stringObjectMap.put("arrageTruckNumber",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());
+                    //已接单就是状态为5且未排队、未进厂、未出厂的
+                    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")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                        stringObjectMap.put("receivedOrder",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 =
+                    if ("排队中".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                        stringObjectMap.put("queueOrder",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                     }
-                    stringObjectMap.put("actuallyFinish",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() -
-                            DataChange.dataToBigDecimal(stringObjectMap.get("enFactoryLoading")).intValue() -
-                            DataChange.dataToBigDecimal(stringObjectMap.get("unEnfactory")).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("outFactoryEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                    }
+                    //已完成
+                    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{
                     stringObjectMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(stringObjectMap.get("unArragePlanTruckNumber")).intValue());
                 }
@@ -577,38 +614,76 @@ public class StatisticalReportImpl implements IStatisticalReportService {
                     //计算承运商安排运力数(不含取消)
                     if(stringObjectMap.get("orderStatusByOrder") != null) {
                         spanMap.put("arrageTruckNumber",DataChange.dataToBigDecimal(spanMap.get("arrageTruckNumber")).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());
+                        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")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5) {
+                            spanMap.put("receivedOrder",DataChange.dataToBigDecimal(spanMap.get("receivedOrder")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).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());
+                        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());
                         }
-                        spanMap.put("actuallyFinish",DataChange.dataToBigDecimal(spanMap.get("planTruckNumber")).intValue() -
-                                DataChange.dataToBigDecimal(spanMap.get("enFactoryLoading")).intValue() -
-                                DataChange.dataToBigDecimal(spanMap.get("unEnfactory")).intValue());
+                        if ("已进厂".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                            spanMap.put("enFactoryEd",DataChange.dataToBigDecimal(spanMap.get("enFactoryEd")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
+                        }
+                        if ("已出厂".equals(stringObjectMap.get("orderStatusByResult")) && DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 5){
+                            spanMap.put("outFactoryEd",DataChange.dataToBigDecimal(spanMap.get("outFactoryEd")).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());
+                        }
+                        ////进厂待装是进了厂,排队中的,且订单状态为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{
                         spanMap.put("unArragePlanTruckNumber",DataChange.dataToBigDecimal(spanMap.get("unArragePlanTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                     }
                 }else{
                     if(stringObjectMap.get("orderStatusByOrder") != null) {
                         stringObjectMap.put("arrageTruckNumber",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 ("已派单".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")) && 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("outFactoryEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).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());
+                        //已完成
+                        if (DataChange.dataToBigDecimal(stringObjectMap.get("orderStatusByOrder")).intValue() == 2) {
+                            stringObjectMap.put("finishEd",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue());
                         }
-                        stringObjectMap.put("actuallyFinish",DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue() -
-                                DataChange.dataToBigDecimal(stringObjectMap.get("enFactoryLoading")).intValue() -
-                                DataChange.dataToBigDecimal(stringObjectMap.get("unEnfactory")).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());
+                        //}
+                        ////未进厂是订单状态为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());
+                        //}
+                        //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());
                 }

+ 2 - 3
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -2143,7 +2143,7 @@
                         and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
                     </if>
                     <if test="remark != null" >
-                        (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+                        and (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
                         THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
                         RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
                         || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
@@ -2151,8 +2151,7 @@
                         ELSE
                         RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
                         RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
-                        END)
-                                LIKE #{remark}
+                        END) LIKE #{remark}
                     </if>
                     <if test="easPrimaryId != null">
                         and ASM.EAS_PRIMARY_ID = #{easPrimaryId}