From c3aaf28f7316cce12eec007a9f85a96cbcddeec2 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 07 五月 2025 10:34:20 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java |  299 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 223 insertions(+), 76 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 04e8f33..80e5ec4 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
@@ -91,6 +91,8 @@
     private PlatformGroupMapper platformGroupMapper;
     @Autowired
     private TmsService tmsService;
+    @Autowired
+    private PlatformDeviceMapper platformDeviceMapper;
 
     @Value("${debug_model}")
     private Boolean isDebug;
@@ -132,6 +134,7 @@
                         .select(PlatformJob::getTotalNum)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .eq(PlatformJob::getOrigin,Constants.ONE)
+                        .in(PlatformJob::getType,new Integer[]{0,2,4})
                         .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
                                 , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
                                 , Constants.PlatformJobStatus.LEAVED.getKey())
@@ -148,6 +151,7 @@
                 List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>()
                         .select(PlatformJob::getTotalNum)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                                .apply(" ( origin = 0 or origin is null)  ")
                         .eq(PlatformJob::getPlatformGroupId,platformGroupId)
                         .apply("to_days(done_date) = to_days(now())")
                         .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
@@ -186,7 +190,8 @@
             List<WmsInventoryJsonResponse> t= response.getData().get(0).getJson();
             if(t!=null &&t.size()>0){
                 for(WmsInventoryJsonResponse j :t){
-                    num = num.add (Constants.formatBigdecimal( j.getQty()));
+                    //2025骞�4鏈�9鏃�16:46:40 澶勭悊 鍖呭惈鎵樼洏瀛楃溂鐨勬暟鎹� 涓嶈繘琛屽悎璁�
+                    num = num.add (j.getItemName().indexOf("鎵樼洏")<Constants.ZERO?Constants.formatBigdecimal( j.getQty()):BigDecimal.ZERO);
                     GeneralVO d = new GeneralVO();
                     d.setNum(Constants.formatBigdecimal(j.getQty()));
                     d.setName(j.getItemName());
@@ -748,6 +753,20 @@
                         .apply(queryType==0,"to_days(create_date) >= to_days(now()) -7")
                         .apply(queryType==1,"year(create_date) = year(now()) and month(create_date) = month(now())")
                         .apply(queryType==2,"year(create_date) = year(now())"));
+
+
+        List<PlatformJob>  finishDataList = platformJobMapper.selectJoinList(PlatformJob.class,
+                new MPJLambdaWrapper<PlatformJob>()
+                        .selectAs(PlatformJob::getId,PlatformJob::getId)
+                        .selectAs(PlatformJob::getCreateDate,PlatformJob::getCreateDate)
+                        .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
+                        .selectAs(PlatformJob::getStatus,PlatformJob::getStatus)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
+                        .apply(queryType==0,"to_days(done_date) >= to_days(now()) -7")
+                        .apply(queryType==1,"year(done_date) = year(now()) and month(done_date) = month(now())")
+                        .apply(queryType==2,"year(done_date) = year(now())"));
+
         for (Date date : dayList) {
             TransportMeasureVO data = new TransportMeasureVO();
             data.setPlanDate(date);
@@ -759,23 +778,34 @@
                     if(DateUtil.formatDate(date,"yyyy-MM").equals(DateUtil.formatDate(job.getCreateDate(),"yyyy-MM"))){
                         data.setPlanTimes( data.getPlanTimes() +1);
                         data.setPlanTaskNum( data.getPlanTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
-                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())
-                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())
-                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
-                            //瀹屾垚鏁�
-                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
-                        }
+//                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())
+//                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())
+//                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
+//                            //瀹屾垚鏁�
+//                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
+//                        }
                     }
                 }else{
                     if(DateUtil.formatDate(date,"yyyy-MM-dd").equals(DateUtil.formatDate(job.getCreateDate(),"yyyy-MM-dd"))){
                         data.setPlanTimes( data.getPlanTimes() +1);
                         data.setPlanTaskNum( data.getPlanTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
-                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())
-                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())
-                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
-                            //瀹屾垚鏁�
+//                        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())
+//                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())
+//                                ||Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
+//                            //瀹屾垚鏁�
+//                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
+//                        }
+                    }
+                }
+            }
+            for (PlatformJob job :finishDataList) {
+                if(queryType == 2){
+                    if(DateUtil.formatDate(date,"yyyy-MM").equals(DateUtil.formatDate(job.getDoneDate(),"yyyy-MM"))){
                             data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
-                        }
+                    }
+                }else{
+                    if(DateUtil.formatDate(date,"yyyy-MM-dd").equals(DateUtil.formatDate(job.getDoneDate(),"yyyy-MM-dd"))){
+                            data.setFinishTaskNum( data.getFinishTaskNum().add(Constants.formatBigdecimal(job.getTotalNum())));
                     }
                 }
             }
