From 0843f9b1526b7680f5cd419cf1f2d2fff44562ee Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 25 十二月 2024 18:39:39 +0800
Subject: [PATCH] 代码初始化

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java |  763 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 712 insertions(+), 51 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index bc83623..7bb3f9e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1,5 +1,7 @@
 package com.doumee.service.business.impl.thrid;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
@@ -14,8 +16,12 @@
 import com.doumee.core.haikang.model.param.respose.*;
 import com.doumee.core.haikang.service.HKCarOpenService;
 import com.doumee.core.haikang.service.HKService;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
+import com.doumee.core.tms.model.TMSContants;
+import com.doumee.core.tms.model.request.TmsFacrotyCodeListRequest;
+import com.doumee.core.tms.model.request.TmsOrderNoFinishListRequest;
+import com.doumee.core.tms.model.request.TmsOutQtyAndVehicleQtyRequest;
+import com.doumee.core.tms.model.request.TmsSevenArrivalDetailsRequest;
+import com.doumee.core.tms.model.response.*;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
@@ -29,8 +35,8 @@
 import com.doumee.dao.web.reqeust.CarsJobAndContractDTO;
 import com.doumee.dao.web.response.platformReport.*;
 import com.doumee.service.business.impl.PlatformJobServiceImpl;
-import com.doumee.service.business.impl.VisitsServiceImpl;
 import com.doumee.service.business.third.BoardService;
+import com.doumee.service.business.third.TmsService;
 import com.doumee.service.business.third.WmsService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -38,6 +44,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -63,6 +70,8 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
+    private TmsFactoryParamMapper tmsFactoryParamMapper;
+    @Autowired
     private PlatformWarnEventJoinMapper platformWarnEventJoinMapper;
     @Autowired
     private PlatformJobMapper platformJobMapper;
@@ -80,6 +89,11 @@
     private RetentionMapper retentionMapper;
     @Autowired
     private PlatformGroupMapper platformGroupMapper;
