| | |
| | | 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) |
| | |
| | | .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) |
| | |
| | | .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) |
| | |
| | | .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) |
| | |
| | | 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>() |
| | |
| | | .apply(" to_days(create_date) < to_days(now()) ") |
| | | ); |
| | | |
| | | log.error("6、=====================>"+DateUtil.getCurrDateTime()); |
| | | //==========今天出入库完成量 |
| | | List<PlatformJob> currentDoneNum = platformJobMapper.selectJoinList(PlatformJob.class, |
| | | new MPJLambdaWrapper<PlatformJob>() |
| | |
| | | .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>() |
| | |
| | | .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);// |
| | |
| | | } |
| | | |
| | | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | return r; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public WholeProvinceBoardVO centerProvinceData(String factoryCode){ |
| | | WholeProvinceBoardVO data = initWholeProvinceBoardVOData(factoryCode); |
| | | /* 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; |
| | | |
| | | } |
| | | @Override |
| | | public WholeProvinceBoardVO centerProvinceDataNew(String factoryCode){ |
| | | WholeProvinceBoardVO data = initWholeProvinceBoardVOData(factoryCode); |
| | | |
| | | initOutboundCapabilityNew(data,factoryCode); |
| | | return data; |
| | | |
| | | } |
| | | |
| | | private WholeProvinceBoardVO initWholeProvinceBoardVOData(String factoryCode) { |
| | | WholeProvinceBoardVO data = new WholeProvinceBoardVO(); |
| | | data.setMaxAbility(new BigDecimal(0)); |
| | | data.setHoursAbility(new BigDecimal(0)); |
| | |
| | | } |
| | | } |
| | | } |
| | | /* Date date = new Date(); |
| | | TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest(); |
| | | param.setDateEnd(DateUtil.getShortTime(date)); |
| | | param.setDateStart(DateUtil.getShortTime(date)); |
| | | return data; |
| | | } |
| | | |
| | | private void initOutboundCapabilityNew(WholeProvinceBoardVO data, String code) { |
| | | TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest(); |
| | | if(StringUtils.isNotBlank(code)){ |
| | | param.setFacrotyCodeList(new ArrayList<>()); |
| | | param.getFacrotyCodeList().add(code);//查询指定厂区 |
| | | 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; |
| | | TmsGetOutCapabilityResponse result= tmsService.getOutCapacity(param); |
| | | if(result !=null){ |
| | | data.setCrrentOutNum(Constants.formatBigdecimal(result.getCurrentOutNum()) );//今日出库量 |
| | | data.setNeedTransportOrderNum(Constants.formatBigdecimal(result.getCurrentTransportNum()));//当前任务量-已配载未出库 |
| | | data.setNoNeedTransportOrderNum(Constants.formatBigdecimal(result.getCurrentNotTransportNum()) );//当前任务量-无需调度 |
| | | data.setCrrentRestNum(Constants.formatBigdecimal(result.getCurrentTransportNum()));//剩余任务量-已配载未出库 |
| | | data.setCurrentOrderNum(Constants.formatBigdecimal(result.getCurrentOrderNum()) );//当前订单量 |
| | | data.setCurrentPlanCarNum(Constants.formatBigdecimal(result.getCurrentTransportVehicleNum()).intValue() );//当前任务车次 |
| | | data.setCrrentRestCarNum(Constants.formatBigdecimal(result.getCurrentTransportVehicleNum()).intValue() );//剩余任务车次量 |
| | | data.setCrrentOutCarNum(Constants.formatBigdecimal(result.getCurrentOutVehicleNum()).intValue());//今日出库车次 |
| | | |
| | | //当前任务量和剩余任务量,为(无需配载+需要配载的任务量之和) |
| | | data.setCurrentPlanNum(data.getNeedTransportOrderNum().add(data.getNoNeedTransportOrderNum()));//当前任务量 |
| | | data.setCrrentRestNum(data.getCurrentPlanNum());//当前任务量 |
| | | |
| | | } |
| | | //处理单位成“箱”,一箱=5万支 |
| | | if(Constants.UNIT_TYPE == 1) { |
| | | data.setMaxAbility(Constants.formatBigdecimal(data.getMaxAbility()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setHoursAbility(Constants.formatBigdecimal(data.getHoursAbility()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCrrentRestNum(Constants.formatBigdecimal(data.getCrrentRestNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCurrentPlanNum(Constants.formatBigdecimal(data.getCurrentPlanNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCrrentOutNum(Constants.formatBigdecimal(data.getCrrentOutNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setCurrentOrderNum(Constants.formatBigdecimal(data.getCurrentOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setNoNeedTransportOrderNum(Constants.formatBigdecimal(data.getNoNeedTransportOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | data.setNeedTransportOrderNum(Constants.formatBigdecimal(data.getNeedTransportOrderNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | } |
| | | private void initOutboundCapability(WholeProvinceBoardVO data, String code) { |
| | | TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest(); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private boolean notInList(String transportCode, List<String> planCodes) { |