@@ -801,11 +831,13 @@
                         .selectAll(PlatformJob.class)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .eq(PlatformJob::getCarCodeFront,param.getCarCode())
-                        .in(PlatformJob::getStatus,
+                        .notIn(PlatformJob::getStatus,
                                 Constants.PlatformJobStatus.DONE.getKey(),
                                 Constants.PlatformJobStatus.LEAVED.getKey(),
                                 Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(),
-                                Constants.PlatformJobStatus.CALLED.getKey())
+                                Constants.PlatformJobStatus.CANCEL.getKey()
+                        )
+                        .orderByAsc(PlatformJob::getId)
                         .last("limit 1"));
 
         dealJobDetailAndContractBiz(job,data);
@@ -926,7 +958,7 @@
      */
     @Override
     public   AlarmDataVO alarmDataSumByCate(){
-        AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1))
+        AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(Utils.Date.getStart(new Date()))
                 ,(DateUtil.getPlusTime2(new Date())));
         return  alarmDataVO;
     }
@@ -951,10 +983,23 @@
                         .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
                         .select(PlatformJob::getStatus,PlatformJob::getStatus)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
                         .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),
                                 Constants.PlatformJobStatus.LEAVED.getKey(),
                                 Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
                         .apply("year(done_date) = year('"+DateUtil.getPlusTime2(month)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(month)+"') "));
+
+        List<PlatformJob>  yearNum = platformJobMapper.selectJoinList(PlatformJob.class,
+                new MPJLambdaWrapper<PlatformJob>()
+                        .selectAs(PlatformJob::getId,PlatformJob::getId)
+                        .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
+                        .select(PlatformJob::getStatus,PlatformJob::getStatus)
+                        .select(PlatformJob::getType,PlatformJob::getType)
+//                        .selectCount(PlatformJob::getPlatformId,PlatformJob::getCountum)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
+                        .apply("year(done_date) = year('"+DateUtil.getPlusTime2(year)+"')   and done_date<=  now()  "));
         List<PlatformJob>  monthLastNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -967,17 +1012,7 @@
                         .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
                         .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastMonth)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(lastMonth)+"') and  done_date<= '"
                                 +DateUtil.getPlusTime2(lastMonth)+"'"));
-        List<PlatformJob>  yearNum = platformJobMapper.selectJoinList(PlatformJob.class,
-                new MPJLambdaWrapper<PlatformJob>()
-                        .selectAs(PlatformJob::getId,PlatformJob::getId)
-                        .selectAs(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
-                        .select(PlatformJob::getStatus,PlatformJob::getStatus)
-                        .select(PlatformJob::getType,PlatformJob::getType)
-//                        .selectCount(PlatformJob::getPlatformId,PlatformJob::getCountum)
-                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
-                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
-                        .apply("year(done_date) = year('"+DateUtil.getPlusTime2(year)+"')   and done_date<= '"+DateUtil.getPlusTime2(year)+"'"));
+        
         List<PlatformJob> yearLastNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -987,7 +1022,7 @@
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                         .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
                         .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
-                        .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastYear)+"')  and done_date<= '"+DateUtil.getPlusTime2(lastYear)+"'"));
+                        .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastYear)+"')  and done_date<=  now()  "));
 
         data.setMonthOutTotal(getSumTotalByList(monthNum,0,null));//鏈湀鍑哄簱閲�
         data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//涓婃湀鍑哄簱閲�
@@ -1005,8 +1040,11 @@
                         .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
                         // .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)