+    @Autowired
+    private TmsService tmsService;
+
+    @Value("${debug_model}")
+    private Boolean isDebug;
     /**
      * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
      * @return
@@ -124,7 +138,10 @@
                         .apply("to_days(done_date) = to_days(now())") );
                 if(jobs!=null){
                     for(PlatformJob j :jobs){
-                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                        if(Objects.nonNull(j)&&Objects.nonNull(j.getTotalNum())){
+                            num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                        }
+
                     }
                 }
             }else{
@@ -138,7 +155,9 @@
                                 , Constants.PlatformJobStatus.LEAVED.getKey()) );
                 if(jobs!=null){
                     for(PlatformJob j :jobs){
-                        num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                        if(Objects.nonNull(j)&&Objects.nonNull(j.getTotalNum())){
+                            num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
+                        }
                     }
                 }
             }
@@ -521,7 +540,6 @@
         BaseResponse<CamerasPreviewURLsResponse> result = HKService.cameraPreviewURLs(request);
         if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
             return result.getData().getUrl();
-
         }
         return null;
     }
@@ -578,7 +596,7 @@
         param.setPage(1);
         param.setUserId("admin");
 //        param.setRegionIndexCodes("root000000");
-        param.setAlarmStartTime(DateUtil.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1)));
+        param.setAlarmStartTime(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") + " 00:00:00");
         param.setAlarmEndTime(DateUtil.getPlusTime2(new Date()));
         param.setPageSize(20);
         BaseResponse<BaseListPageResponse<FindHomeAlarmInfoPageResponse>> response = HKService.findHomeAlarmInfoPage(param);
@@ -605,9 +623,14 @@
         MinitorDataSearchRequest param = new MinitorDataSearchRequest();
         param.setResourceTypeCodes(new String[]{});
         param.setRegionIndexCode("root000000");
+        param.setResourceTypeCodes("60,61".split(","));
         param.setIncludeDown("1");
         param.setUserId("admin");
+        param.setPageNo(1);
+        param.setPageSize(100);
         BaseResponse<BaseListPageResponse<MonitorDataSearchResponse>> response = HKService.minitorDataSearch(param);
+        String pressure = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_PRESSURE_LEVEL).getCode();
+        String liquid = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_LIQUID_LEVEL).getCode();
         if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
                 && response.getData()!=null ) {
             List<MonitorDataSearchResponse> r = response.getData().getList();
@@ -615,17 +638,37 @@
                 for(MonitorDataSearchResponse model : r){
                     MonitorDataVO m = new MonitorDataVO();
                     m.setName(model.getName());
+                    m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure);
                     m.setDataList(new ArrayList<>());
                     if(model.getValues()!=null){
+                        List<MonitorDataInfoVO> dataList = new ArrayList<>();
                         for(MonitorDataValResponse v : model.getValues()){
-                            MonitorDataInfoVO vm = new MonitorDataInfoVO();
-                            vm.setValue(v.getMonitorValue());
-                            vm.setCateName(v.getMonitorSpecificName());
-                            vm.setCateCode(v.getMonitorTypeKey());
-                            vm.setTypeCode(v.getMonitorTypeCode());
-                            vm.setTypeName(v.getMonitorTypeName());
+                            if(Constants.equalsInteger(model.getType(),60)){
+                                if(v.getMonitorTypeCode().equals("254001")){
+                                    MonitorDataInfoVO vm = new MonitorDataInfoVO();
+                                    vm.setValue(v.getMonitorValue());
+                                    vm.setCateName(v.getMonitorSpecificName());
+                                    vm.setCateCode(v.getMonitorTypeKey());
+                                    vm.setTypeCode(v.getMonitorTypeCode());
+                                    vm.setTypeName(v.getMonitorTypeName());
+                                    dataList.add(vm);
+                                }
+                            }else{
+                                if(v.getMonitorTypeCode().equals("253958")){
+                                    MonitorDataInfoVO vm = new MonitorDataInfoVO();
+                                    vm.setValue(v.getMonitorValue());
+                                    vm.setCateName(v.getMonitorSpecificName());
+                                    vm.setCateCode(v.getMonitorTypeKey());
+                                    vm.setTypeCode(v.getMonitorTypeCode());
+                                    vm.setTypeName(v.getMonitorTypeName());
+                                    dataList.add(vm);
+                                }
+                            }
+
                         }
+                        m.setDataList(dataList);
                     }
+                    list.add(m);
                 }
             }
         }
@@ -671,6 +714,7 @@
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
                         .selectAs(PlatformJob::getCreateDate,PlatformJob::getCreateDate)
                         .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
+                        .selectAs(PlatformJob::getStatus,PlatformJob::getStatus)
 //                        .select("select sum(io_qty) from platform_wms_details a where a.isdeleted=0 and a.job_id=t.id",create_date)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .apply(queryType==0,"to_days(create_date) >= to_days(now()) -7")
@@ -1009,7 +1053,7 @@
                     .isNotNull(PlatformLog::getParam3)
                     .ne(PlatformLog::getParam3,Constants.ZERO+""));
             if(platformLogList!=null && platformLogList.size()>0){
-                return new BigDecimal((double)(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum))/(double)60);
+                return new BigDecimal((double)(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum))/(double)3600);
             }
         }
         return r;
@@ -1065,10 +1109,11 @@
                    //濡傛灉鏄湪绾挎垨鑰呬紤鐪狅紝鏌ヨ鍦ㄩ�旇繕鏄┖闂瞭y
                     codes.add(model.getPlateNum());
                     model.setJobStatus(Constants.ZERO);
-                }else
+                }else{
                     model.setJobStatus(Constants.TWO);
                     data.setOfflineNum(data.getOfflineNum()+1);
                 }
+            }
             if(codes.size()>0){
                 //鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�
                 List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda()
@@ -1226,7 +1271,13 @@
                             temperatureHumidityDataResponseList.stream().filter(i->i.getIndexCode().indexOf(code)>=Constants.ZERO).collect(Collectors.toList());
                     TemperatureHumidityDataVO temperatureHumidityDataVO = new TemperatureHumidityDataVO();
                     for (TemperatureHumidityDataResponse data:dateList) {
-                        if(data.getSensorType().equals("temp")){
+                        if(StringUtils.isNotBlank(data.getName())){
+                            Integer index = data.getName().indexOf("-");
+                            if(index>=0){
+                                data.setName(data.getName().substring(0,index));
+                            }
+                        }
+                        if(data.getSensorType().equals("currTemperature")){
                             temperatureHumidityDataVO.setTemperatureData(data);
                         }else{
                             temperatureHumidityDataVO.setHumidityData(data);
@@ -1247,8 +1298,8 @@
      */
     @Override
     public  EnergyBoardVO centerEnergyData(){
-        EnergyBoardVO data = new EnergyBoardVO();
-        Random random = new Random();
+       EnergyBoardVO data = new EnergyBoardVO();
+       Random random = new Random();
        PlatformWaterGas smoke=  platformWaterGasMapper.selectOne(new QueryWrapper<PlatformWaterGas>()
                  .select("sum(num) as num")
                 .lambda()
@@ -1265,17 +1316,22 @@
         BigDecimal carbonWater = new BigDecimal(0);//鏈湀鐢ㄦ按
         BigDecimal carbonElec = new BigDecimal(0);//鐢ㄧ數
 
+        data.setYesterdayElectricity(getDefaultData());//鏄ㄦ棩鐢ㄧ數
         data.setTodayElectricity(getDefaultData());//浠婃棩鐢ㄧ數
         data.setElectricityQuantity(getDefaultData());//涓婃湀鐢ㄧ數
-        data.setWaterQuantity(getDefaultData());//涓婃湀鐢ㄦ按
-        data.setGasQuantity(getDefaultData());//涓婃湀鐢ㄦ皵
         data.setMonthElectricity(getDefaultData());//鏈湀鐢ㄧ數
-        data.setYesterdayElectricity(getDefaultData());//鏄ㄦ棩鐢ㄧ數
+
+
         getMonthElectricityData(data.getMonthElectricity());//閫氳繃瀹夐槻骞宠幏鍙栨湰鏈堢敤鐢甸噺鏁版嵁
         carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0"));
+
         getLastMonthElectricityData(data.getElectricityQuantity());//閫氳繃瀹夐槻骞宠幏鍙栦笂鏈堢敤鐢甸噺鏁版嵁
-        getCurrentDateElectircityData(data.getTodayElectricity(),0);//閫氳繃瀹夐槻骞宠幏鍙栦粖鏃ョ敤鐢甸噺鏁版嵁
         getCurrentDateElectircityData(data.getYesterdayElectricity(),-1);//閫氳繃瀹夐槻骞宠幏鍙栨槰鏃ョ敤鐢甸噺鏁版嵁
+        getCurrentDateElectircityData(data.getTodayElectricity(),0);//閫氳繃瀹夐槻骞宠幏鍙栦粖鏃ョ敤鐢甸噺鏁版嵁
+
+        data.setWaterQuantity(getDefaultData());//涓婃湀鐢ㄦ按
+        data.setGasQuantity(getDefaultData());//涓婃湀鐢ㄦ皵
+        carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0"));
         String firstDate = DateUtil.getFirstDayCurrentMonth() +" 00:00:00";
         Date month0 = DateUtil.getDateFromString(firstDate);
         Date month1 = DateUtil.increaseMonth(month0,-1);//涓婃湀
@@ -1326,8 +1382,14 @@
         }
         if( data.getGasQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
             //璁$畻鐢ㄦ皵鍚屾瘮鐜瘮
-            data.getGasQuantity().setSameRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getSameNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"");
-            data.getGasQuantity().setRingRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +"");
+            data.getGasQuantity().setSameRate(
+                    (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getSameNum())).divide(data.getGasQuantity().getSameNum()).doubleValue()*100 +""
+                    /*Constants.formatBigdecimal4Float(data.getGasQuantity().getSameNum()
+                            .divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +""*/);
+            data.getGasQuantity().setRingRate(
+                    (data.getGasQuantity().getTotalNum().subtract(data.getGasQuantity().getRingNum())).divide(data.getGasQuantity().getRingNum()).doubleValue()*100 +""
+                    //Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum(),4,BigDecimal.ROUND_HALF_UP)).doubleValue()*100 +""
+            );
         }
         if( data.getWaterQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
             // //璁$畻鐢ㄦ按鍚屾瘮鐜瘮
@@ -1364,36 +1426,94 @@
      * @param data
      */
     private void getLastMonthElectricityData(EnergyModelDataVO data) {
-         BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1");
-        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
-           data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0"));
-           data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0"));
-           data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0"));
+//         BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1");
+//        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+//           data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0"));
+//           data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0"));
+//           data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0"));
+//        }
+//        String nowMonth = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd");
+//        //涓婃湀鏃ユ湡
+//        DateUtil.getBeforMonthStr(new Date(),1);
+//        //涓婁笂鏈堟棩鏈�
+//        DateUtil.getBeforMonthStr(new Date(),2);
+//        //涓婂勾鏃ユ湡
+//        DateUtil.getBeforMonthStr(new Date(),13);
+
+        EnergyTotalDataRequest param = new EnergyTotalDataRequest();
+        param.setPeriodType("month");
+        param.setDate(DateUtil.getBeforMonthStr(new Date(),1).substring(0,7));
+        BaseResponse<EnergyTotalDataResponse> beforMonthResponse = HKService.energyTotal(param);
+        if(beforMonthResponse != null && StringUtils.equals(beforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforMonthResponse.getData()!=null ){
+            data.setTotal(beforMonthResponse.getData().getElectricity());
+            data.setTotalNum(new BigDecimal(beforMonthResponse.getData().getElectricity()));
+        }
+        param.setDate(DateUtil.getBeforMonthStr(new Date(),2).substring(0,7));
+        BaseResponse<EnergyTotalDataResponse> beforBeforMonthResponse = HKService.energyTotal(param);
+        if(beforBeforMonthResponse != null && StringUtils.equals(beforBeforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){
+            if(Objects.nonNull(beforBeforMonthResponse.getData()) && StringUtils.isNotBlank(beforBeforMonthResponse.getData().getElectricity())){
+                data.setRingNum(new BigDecimal(beforBeforMonthResponse.getData().getElectricity()));
+            }else{
+                data.setRingNum(BigDecimal.ZERO);
+            }
+            if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getRingNum())
+                    || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0  || data.getRingNum().compareTo(BigDecimal.ZERO) ==0 ){
+               data.setRingRate("0");
+            }else{
+               data.setRingRate(new BigDecimal(data.getTotal()).divide(data.getRingNum(),2,BigDecimal.ROUND_HALF_UP).toString());
+            }
+        }
+        param.setDate(DateUtil.getBeforMonthStr(new Date(),13).substring(0,7));
+        BaseResponse<EnergyTotalDataResponse> beforYearMonthResponse = HKService.energyTotal(param);
+        if(beforYearMonthResponse != null && StringUtils.equals(beforYearMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){
+            if(Objects.nonNull(beforYearMonthResponse.getData()) && StringUtils.isNotBlank(beforYearMonthResponse.getData().getElectricity())){
+                data.setSameNum(new BigDecimal(beforYearMonthResponse.getData().getElectricity()));
+            }else{
+                data.setSameNum(BigDecimal.ZERO);
+            }
+            if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getSameNum())
+                    || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0  || data.getSameNum().compareTo(BigDecimal.ZERO) ==0 ){
+                data.setSameRate("0");
+            }else{
+                data.setSameRate(new BigDecimal(data.getTotal()).divide(data.getSameNum(),2,BigDecimal.ROUND_HALF_UP).toString());
+            }
         }
     }
