| 
					
				 | 
			
			
				@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.xml.crypto.Data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -373,30 +374,6 @@ public class StatisticalReportImpl implements IStatisticalReportService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return saleSteelReport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Set<Map<String, Object>> setListMap(List<Map<String, Object>> list, String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Set<Map<String, Object>> setString = new HashSet<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (Map<String, Object> map : list) {//遍历每条数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<String, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //map.get(name)获取每条数据中对应表头字段的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            map1.put("text", map.get(name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (map.get(name) != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                map1.put("value", map.get(name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                setString.add(map1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return setString; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //public PageListAdd tableColumnData(Integer apiId, List<Map<String, Object>> list, List<Map<String,Object>> data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //    for (Map<String, Object> columnData : columnDataList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //        //每个表头字段的过滤条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //        columnData.put("filters", setListMap(data, columnData.get("prop").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //    PageListAdd pageList = new PageListAdd(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //    pageList.setColumnData(columnDataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //    return pageList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<Map<String, Object>> getSaleSteelSpellingReport(Map<String, Object> mapValue) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -511,9 +488,100 @@ public class StatisticalReportImpl implements IStatisticalReportService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @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>> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i=0 ;i < saleSteelReport.size();i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //map里面key有省、市、承运商、运单状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, Object> stringObjectMap  = saleSteelReport.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringObjectMap.put("arrageTruckNumber",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringObjectMap.put("enFactoryLoading",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringObjectMap.put("unEnfactory",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringObjectMap.put("unArragePlanTruckNumber",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringObjectMap.put("actuallyFinish",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(i == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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(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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mapList.add(stringObjectMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<String,Object> spanMap = mapList.get(mapList.size() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //判断如果承运方向和承运商相同,就需要进行处理,否则加进数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String carrierDirection = spanMap.get("carrierDirection").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String carrierDirection1 = stringObjectMap.get("carrierDirection").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String carrier = spanMap.get("carrier").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String carrier1 = stringObjectMap.get("carrier").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(carrier.compareTo(carrier1) == 0 && carrierDirection.compareTo(carrierDirection1) == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //首先,将承运线路拼进来 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(!spanMap.get("carrierLine").toString().contains(stringObjectMap.get("carrierLine").toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        spanMap.put("carrierLine",spanMap.get("carrierLine") + "、" + stringObjectMap.get("carrierLine")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //然后计算销售下达计划车数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    spanMap.put("planTruckNumber",DataChange.dataToBigDecimal(spanMap.get("planTruckNumber")).intValue() + DataChange.dataToBigDecimal(stringObjectMap.get("planTruckNumber")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //计算承运商安排运力数(不含取消) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //未进厂是订单状态为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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //未进厂是订单状态为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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mapList.add(stringObjectMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return saleSteelReport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return mapList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public int testTb() { 
			 |