-                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey(),Constants.PlatformJobStatus.CALLED.getKey())
-                        .apply("   to_days(create_date) <to_days(now())"));
+                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),
+                                Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                                ,Constants.PlatformJobStatus.CANCEL.getKey())
+                        .apply("   to_days(create_date) < to_days(now()) ")
+        );
 
         //==========浠婂ぉ鍑哄叆搴撳畬鎴愰噺
         List<PlatformJob> currentDoneNum = platformJobMapper.selectJoinList(PlatformJob.class,
@@ -1017,9 +1055,10 @@
                         .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
 //                        .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)
-                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
                         .apply(" to_days(done_date) = to_days(now())"));
-        //==========浠婂ぉ涓嬪彂鍑哄叆搴撲换鍔�----
+
+        //==========浠婂ぉ涓嬪彂鍑哄叆搴撲换鍔� 鏈畬鎴愮殑----
         List<PlatformJob> currentNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -1028,38 +1067,42 @@
                         .select(PlatformJob::getTotalNum,PlatformJob::getTotalNum)
 //                        .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)
-                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
-                        .apply(" to_days(create_date) = to_days(now())"));
+                        .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
+                        .apply(" to_days(create_date) = to_days(now()) and done_date is null   "));
 
         BigDecimal beforeOutNum = (getSumTotalByList(beforeJobNum,0,null));//浠婂ぉ涔嬪墠鏈畬鎴愬嚭搴撲换鍔�
         BigDecimal currentOutNum = (getSumTotalByList(currentNum,0,null));//浠婂ぉ涓嬪彂鍑哄簱浠诲姟
         BigDecimal beforeInNum = (getSumTotalByList(beforeJobNum,1,null));//浠婂ぉ涔嬪墠鏈畬鎴愬叆搴撲换鍔�
         BigDecimal currentInNum = (getSumTotalByList(currentNum,1,null));//浠婂ぉ涓嬪彂鍏ュ簱浠诲姟
-        data.setCurrentInNum(beforeInNum.add(currentInNum));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
-        data.setCurrentOutNum(beforeOutNum.add(currentOutNum));//褰撳墠鍑哄簱鎬讳换鍔℃垚閲�
         data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,1,1));//浠婃棩瀹屾垚閲�
         data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,0,1));//浠婃棩瀹屾垚閲�
-
-        //------------浠婃棩鍑哄叆搴撴晥鐜�----------------
-        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);//
-        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);//
-        if(outHours.compareTo(new BigDecimal(0))>0){
-            data.setTodayOutRate(data.getCurrentOutDoneNum().divide(outHours,2));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
-        }
-        if(inHours.compareTo(new BigDecimal(0))>0){
-            data.setTodayInRate(data.getCurrentInDoneNum().divide(inHours,2));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
-        }
+        data.setCurrentInNum(beforeInNum.add(data.getCurrentInDoneNum()).add(currentInNum));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
+        data.setCurrentOutNum(beforeOutNum.add(data.getCurrentOutDoneNum()).add(currentOutNum));//褰撳墠鍑哄簱鎬讳换鍔℃垚閲�
+        data.setTodayOutRate(getDayTotalRata(data.getCurrentOutDoneNum(),DateUtil.getToday()));//褰撴棩鍑哄簱鏁堢巼
+        data.setTodayInRate(getDayTotalRata(data.getCurrentInDoneNum(),DateUtil.getToday()));//褰撴棩鍏ュ簱鏁堢巼
+        data.setMonthOutRate(getMonthRata(monthNum,Constants.ZERO));//鏈湀鍑哄簱鏁堢巼
+        data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//鏈湀鍑哄簱鏁堢巼
+        //------------浠婃棩鍑哄叆搴撴晥鐜�---------------- 
+//        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);//
+//        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);//
+//
+//        if(outHours.compareTo(new BigDecimal(0))>0){
+//            data.setTodayOutRate(data.getCurrentOutDoneNum().divide(outHours,2));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
+//        }
+//        if(inHours.compareTo(new BigDecimal(0))>0){
+//            data.setTodayInRate(data.getCurrentInDoneNum().divide(inHours,2));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
+//        }
         //------------鏈湀鍑哄叆搴撴晥鐜�----------------
 //        BigDecimal outMonthNum = getSumTotalByList(monthNum,0,null).add(data.getCurrentOutDoneNum());