+
+
+
+
 
     /**
      * 閫氳繃瀹夐槻骞宠幏鍙栦粖鏃ョ敤鐢甸噺
      * @param data
      */
     private void getCurrentDateElectircityData(EnergyModelDataVO data,int days) {
-        EnergyTrendRequest param = new EnergyTrendRequest();
-        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));//鏃ユ湡
-        param.setMeterType(1);
-        param.setShowType("4");
-        param.setNodeType(2);
-        param.setNodeId("root000000");
+//        EnergyTrendRequest param = new EnergyTrendRequest();
+//        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));//鏃ユ湡
+//        param.setMeterType(1);
+//        param.setShowType("4");
+//        param.setNodeType(2);
+//        param.setNodeId("root000000");
+//        param.setPeriodType("day");
+//        BigDecimal total = new BigDecimal(0);
+//        BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param);
+//        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
+//                && response.getData()!=null&& response.getData().getYvalues()!=null ){
+//            for (int i = 0; i < response.getData().getYvalues().get(0).getValue().length; i++) {
+//                total = total.add(new BigDecimal(StringUtils.defaultString( response.getData().getYvalues().get(0).getValue()[i],"0")));
+//            }
+//
+//        }
+//        data.setTotal(Constants.formatBigdecimal2Float(total).toString());
+        EnergyTotalDataRequest param = new EnergyTotalDataRequest();
         param.setPeriodType("day");
