From fdeecb1480ff8ce032166ecd1611cd490bca97ed Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 30 六月 2025 12:00:46 +0800
Subject: [PATCH] 代码初始化

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java |   81 ++++++++++++++++++++++++++++++----------
 1 files changed, 61 insertions(+), 20 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 eb2fe8c..d4c376b 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
@@ -1024,6 +1024,7 @@
         Date lastMonth =  DateUtil.addMonthToDate(month,-1);//涓婃湀
         Date year = Utils.Date.getStart(new Date());//浠婂勾
         Date lastYear = DateUtil.addYearToDate(year,-1);//鍘诲勾
+        log.error("1銆�=====================>"+DateUtil.getCurrDateTime());
         List<PlatformJob>  monthNum = platformJobMapper.selectJoinList(PlatformJob.class,
                     new MPJLambdaWrapper<PlatformJob>()
                             .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -1032,12 +1033,13 @@
                             .select(PlatformJob::getStatus,PlatformJob::getStatus)
                             .select(PlatformJob::getType,PlatformJob::getType)
                         .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE)
+//                        .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)+"') "));
 
+        log.error("2銆�=====================>"+DateUtil.getCurrDateTime());
         List<PlatformJob>  yearNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -1049,6 +1051,8 @@
                         .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()  "));
+
+        log.error("3銆�=====================>"+DateUtil.getCurrDateTime());
         List<PlatformJob>  monthLastNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -1061,7 +1065,8 @@
                         .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)+"'"));
-        
+
+        log.error("4銆�=====================>"+DateUtil.getCurrDateTime());
         List<PlatformJob> yearLastNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
                         .selectAs(PlatformJob::getId,PlatformJob::getId)
@@ -1077,9 +1082,10 @@
         data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//涓婃湀鍑哄簱閲�
         data.setYearOutTotal(getSumTotalByList(yearNum,null,null)  );//鏈勾鍑哄簱閲�
         data.setYearLastOutTotal(getSumTotalByList(yearLastNum,null,null) );//鍘诲勾鍑哄簱閲�
-        data.setMonthOutTimes(monthNum!=null?monthNum.size():0);
+        data.setMonthOutTimes(monthNum!=null?monthNum.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)||Constants.equalsInteger(i.getType(),Constants.THREE)).collect(Collectors.toList()).size():0);
         data.setYearOutTimes(yearNum!=null?yearNum.size():0);
 
+        log.error("5銆�=====================>"+DateUtil.getCurrDateTime());
         //==========浠婂ぉ涔嬪墠鏈畬鎴愬嚭鍏ュ簱浠诲姟
         List<PlatformJob> beforeJobNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
@@ -1095,6 +1101,7 @@
                         .apply("   to_days(create_date) < to_days(now()) ")
         );
 
+        log.error("6銆�=====================>"+DateUtil.getCurrDateTime());
         //==========浠婂ぉ鍑哄叆搴撳畬鎴愰噺
         List<PlatformJob> currentDoneNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
@@ -1107,6 +1114,7 @@
                         .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
                         .apply(" to_days(done_date) = to_days(now())"));
 
+        log.error("7銆�=====================>"+DateUtil.getCurrDateTime());
         //==========浠婂ぉ涓嬪彂鍑哄叆搴撲换鍔� 鏈畬鎴愮殑----
         List<PlatformJob> currentNum = platformJobMapper.selectJoinList(PlatformJob.class,
                 new MPJLambdaWrapper<PlatformJob>()
@@ -1119,18 +1127,39 @@
                         .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey())
                         .apply(" to_days(create_date) = to_days(now()) and done_date is null   "));
 
+        log.error("8銆�=====================>"+DateUtil.getCurrDateTime());
         BigDecimal beforeOutNum = (getSumTotalByList(beforeJobNum,0,null));//浠婂ぉ涔嬪墠鏈畬鎴愬嚭搴撲换鍔�
+        log.error("9銆�=====================>"+DateUtil.getCurrDateTime());
         BigDecimal currentOutNum = (getSumTotalByList(currentNum,0,null));//浠婂ぉ涓嬪彂鍑哄簱浠诲姟
+        log.error("10銆�=====================>"+DateUtil.getCurrDateTime());
         BigDecimal beforeInNum = (getSumTotalByList(beforeJobNum,1,null));//浠婂ぉ涔嬪墠鏈畬鎴愬叆搴撲换鍔�
+        log.error("11銆�=====================>"+DateUtil.getCurrDateTime());
         BigDecimal currentInNum = (getSumTotalByList(currentNum,1,null));//浠婂ぉ涓嬪彂鍏ュ簱浠诲姟
+        log.error("12銆�=====================>"+DateUtil.getCurrDateTime());
         data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,1,1));//浠婃棩瀹屾垚閲�
+        log.error("13銆�=====================>"+DateUtil.getCurrDateTime());
         data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,0,1));//浠婃棩瀹屾垚閲�
+        log.error("14銆�=====================>"+DateUtil.getCurrDateTime());
         data.setCurrentInNum(beforeInNum.add(data.getCurrentInDoneNum()).add(currentInNum));//褰撳墠鍏ュ簱鎬讳换鍔℃垚閲�
