|
@@ -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() {
|