-        BigDecimal total = new BigDecimal(0);
-        BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param);
-        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
-                && response.getData()!=null&& response.getData().getYvalues()!=null ){
-            for (int i = 0; i < response.getData().getYvalues().get(0).getValue().length; i++) {
-                total = total.add(new BigDecimal(StringUtils.defaultString( response.getData().getYvalues().get(0).getValue()[i],"0")));
-            }
-
+        param.setDate(DateUtil.getFomartDate(DateUtil.addDaysToDate(new Date(),days),"yyyy-MM-dd"));
+        BaseResponse<EnergyTotalDataResponse> beforMonthResponse = HKService.energyTotal(param);
+        if(beforMonthResponse != null && StringUtils.equals(beforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforMonthResponse.getData()!=null ){
+            data.setTotal(beforMonthResponse.getData().getElectricity());
+            data.setTotalNum(new BigDecimal(beforMonthResponse.getData().getElectricity()));
         }
-        data.setTotal(Constants.formatBigdecimal2Float(total).toString());
     }
 
     private EnergyModelDataVO getDefaultData() {
@@ -1420,7 +1540,6 @@
         }
         if(data == null){
             data = new RegionEnergyListResponse();
-            data.setSecondRegionDataList(new ArrayList<>());
             data.setRootValue("0");
             data.setSamePercent("0");
             data.setRingPercent("0");
@@ -1463,7 +1582,7 @@
                     .last(" group by DATE_FORMAT(TIME_INFO,'%Y-%m')")
             );
             for (int i = 0; i < 12; i++) {
-                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
+                Date tempDate = DateUtil.increaseMonth(lastMonth,i);    
                 EnergyDataVO data = new EnergyDataVO();
                 data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
                 data.setEnergy(new BigDecimal(0));
@@ -1480,7 +1599,8 @@
             for (int i = 0; i < 12; i++) {
                 Date tempDate = DateUtil.increaseMonth(lastMonth,i);
                 EnergyDataVO data = new EnergyDataVO();
-                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"鏈�"));
+                data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
+//                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"鏈�"));
                 data.setEnergy(new BigDecimal(0));
                 energyDataVOList.add(data);
             }
@@ -1597,7 +1717,7 @@
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count()
         );
         //鍦ㄥ洯杞﹁締
-        data.setInternalCarTotal(
+        data.setInParkCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
         );
         //鍦ㄥ洯鐩稿叧鏂硅溅杈�
@@ -1665,18 +1785,23 @@
         if(platformList!=null && platformList.size()>0){
             List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                     .selectAll( PlatformJob.class)
+//                    .selectAs(Platform::getCode,PlatformJob::getPlatformCode)
                     .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+"  order by pl.CREATE_DATE desc  limit 1  ) as newStartDate")
                     //.select(" (  select sum(ifnull(pl.IO_QTY , 0 ))   from platform_wms_detail pl  where   pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum)
                     .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else t.total_num end )",PlatformJob::getWorkNum)
-                    .apply("to_days(t.create_date) = to_days(now())")
+//                    .apply("to_days(t.create_date) = to_days(now())")
                     .eq(Platform::getIsdeleted, Constants.ZERO)
                     .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() })
-                    .orderByDesc(PlatformJob::getStatus ));
+//                    .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+                    .orderByDesc(PlatformJob::getStatus )
+                    .orderByAsc(PlatformJob::getId )
+            );
             //鏈堝彴鐘舵�侊細0=浣滀笟涓紱1=绌洪棽涓紱2=浣滀笟瓒呮椂;3=鍙彿
             for(Platform model : platformList){
                 PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO();
                 platformDurationVO.setPlatformName(model.getName());
                 platformDurationVO.setPlatformId(model.getId());
+                platformDurationVO.setPlatformCode(model.getCode());
                 platformDurationVO.setPlatformSort(model.getSortnum());
                 PlatformJob job = getJobFromListById(model.getId(),jobList);
                 if(job != null){
@@ -1771,6 +1896,9 @@
                 curtotalNum += Constants.formatIntegerNum(workEfficiencyVO.getWorkNum()) ;
             }
             workEfficiencyVO.setTotalWorkNum(curtotalNum);//绱鍊�
+            if(System.currentTimeMillis() < curTime){
+                workEfficiencyVO.setTotalWorkNum(0);
+            }
             workEfficiencyVOList.add(workEfficiencyVO);
         }
         return workEfficiencyVOList;
@@ -1876,6 +2004,7 @@
                     data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum()));
                     data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum()));
                     data.setWorkedNum(data.getWorkedNum()+Constants.formatIntegerNum(model.getCountum()));
+                     data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
                 }
                 // 浣滀笟瀹屾垚锛堥绾﹁溅銆佺鍒版暟銆佸凡鍙彿銆佷綔涓氳溅銆佸凡瀹屾垚锛�
                 if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
@@ -1901,7 +2030,7 @@
                 }
                 // 宸茬鍥�
                 if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())){
-                    data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
+                    // data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum()));
                 }
                 // 宸茶繃鍙凤紙棰勭害杞︺�佺鍒版暟銆佹帓闃熻溅锛�
                 if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.OVER_NUMBER.getKey())){
@@ -1926,4 +2055,536 @@
         return  data;
     }
 