-        BigDecimal inMonthNum = getSumTotalByList(monthNum,1,null).add(data.getCurrentInDoneNum());
-        BigDecimal outMonthHours = getTotalDoneTimes(monthNum,0).add(outHours);//
-        BigDecimal inMonthHours = getTotalDoneTimes(monthNum,1).add(inHours);//
-        if(outMonthHours.compareTo(new BigDecimal(0))>0){
-            data.setMonthOutRate(data.getMonthOutTotal().divide(outMonthHours,0,BigDecimal.ROUND_HALF_UP));//鏈湀鍏ュ簱鏁堢巼
-        }
-        if(inMonthHours.compareTo(new BigDecimal(0))>0){
-            data.setMonthInRate(inMonthNum.divide(inMonthHours,0,BigDecimal.ROUND_HALF_UP));//鏈湀鍏ュ簱鏁堢巼
-        }
+//        BigDecimal inMonthNum = getSumTotalByList(monthNum,1,null).add(data.getCurrentInDoneNum());
+//        BigDecimal outMonthHours = getTotalDoneTimes(monthNum,0).add(outHours);//
+//        BigDecimal inMonthHours = getTotalDoneTimes(monthNum,1).add(inHours);//
+//        if(outMonthHours.compareTo(new BigDecimal(0))>0){
+//            data.setMonthOutRate(data.getMonthOutTotal().divide(outMonthHours,0,BigDecimal.ROUND_HALF_UP));//鏈湀鍑哄簱鏁堢巼
+//        }
+//        if(inMonthHours.compareTo(new BigDecimal(0))>0){
+//            data.setMonthInRate(inMonthNum.divide(inMonthHours,0,BigDecimal.ROUND_HALF_UP));//鏈湀鍏ュ簱鏁堢巼
+//        }
         return data;
     }
 
@@ -1071,10 +1114,9 @@
         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(0);
-
     }
+
     private BigDecimal getTotalDoneTimes(List<PlatformJob> list, Integer type) {
         BigDecimal r = new BigDecimal(0);
         if(list==null || list.size() == 0){
@@ -1109,6 +1151,94 @@
         }
         return r;
     }
