statistic workload change
| | |
| | | |
| | | <select id="selectMaxDate" resultType="java.lang.String"> |
| | | SELECT COALESCE( |
| | | (SELECT DATE_ADD(MAX(statistic_date), INTERVAL 1 DAY) FROM oth_statistic_device), |
| | | (SELECT DATE_FORMAT(MIN(out_line_time),'%Y-%m-%d') FROM sta_device_last where status =2 and out_line_time is not null), |
| | | DATE_FORMAT(NOW() ,'%Y-%m-%d') -- 如果两个表都没有数据,返回当前时间 |
| | | (SELECT DATE_ADD(MAX(statistic_date), INTERVAL 1 DAY) FROM oth_statistic_workload), |
| | | (SELECT DATE_FORMAT(MIN(out_time),'%Y-%m-%d') FROM sta_device_last), |
| | | DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y-%m-%d') -- 如果两个表都没有数据,返回前一天时间 无用 |
| | | ) AS max_date; |
| | | </select> |
| | | |
| | |
| | | List<JSONObject> list = sv.queryPlanList(); |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | } |
| | | @GetMapping(path="test") |
| | | public BaseResponse test(){ |
| | | sv.test(); |
| | | return BaseResponseUtils.buildSuccess(); |
| | | } |
| | | } |
| | |
| | | //today 0点5分 统计before today |
| | | log.info("启动统计人员工作量任务"); |
| | | OthStatisticWorkloadMapper workloadMapper = SpringContextUtil.getBean(OthStatisticWorkloadMapper.class); |
| | | //找到最大一条日期记录 |
| | | //应该统计的日期 |
| | | DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE; |
| | | LocalDate maxLocalDate = LocalDate.parse(workloadMapper.selectMaxDate(), formatter); |
| | | //往后循环天数汇总 //循环统计 |
| | | /* LocalDate maxLocalDate = null; |
| | | if (maxDate == null) { |
| | | maxLocalDate = LocalDate.now().minusDays(2); |
| | | } else { |
| | | maxLocalDate = maxDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
| | | }*/ |
| | | |
| | | LocalDate today = LocalDate.now(); |
| | | LocalDate statisticDate = maxLocalDate.plusDays(1); |
| | | LocalDate statisticDate = maxLocalDate; |
| | | long daysBetween = ChronoUnit.DAYS.between(maxLocalDate, today); |
| | | if (daysBetween > 30) { |
| | | daysBetween = 30; |