k94314517
2025-06-09 858fa3e0b30498156d6f23c6ed425dc16272b4c9
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)
@@ -1038,6 +1039,7 @@
                                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)
@@ -1080,6 +1085,7 @@
        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,7 +1264,7 @@
                            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);
@@ -1244,6 +1273,23 @@
        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);
        }
        return r;
    }
    private BigDecimal getDayTotalRata(BigDecimal totalAmount,String today) {
        BigDecimal r = new BigDecimal(0);