+
+
+    private BigDecimal getMonthRata(List<PlatformJob> list, Integer type) {
+        BigDecimal r = new BigDecimal(0);
+        if(list==null || list.size() == 0){
+            return r;
+        }
+        List<PlatformJob> jobList= new ArrayList<>();
+        for(PlatformJob job : list) {
+            if (!(Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.DONE.getKey())
+                    || Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.LEAVED.getKey())
+                    || Constants.equalsInteger(job.getStatus(), Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()))) {
+                //鍙煡璇㈠畬鎴愭暟鎹�
+                continue;
+            }
+            if (type != null && type == 0 && (Constants.equalsInteger(job.getType(), Constants.ONE) || Constants.equalsInteger(job.getType(), Constants.THREE))) {
+                //鍑哄簱
+                jobList.add(job);
+            }
+            if (type != null && type == 1 && (Constants.equalsInteger(job.getType(), Constants.ZERO) || Constants.equalsInteger(job.getType(), Constants.TWO) || Constants.equalsInteger(job.getType(), Constants.FOUR))) {
+                //鍏ュ簱
+                jobList.add(job);
+            }
+        }
+        if(CollectionUtils.isNotEmpty(jobList)){
+            //鑾峰彇浠诲姟鏁版嵁
+            List<String> jobDataList = list.stream().filter(i->Objects.nonNull(i.getDoneDate())).map(i->DateUtil.formatDate(i.getDoneDate(),"yyyy-MM-dd")).collect(Collectors.toList());
+            for (String jobDate:jobDataList) {
+                //杩囨护褰撳ぉ鐨勬暟鎹�
+                List<PlatformJob> platformJobList = list.stream().
+                        filter(i->jobDate.equals(DateUtil.formatDate(i.getDoneDate(),"yyyy-MM-dd"))).collect(Collectors.toList());
+                if(CollectionUtils.isNotEmpty(platformJobList)){
+                    //鑾峰彇浠婂ぉ鐨�
+                    r = r.add(this.getDayTotalRata(getSumTotalByList(platformJobList,type,null),jobDate));
+                }
+            }
+        }
+        return r;
+    }
+
+
+    private BigDecimal getDayTotalRata(BigDecimal totalAmount,String today) {
+        BigDecimal r = new BigDecimal(0);
+        //鏌ヨ浠婃棩鏈�鏃�/鏈�鏅氱殑浣滀笟鏁版嵁
+        List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>()
+                .lambda()
+                .apply(" ( to_days(param1) =  '"+today+"' or to_days(param2) =  '"+today+"' ) ")
+        );
+        if(totalAmount.compareTo(BigDecimal.ZERO)==0||CollectionUtils.isEmpty(platformLogList)){
+            return BigDecimal.ZERO;
+        }
+        if(platformLogList!=null && platformLogList.size()>0){
+            return this.getWorkTime(totalAmount,platformLogList);
+        }
+        return r;
+    }
+
+    /**
+     * 鏌ヨ浣滀笟鏃堕暱锛堝皬鏃讹級
+     * @param totalAmount
+     * @param platformLogList
+     * @return
+     */
+    public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList){
+        if(CollectionUtils.isEmpty(platformLogList)){
+            return BigDecimal.ZERO;
+        }
+        //鑾峰彇寮�濮嬫椂闂�
+        List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam1()).getTime()).collect(Collectors.toList());
+        Long startTime  = Collections.min(startTimeList);
+        //鑾峰彇缁撴潫鏃堕棿
+        List<Long> endTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam2())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam2()).getTime()).collect(Collectors.toList());
+        Long endTime = Collections.max(endTimeList);
+        if(Objects.isNull(startTime)
+            || Objects.isNull(endTime) || (startTime>=endTime)){
+            return BigDecimal.ZERO;
+        }
+        return   totalAmount.divide(new BigDecimal(( endTime - startTime )+"").divide(new BigDecimal("3600000"),2,BigDecimal.ROUND_HALF_UP),2,BigDecimal.ROUND_HALF_UP) ;
+    }
+
+
+
+
+
+
+
+
+
 
     private BigDecimal  getSumTotalByList(List<PlatformJob> list,Integer type,Integer status) {
         BigDecimal r = new BigDecimal(0);
@@ -1733,11 +1863,10 @@
     @Override
     public  VisitDataVO visitSecurityData(){
         //寰呰闂�佸凡鐧昏銆佸凡绂诲紑
-
         VisitDataVO result = new VisitDataVO();
         result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                 .eq(Visits::getIsdeleted,Constants.ZERO)
-                .apply("to_days(create_date)=to_days(now())")
+                .apply(" now() >  STARTTIME and now() < ENDTIME")
                 .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//寰呰闂�
         result.setRegisterVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                 .eq(Visits::getIsdeleted,Constants.ZERO)
@@ -1828,7 +1957,7 @@
         data.setInParkCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count()
         );
-        //鍦ㄥ洯鐩稿叧鏂硅溅杈�
+       /* //鍦ㄥ洯鐩稿叧鏂硅溅杈�
         data.setRelatedCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
                         &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.relation)).count()
@@ -1837,26 +1966,26 @@
         data.setInternalCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
                         &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.internal)).count()
-        );
+        );*/
         //鏉ヨ杞﹁締
         data.setVisitCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
-                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.visitor)).count()
+                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.fkCar)).count()
         );
         //鑷敱鐗╂祦杞︽暟閲�
         data.setVisitCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
-                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.selfTruck)).count()
+                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.atwlzyCar)).count()
         );
         //甯傚叕鍙稿嵏璐ц溅鏁伴噺
         data.setInternalJobCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
-                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.cityComTruck)).count()
+                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.sgsxhCar)).count()
         );
         //澶栧崗杞︽暟閲�
         data.setRelatedJobCarTotal(
                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)
-                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.outTruck)).count()
+                        &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.wxysCar)).count()
         );
         data.setVideoPluginUrl(getVideoUrl());
         return data;
@@ -1902,8 +2031,12 @@
                     .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() })
 //                    .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                     .orderByDesc(PlatformJob::getStatus )
-                    .orderByAsc(PlatformJob::getId )
+                    .orderByAsc(PlatformJob::getSortnum )
             );