+    /**
+     * 鏌ヨ鑳借�楃敤鐢典俊鎭�  1=浠婃棩锛�2=鏈湀锛�3=鏄ㄦ棩
+     * @return
+     */
+    @Override
+    public List<RegionDataRankingDataResponse> getRegionDataRanking(Integer type){
+        RegionDataRankingDataRequest request = new RegionDataRankingDataRequest();
+        request.setMeterType(1);
+        if(Constants.equalsInteger(type,Constants.ONE)){
+            request.setDate(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"));
+            request.setPeriodType("day");
+        }else if(Constants.equalsInteger(type,Constants.TWO)){
+            request.setDate(DateUtil.getFomartDate(new Date(),"yyyy-MM"));
+            request.setPeriodType("month");
+        }else{
+            request.setDate(DateUtil.getBeforDay(new Date(),1));
+            request.setPeriodType("day");
+        }
+        BaseResponse<List<RegionDataRankingDataResponse>> response = HKService.regionDataRanking(request);
+        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+            List<RegionDataRankingDataResponse> regionDataRankingDataResponseList = new ArrayList<>();
+            for (RegionDataRankingDataResponse regionDataRankingDataResponse:response.getData()) {
+                if(StringUtils.isNotBlank(regionDataRankingDataResponse.getPercent())){
+                    if(Constants.equalsInteger(Integer.valueOf(new BigDecimal(regionDataRankingDataResponse.getPercent()).intValue()),Constants.ONE)){
+                        continue;
+                    }
+                    regionDataRankingDataResponseList.add(regionDataRankingDataResponse);
+                }
+            }
+            return regionDataRankingDataResponseList;
+        }else{
+            return null;
+        }
+    }
+    /**
+     * 鍑哄簱鑳藉姏
+     * @return
+     */
+    @Override
+    public WholeProvinceZXTVO outAbilityUseRate(){
+        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
+        result.setCurrentNum(new BigDecimal(0));
+        result.setTotalNum(new BigDecimal(0));
+        result.setUseRate(new BigDecimal(0));
+        result.setDetailList(new ArrayList<>());
+        List<TmsFactoryParam> paramList = factoryList();
+        List<WholeProvinceZxtDetailVO> list = new ArrayList<>();
+        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
+        if(paramList!=null){
+            String startDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd");
+            String endDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd");
+            if(isDebug){
+                  startDate =  "2024-12-01";
+                  endDate =   "2024-12-05";
+            }
+            for(TmsFactoryParam p : paramList){
+                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
+                t.setFactoryName(p.getName());
+                t.setCurrentNum(new BigDecimal(0));
+                t.setUseRate(new BigDecimal(0));
+                t.setTotalNum(Constants.formatBigdecimal(p.getParam3()));//8灏忔椂鍑哄簱鑳藉姏
+                if(StringUtils.isNotBlank(p.getCode())){
+                    param.setFacrotyCodeList(new ArrayList<>());
+                    param.setDateStart(startDate);
+                    param.setDateEnd(endDate);
+                    param.getFacrotyCodeList().add(p.getCode());
+                    List<TmsOutQtyAndVehicleQtyResponse> response = tmsService.getOutQtyAndVehicleQty(param);//鏌ヨ鍑哄簱閲�
+                    t.setCurrentNum(getCurrentOutQryByList(response));
+                    if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+                        t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+                    }
+                }
+                result.getDetailList().add(t);
+                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
+                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
+            }
+        }
+        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+        }
+        return result;
+    }
+    /**
+     * 鍏ㄨ韩鍑哄簱鑳藉姏
+     * @return
+     */
+    @Override
+    public  WholeProvinceBoardVO centerProvinceData(String  factoryCode){
+        WholeProvinceBoardVO data = new WholeProvinceBoardVO();
+        data.setMaxAbility(new BigDecimal(0));
+        data.setHoursAbility(new BigDecimal(0));
+        data.setCurrentPlanNum(new BigDecimal(0));
+        data.setCurrentOrderNum(new BigDecimal(0));
+        data.setCrrentRestNum(new BigDecimal(0));
+        data.setCrrentOutNum(new BigDecimal(0));
+        List<TmsFactoryParam> paramList = factoryList();
+        String code = null;
+        if(paramList!=null){
+            //澶勭悊鏈�澶у嚭搴撹兘鍔涘拰8灏忔椂鍑哄簱鑳藉姏
+            for(TmsFactoryParam param : paramList){
+                if(StringUtils.isNotBlank(factoryCode)){
+                    if(StringUtils.equals(param.getCode(),factoryCode)){
+                        data.setHoursAbility(Constants.formatBigdecimal(param.getParam3()));
+                        data.setMaxAbility(Constants.formatBigdecimal(param.getNum2()));
+                        code = param.getCode();
+                        break;
+                    }
+                }else{
+                    data.setHoursAbility(data.getHoursAbility().add(Constants.formatBigdecimal(param.getParam3())));
+                    data.setMaxAbility(data.getMaxAbility().add(Constants.formatBigdecimal(param.getNum2())));
+                }
+            }
+        }
+      /*  Date date = new Date();
+        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
+        param.setDateEnd(DateUtil.getShortTime(date));
+        param.setDateStart(DateUtil.getShortTime(date));
+        if(StringUtils.isNotBlank(code)){
+            param.setFacrotyCodeList(new ArrayList<>());
+            param.getFacrotyCodeList().add(code);//鏌ヨ鎸囧畾鍘傚尯
+        }
+        List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);
+        if(listSame!=null ){
+            for(TmsOutQtyAndVehicleQtyResponse model : listSame){
+                data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getTotalOutQty())));//浠婃棩鍑哄簱閲�
+                data.setCrrentOutCarNum(data.getCrrentOutCarNum()+(Constants.formatIntegerNum(model.getVehicleQty())));//浠婃棩鍑哄簱杞︽
+            }
+        }*/
+        initOutboundCapability(data,factoryCode);
+        return  data;
+
+    }
+    private void initOutboundCapability(WholeProvinceBoardVO data, String code) {
+        TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
+        if(StringUtils.isNotBlank(code)){
+            param.setFacrotyCodeList(new ArrayList<>());
+            param.getFacrotyCodeList().add(code);
+        }
+        TmsOutboundCapabilityResponse result=  tmsService.getOutboundCapability(param);
+        if(result !=null){
+            List<String> planCodes = new ArrayList<>();
+            List<String> todayCodes = new ArrayList<>();
+            String todayDate = DateUtil.getShortTime(new Date());
+            if(result.getCurrentDayOrderList()!=null && result.getCurrentDayOrderList().size()>0){
+                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayOrderList()){
+                    data.setCurrentOrderNum(data.getCurrentOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//浠婃棩璁㈠崟閲�
+                    /**
+                     * DISPATCH_TYPE in(1,2) 涓� TRANSPORT_CODE涓嶄负绌猴紝sum(NC_TOTALITY)  +      DISPATCH_TYPE not in(1,2) sum(NC_TOTALITY)
+                     * 	浠婃棩鍑哄簱涓嬭揪鐨勮鍒掍换鍔℃�婚噺
+                     */
+                    if(StringUtils.isNotBlank(model.getTransportCode())
+                            && (StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
+                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//浠婃棩璁㈠崟閲�
+                    }
+                    if(!(StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
+                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//浠婃棩璁″垝閲�
+                    }
+
+                    /**
+                     * 浠婃棩涓嬭揪鍑哄簱鐨勮鍒掍换鍔″搴旂殑杩愯緭杞︽鏁�
+                     * TRANSPORT_CODE涓嶄负绌篶ount(transport_code )
+                     */
+                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
+                        planCodes.add(model.getTransportCode());
+                    }
+                    /**
+                     * 浠婃棩涓嬭揪鍑哄簱鐨勮鍒掍换鍔″搴旂殑杩愯緭杞︽鏁�
+                     * TRANSPORT_CODE涓嶄负绌篶ount(transport_code )
+                     */
+                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
+                        planCodes.add(model.getTransportCode());
+                    }
+                    /**
+                     *  out_date涓哄綋鏃�,sum(NC_TOTALITY) 浠婃棩瀹屾垚鐨勫嚭搴撲綔涓氫换鍔℃�婚噺
+                     * TRANSPORT_CODE涓嶄负绌� 涓攐ut_date涓哄綋鏃� count(transport_code)  	浠婃棩瀹屾垚鐨勫嚭搴撲綔涓氫换鍔$殑杩愯緭杞︽鏁�
+                     */
+                    if(StringUtils.isNotBlank(model.getOutDate()) && model.getOutDate().length()> 10){
+                        String tDate = model.getOutDate().substring(0,10);
+                        if(tDate.equals(todayDate)){
+                            //濡傛灉鏄綋鏃�
+                            data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getNcTotality())));//浠婃棩璁㈠崟閲�
+                        }
+                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),todayCodes)){
+                            todayCodes.add(model.getTransportCode());
+                        }
+                    }
+                }
+            }
+            if(result.getCurrentDayAgoOrderList()!=null && result.getCurrentDayAgoOrderList().size()>0){
+                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayAgoOrderList()){
+                    /**
+                     * out_date涓虹┖锛宻um(NC_TOTALITY)	鏄ㄥぉ鏈畬鎴愬嚭搴撹鍒掍换鍔�
+                     * out_date涓虹┖ 涓擳RANSPORT_CODE涓嶄负绌� * count(transport_code )	鏄ㄥぉ鏈畬鎴愬嚭搴撹鍒掍换鍔¤溅娆�
+                     */
+                    if(StringUtils.isBlank(model.getOutDate())){
+                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//浠婃棩璁″垝閲�
+                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
+                            planCodes.add(model.getTransportCode());
+                        }
+                    }
+                }
+            }
+            data.setCurrentPlanCarNum(planCodes.size());//浠婃棩璁″垝杞︽
+            data.setCrrentOutCarNum(todayCodes.size());//浠婃棩鍑哄簱杞︽
+        }
+        data.setCrrentRestNum(data.getCurrentPlanNum().subtract(data.getCrrentOutNum()));
+        data.setCrrentRestCarNum(data.getCurrentPlanCarNum() -data.getCrrentOutCarNum());
+        if(data.getCrrentRestNum().compareTo(new BigDecimal(0)) <=0){
+            data.setCrrentRestNum(new BigDecimal(0));
+        }
+        if(data.getCrrentRestCarNum()<=0){
+            data.setCrrentRestCarNum(0);
+        }
+    }
+
+    private boolean notInList(String transportCode, List<String> planCodes) {
+        for(String s :planCodes){
+            if(StringUtils.equals(transportCode,s)){
+                return  false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 鍑哄簱鑳藉姏鏉庢案鍒�
+     * @return
+     */
+    @Override
+    public    TotalOutQtyNumVO totalOutQtyNum(int type,String code){
+        TotalOutQtyNumVO  data = new TotalOutQtyNumVO();
+        data.setCurrentInNum(new BigDecimal(0));
+        data.setLastInNum(new BigDecimal(0));
+        data.setSameInNum(new BigDecimal(0));
+        //---------鐪佸----------------
+        data.setCurrentOutNum(new BigDecimal(0));
+        data.setLastOutNum(new BigDecimal(0));
+        data.setSameOutNum(new BigDecimal(0));
+
+        Date sameStart = DateUtil.getBeginDayOfMonth(-1);
+        Date sameEnd = DateUtil.getEndDayOfMonth(-1);
+        Date curStart = DateUtil.getBeginDayOfMonth(0);
+        Date curEnd = DateUtil.getEndDayOfMonth(0);
+        Date lastStart = DateUtil.getBeginDayOfLastMonth();
+        Date lastEnd = DateUtil.getEndDayOfLastMonth();
+        if(type ==1){
+            //鏈懆
+            sameStart= DateUtil.getBeginDayOfWeek(-1);
+            sameEnd= DateUtil.getEndDayOfWeek(-1);
+            curStart= DateUtil.getBeginDayOfWeek(0);
+            curEnd= DateUtil.getEndDayOfWeek(0);
+            lastStart = DateUtil.getBeginDayOfLastWeek();
+            lastEnd= DateUtil.getEndDayOfLastWeek();
+        }else if(type == 2){
+            curStart= DateUtil.getBeginDayOfYear(0);
+            curEnd= DateUtil.getEndDayOfYear(0);
+            lastStart= DateUtil.getBeginDayOfYear(-1);
+            lastEnd= DateUtil.getEndDayOfYear(-1);
+            sameStart = null;
+            sameEnd =null;
+        }
+        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
+        if(StringUtils.isNotBlank(code)){
+            param.setFacrotyCodeList(new ArrayList<>());
+            param.getFacrotyCodeList().add(code);
+        }
+        if(type !=2){
+            //鏈勾鐨勪笉闇�瑕佹煡鍘诲勾鍚屽懆鏈�
+            param.setDateEnd(DateUtil.getShortTime(sameEnd));
+            param.setDateStart(DateUtil.getShortTime(sameStart));
+            List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);//鍘诲勾鍚屾湡
+            if(listSame!=null ){
+                for(TmsOutQtyAndVehicleQtyResponse model : listSame){
+                    data.setSameOutNum(data.getSameOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
+                    data.setSameInNum(data.getSameInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
+                }
+            }
+        }
+        param.setDateEnd(DateUtil.getShortTime(curEnd));
+        param.setDateStart(DateUtil.getShortTime(curStart));
+        List<TmsOutQtyAndVehicleQtyResponse> listCur =  tmsService.getOutQtyAndVehicleQty(param);//鏈懆鏈�
+        if(listCur!=null ){
+            for(TmsOutQtyAndVehicleQtyResponse model : listCur){
+                data.setCurrentOutNum(data.getCurrentOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
+                data.setCurrentInNum(data.getCurrentInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
+                data.setTotalCarNum(data.getTotalCarNum()+Constants.formatIntegerNum(model.getVehicleQty()));//绱杞︽
+            }
+        }
+        param.setDateEnd(DateUtil.getShortTime(lastEnd));
+        param.setDateStart(DateUtil.getShortTime(lastStart));
+        List<TmsOutQtyAndVehicleQtyResponse> listLast =  tmsService.getOutQtyAndVehicleQty(param);//涓婂懆鏈�
+        if(listCur!=null ){
+            for(TmsOutQtyAndVehicleQtyResponse model : listLast){
+                data.setLastOutNum(data.getLastOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())));
+                data.setLastInNum(data.getLastInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty())));
+            }
+        }
+        if(type == 2){//鏈勾鐨�
+            data.setSameOutNum(data.getLastOutNum());
+            data.setSameInNum(data.getLastInNum());
+        }
+        return data;
+    }
+    /**
+     * 鍑哄簱鑳藉姏鏉庢案鍒�
+     * @return
+     */
+    @Override
+    public    List<WholeProvinceMapVO> mapYearAndMonthOutList(String code){
+        List<WholeProvinceMapVO> result = new ArrayList<>();
+        TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
+        if(StringUtils.isNotBlank(code)){
+            param.setFacrotyCodeList(new ArrayList<>());
+            param.getFacrotyCodeList().add(code);
+        }
+        List<TmsDistributionOfDeliveryLocResponse> response  = tmsService.getDistributionOfDeliveryLocations(param);//鏌ヨ鍑哄簱閲�
+        if(response!=null &&response.size()>0){
+            for(TmsDistributionOfDeliveryLocResponse model : response){
+                WholeProvinceMapVO tt = getFromProvinceResultList(model ,result);
+                if(tt == null){
+                    tt =new WholeProvinceMapVO();
+                    tt.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()));
+                    tt.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()));
+                    tt.setProvinceCode(model.getToProvinceCode());
+                    tt.setProvinceName(model.getToProvinceName());
+                    result.add(tt);
+                }
+            }
+        }
+        return result;
+    }
+
+    private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) {
+        for(WholeProvinceMapVO t : result){
+            if(StringUtils.equals(t.getProvinceCode(), model.getToProvinceCode())){
+                t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).add(Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity())));
+                t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).add(Constants.formatBigdecimal0Float(model.getYearOutboundQuantity())));
+                return   t;
+            }
+        }
+
+        return  null;
+    }
+
+    /**
+     * 鍑哄簱鑳藉姏鏉庢案鍒�
+     * @return
+     */
+    @Override
+    public     List<TmsFactoryParam> factoryList(){
+        List<TmsFactoryParam> paramList = tmsFactoryParamMapper.selectList(new QueryWrapper<TmsFactoryParam>().lambda()
+                .eq(TmsFactoryParam::getIsdeleted,Constants.ZERO)
+                .orderByAsc(TmsFactoryParam::getSortnum));
+        return paramList;
+    }
+    /**
+     * 鑾峰彇鏈畬鎴愯鍗曢泦鍚�
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   TmsBasePageResponse<TmsOrderNoFinishListResponse>  orderNoFinishList(TmsOrderNoFinishListRequest param){
+        TmsBasePageResponse<TmsOrderNoFinishListResponse> infoList =   tmsService.getNotFinishOrderList(param);//鏌ヨ鍑哄簱閲�
+     /*    if(infoList!=null && infoList.getRows()!=null){
+            for(TmsOrderNoFinishListResponse model :infoList.getRows()){
+                model.setStatusDesc(TMSContants.TopStatusLevel.getNameByKey(TMSContants.ChildStatusLevel.getParentIndexByStatus(model.getStatus())));
+
+            }
+        }*/
+        return infoList;
+    }
+    /**
+     * 杩戜竷鏃ュ埌璐ф儏鍐�
+     * @return
+     */
+    @Override
+    public  List<LastSevenDaysOrderVo> arriveGoodsList(String code){
+        List<LastSevenDaysOrderVo> list = new ArrayList<>();
+        TmsSevenArrivalDetailsRequest param = new TmsSevenArrivalDetailsRequest();
+        if(StringUtils.isNotBlank(code)){
+            param.setFacrotyCodeList(new ArrayList<>());
+            param.getFacrotyCodeList().add(code);//鏌ヨ鎸囧畾鍘傚尯
+        }
+        Date date = new Date();
+        Date startDate = DateUtil.addDaysToDate(date,-7);
+        //鐪嬫澘澶у睆杩�7鏃ュ埌璐ф儏鍐垫棩鏈� 0琛ㄧず褰撳ぉ褰撳墠鎺�7澶╋紝-1琛ㄧず鏈湀鍒�1鍙�-7鍙�
+        String flag = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.SCREEN_SEVENT_ARRIVAL_STARTDATE).getCode();
+        if(StringUtils.equals(flag,"-1")){
+            startDate =DateUtil.getBeginDayOfMonth(0);
+            date = DateUtil.addDaysToDate(startDate,7);
+        }
+        param.setNcCreateDateFrom(DateUtil.getShortTime(startDate));
+        param.setNcCreateDateThrough(DateUtil.getShortTime(date));
+        List<TmsSevenArrivalStatusAndDetailsResponse> infoList =   tmsService.getSevenArrivalStatusAndDetails(param);//鏌ヨ鍑哄簱閲�
+        for (int i = 0; i < 7; i++) {
+            LastSevenDaysOrderVo model = new LastSevenDaysOrderVo();
+            Date td = DateUtil.addDaysToDate(date,-i);
+            model.setDateStr(DateUtil.getShortTime(td));
+            dealGoodsListFromResponse(model,infoList);
+            list.add(model);
+        }
+        return list;
+    }
+    private void dealGoodsListFromResponse(  LastSevenDaysOrderVo model, List<TmsSevenArrivalStatusAndDetailsResponse> list) {
+        model.setIngList(new ArrayList<>());
+        model.setWaitList(new ArrayList<>());
+        model.setDoneList(new ArrayList<>());
+        if(list ==null || list.size()==0){
+            return;
+        }
+        for(TmsSevenArrivalStatusAndDetailsResponse temp : list){
+            if(StringUtils.equals(temp.getNcCreateDate(),model.getDateStr())){
+                if(Constants.equalsInteger(temp.getStatus(),Constants.ZERO)){
+                    model.getWaitList().add(temp);
+                }else if(Constants.equalsInteger(temp.getStatus(),Constants.ONE)){
+                    model.getIngList().add(temp);
+                }else if(Constants.equalsInteger(temp.getStatus(),Constants.TWO)){
+                    model.getDoneList().add(temp);
+                }
+            }
+        }
+        model.setDoneNum(model.getDoneList().size());
+        model.setIngNum(model.getIngList().size());
+        model.setWaitNum(model.getWaitList().size());
+    }
+
+    /**
+     * 鍑哄簱鑳藉姏鏉庢案鍒�
+     * @return
+     */
+    @Override
+    public WholeProvinceZXTVO tranportAbilityUseRate(){
+        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
+        result.setCurrentNum(new BigDecimal(0));
+        result.setTotalNum(new BigDecimal(0));
+        result.setUseRate(new BigDecimal(0));
+        result.setDetailList(new ArrayList<>());
+        List<TmsFactoryParam> paramList =factoryList();
+        if(paramList!=null){
+            List<TmsTotalAndReportVehicleQtyResponse> response = tmsService.getTotalAndReportVehicleQty();//鏌ヨ鍑哄簱閲�
+            for(TmsFactoryParam p : paramList){
+                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
+                t.setFactoryName(p.getName());
+                t.setCurrentNum(new BigDecimal(0));
+                t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//鎬诲簱瀛橀噺
+                getFromReportVehicleQtyList(p.getCode(),t,response);//澶勭悊鎻愭姤杩愬姏鍜屾�昏繍鍔涙暟鎹�
+                t.setUseRate(new BigDecimal(0));
+                if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+                }
+                result.getDetailList().add(t);
+                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
+                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
+            }
+        }
+        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+        }
+        return result;
+    }
+    private void getFromReportVehicleQtyList(String code,WholeProvinceZxtDetailVO t, List<TmsTotalAndReportVehicleQtyResponse> responses) {
+        BigDecimal current = new BigDecimal(0);
+        BigDecimal total= new BigDecimal(0);
+        if(responses!=null && responses.size()>0){
+            for(TmsTotalAndReportVehicleQtyResponse model: responses){
+                if(StringUtils.equals(model.getFactoryCode(),code)){
+                    total = total.add(Constants.formatBigdecimal(model.getTotalQty()));
+                    current = current.add(Constants.formatBigdecimal(model.getReportQty()));
+                }
+            }
+        }
+        t.setCurrentNum(current);
+        t.setTotalNum(total);
+    }
+    private BigDecimal getCurrentOutQryByList(List<TmsOutQtyAndVehicleQtyResponse> response) {
+        BigDecimal r = new BigDecimal(0);
+        if(response!=null && response.size()>0){
+            for(TmsOutQtyAndVehicleQtyResponse model: response){
+                    r = r.add(Constants.formatBigdecimal(model.getTotalOutQty()));
+            }
+        }
+        return r ;
+    }
+
+    /**
+     * 浠撳簱璧勬簮鍒╃敤鐜�
+     * @return
+     */
+    @Override
+    public WholeProvinceZXTVO inventoryUseRate(){
+        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
+        result.setCurrentNum(new BigDecimal(0));
+        result.setTotalNum(new BigDecimal(0));
+        result.setUseRate(new BigDecimal(0));
+        result.setDetailList(new ArrayList<>());
+        List<TmsFactoryParam> paramList = factoryList();
+        List<TmsInventoryListResponse> responses = tmsService.getRealTimeInventory();
+        if(paramList!=null){
+            for(TmsFactoryParam p : paramList){
+                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
+                t.setFactoryName(p.getName());
+                t.setCurrentNum(new BigDecimal(0));
+                t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//鎬诲簱瀛橀噺
+                t.setCurrentNum(getFromInventoryList(p.getCode(),responses));
+                t.setUseRate(new BigDecimal(0));
+                if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+                }
+                result.getDetailList().add(t);
+                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
+                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
+            }
+        }
+        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
+            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
+        }
+        return result;
+    }
+
+    private BigDecimal getFromInventoryList(String code, List<TmsInventoryListResponse> responses) {
+        BigDecimal r = new BigDecimal(0);
+        if(responses!=null && responses.size()>0){
+            for(TmsInventoryListResponse model: responses){
+                if(StringUtils.equals(model.getFactoryCode(),code)){
+                   r = r.add(Constants.formatBigdecimal(model.getStockQty()));
+                }
+            }
+        }
+        return r ;
+
+    }
+
+
 }

--
Gitblit v1.9.3