+        log.error("15銆�=====================>"+DateUtil.getCurrDateTime());
         data.setCurrentOutNum(beforeOutNum.add(data.getCurrentOutDoneNum()).add(currentOutNum));//褰撳墠鍑哄簱鎬讳换鍔℃垚閲�
+        log.error("16銆�=====================>"+DateUtil.getCurrDateTime());
         data.setTodayOutRate(getDayTotalRata(data.getCurrentOutDoneNum(),DateUtil.getToday()));//褰撴棩鍑哄簱鏁堢巼
+        log.error("17銆�=====================>"+DateUtil.getCurrDateTime());
         data.setTodayInRate(getDayTotalRata(data.getCurrentInDoneNum(),DateUtil.getToday()));//褰撴棩鍏ュ簱鏁堢巼
-        data.setMonthOutRate(getMonthRata(monthNum,Constants.ZERO));//鏈湀鍑哄簱鏁堢巼
-        data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//鏈湀鍑哄簱鏁堢巼
+        log.error("18銆�=====================>"+DateUtil.getCurrDateTime());
+        //鏌ヨ鏈湀鍏ㄩ儴鏃ュ織
+        List<PlatformLog> monthLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+                .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+                .and(i->i.isNotNull(PlatformLog::getParam1).or().isNotNull(PlatformLog::getParam2))
+                .apply("year(CREATE_DATE) = year('"+DateUtil.getPlusTime2(month)+"') and month(CREATE_DATE) = month('"+DateUtil.getPlusTime2(month)+"') ")
+        );
+
+
+        data.setMonthOutRate(getMonthRata(monthLogList,monthNum,Constants.ZERO));//鏈湀鍑哄簱鏁堢巼
+        log.error("19銆�=====================>"+DateUtil.getCurrDateTime());
+        data.setMonthInRate(getMonthRata(monthLogList,monthNum,Constants.ONE));//鏈湀鍏ュ簱鏁堢巼
+        log.error("20銆�=====================>"+DateUtil.getCurrDateTime());
         //------------浠婃棩鍑哄叆搴撴晥鐜�---------------- 
 //        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);//
 //        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);//
@@ -1202,7 +1231,7 @@
     }
 
 
-    private BigDecimal getMonthRata(List<PlatformJob> list, Integer type) {
+    private BigDecimal getMonthRata(List<PlatformLog> monthLogList,List<PlatformJob> list, Integer type) {
         BigDecimal r = new BigDecimal(0);
         if(list==null || list.size() == 0){
             return r;
@@ -1235,11 +1264,28 @@
                             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));
+                        r = r.add(this.getDayTotalForMonthRata(monthLogList,getSumTotalByList(platformJobList,type,null),jobDate));
                     }
                 }
                 r = r.divide(new BigDecimal(Integer.toString(jobList.size())),2,BigDecimal.ROUND_HALF_UP);
             }
+        }
+        return r;
+    }
+
+    private BigDecimal getDayTotalForMonthRata(List<PlatformLog> allList ,BigDecimal totalAmount,String today) {
+        BigDecimal r = new BigDecimal(0);
+        //鏌ヨ浠婃棩鏈�鏃�/鏈�鏅氱殑浣滀笟鏁版嵁
+        List<PlatformLog> platformLogList = allList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(today)).collect(Collectors.toList());
+//                platformLogMapper.selectList(new QueryWrapper<PlatformLog>()
+//                .lambda()
+//                .apply(" (  DATE_FORMAT( param1 ,'%Y-%m-%d' ) =  '"+today+"' or DATE_FORMAT( param2 ,'%Y-%m-%d' )  =  '"+today+"' ) ")
+//        );
+        if(totalAmount.compareTo(BigDecimal.ZERO)==0||CollectionUtils.isEmpty(platformLogList)){
+            return BigDecimal.ZERO;
+        }
+        if(platformLogList!=null && platformLogList.size()>0){
+            return this.getWorkTime(totalAmount,platformLogList,today);
         }
         return r;
     }
@@ -1256,7 +1302,7 @@
             return BigDecimal.ZERO;
         }
         if(platformLogList!=null && platformLogList.size()>0){
-            return this.getWorkTime(totalAmount,platformLogList);
+            return this.getWorkTime(totalAmount,platformLogList,today);
         }
         return r;
     }
@@ -1267,15 +1313,19 @@
      * @param platformLogList
      * @return
      */
-    public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList){
+    public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList,String today){
         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());
+        List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1()))
+                .filter(i->Objects.nonNull(i.getParam1())&&i.getParam1().indexOf(today)>=0)
+                .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());
+        List<Long> endTimeList = platformLogList.stream()
+                .filter(i->Objects.nonNull(i.getParam2())&&i.getParam2().indexOf(today)>=0)
+                .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)){
@@ -1283,14 +1333,6 @@
         }
         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) {
@@ -2696,7 +2738,6 @@
                 }
             }
         }
-
     }
 
     private boolean notInList(String transportCode, List<String> planCodes) {

--
Gitblit v1.9.3