+            List<PlatformDevice> platformDevices = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda().eq(PlatformDevice::getType,Constants.ONE)
+                    .eq(PlatformDevice::getIsdeleted,Constants.ZERO).isNotNull(PlatformDevice::getDeviceId));
+
+            String videoUrl = getVideoUrl();
             //鏈堝彴鐘舵�侊細0=浣滀笟涓紱1=绌洪棽涓紱2=浣滀笟瓒呮椂;3=鍙彿
             for(Platform model : platformList){
                 PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO();
@@ -1911,6 +2044,13 @@
                 platformDurationVO.setPlatformId(model.getId());
                 platformDurationVO.setPlatformCode(model.getCode());
                 platformDurationVO.setPlatformSort(model.getSortnum());
+                if(CollectionUtils.isNotEmpty(platformDevices)){
+                    List<PlatformDevice> deviceList = platformDevices.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),model.getId())).collect(Collectors.toList());
+                    if (CollectionUtils.isNotEmpty(deviceList)) {
+                        platformDurationVO.setDeviceId(deviceList.get(Constants.ZERO).getDeviceId());
+                        platformDurationVO.setVideoPluginUrl(videoUrl);
+                    }
+                }
                 PlatformJob job = getJobFromListById(model.getId(),jobList);
                 if(job != null){
                     if(Constants.equalsInteger(job.getType(),Constants.ONE) || Constants.equalsInteger(job.getType(),Constants.THREE)){
@@ -1971,7 +2111,7 @@
         List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                 .selectAll( PlatformJob.class)
 //                .select("(select sum(ifnull(a.io_qty,0)) from platform_wms_detail a where a.isdeleted=0 and a.job_id =t.id )", create_date)
-                .apply("to_days(t.create_date) = to_days(now())")
+                .apply("to_days(t.done_date) = to_days(now())")
                 .eq(Platform::getIsdeleted, Constants.ZERO)
                 .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
                         , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
@@ -1985,7 +2125,7 @@
         }
         int curtotalNum = 0;
         Date today =  Utils.Date.getStart(new Date());
-        long curTime=0, lastTime=0;
+        long curTime=0, lastTime=0 ;
         for (int i = 0; i < 8; i++) {
             lastTime = curTime;//涓婃鐨勬椂闂�
             int curHour = 8+(i*2);
@@ -2008,7 +2148,7 @@
                 curtotalNum += Constants.formatIntegerNum(workEfficiencyVO.getWorkNum()) ;
             }
             workEfficiencyVO.setTotalWorkNum(curtotalNum);//绱鍊�
-            if(System.currentTimeMillis() < curTime){
+            if((System.currentTimeMillis() + 2*60*60*1000) < curTime ){
                 workEfficiencyVO.setTotalWorkNum(0);
             }
             workEfficiencyVOList.add(workEfficiencyVO);
@@ -2191,15 +2331,22 @@
         //宸蹭綔涓氭暟
         data.setWorkedNum(platformJobMapper.selectCount(new MPJLambdaWrapper<PlatformJob>()
                 .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey());})
-                .and(w->{w.in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()
+                .and(w-> w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+                        .or().in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()
                                 ,Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
-                                ,Constants.PlatformJobStatus.LEAVED.getKey())
-                        .apply("to_days(done_date) = to_days(now())");})
-                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
-                        .apply("to_days(error_date) = to_days(now())");})
-                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.TRANSFERING.getKey())
-                        .apply("to_days(trans_platform_date) = to_days(now())");})
+                                ,Constants.PlatformJobStatus.LEAVED.getKey()).apply("to_days(done_date) = to_days(now())")
+                        .or().eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey()).apply("to_days(done_date) = to_days(now())")
+                        .or().eq(PlatformJob::getStatus,Constants.PlatformJobStatus.TRANSFERING.getKey()).apply("to_days(trans_platform_date) = to_days(now())")
+                )
+//                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey());})
+//                .and(w->{w.in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()
+//                                ,Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+//                                ,Constants.PlatformJobStatus.LEAVED.getKey())
+//                        .apply("to_days(done_date) = to_days(now())");})
+//                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.EXCEPTION.getKey())
+//                        .apply("to_days(error_date) = to_days(now())");})
+//                .and(w->{w.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.TRANSFERING.getKey())
+//                        .apply("to_days(trans_platform_date) = to_days(now())");})
         ).intValue());
 
         data.setVideoPluginUrl(getVideoUrl());

--
Gitblit v1.9.3