package com.gkhy.safePlatform.specialWork.controller; import cn.hutool.core.date.DateUtil; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.specialWork.service.WorkCountService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.Date; import java.util.Map; @RestController @RequestMapping("/specialWork/analyse") public class WorkAnalyseController { @Autowired private WorkCountService workCountService; /** * 八大作业各分类分布数据 * @return */ @PostMapping("/everyType/dep") public Object analyseEveryTypeWorkByDep(@RequestBody QueryParam param){ LocalDateTime st = DateUtil.parseLocalDateTime(param.startTime); LocalDateTime et = DateUtil.parseLocalDateTime(param.endTime); SearchResultVO resultVO = new SearchResultVO<>(); resultVO.setCode(ResultCodes.OK); resultVO.setData(workCountService.countEveryTypeByOptions(st,et,param.depId)); return resultVO; } /** * 统计指定部门的直属子部门作业总数量 * @return */ @PostMapping("/allWork/dep") public Object analyseSubDepWork(@RequestBody QueryParam param){ LocalDateTime st = DateUtil.parseLocalDateTime(param.startTime); LocalDateTime et = DateUtil.parseLocalDateTime(param.endTime); SearchResultVO resultVO = new SearchResultVO<>(); resultVO.setCode(ResultCodes.OK); resultVO.setData(workCountService.countWorkBySubDeps(st,et,param.depId,param.type)); return resultVO; } /** * 统计指定部门最近12个月的作业数量,按月份统计 * @param depId * @return */ @GetMapping("/12month/dep") public Object analyse12MonthAllWorkByDep(Long depId){ SearchResultVO resultVO = new SearchResultVO<>(); resultVO.setCode(ResultCodes.OK); resultVO.setData(workCountService.count12MonthWorkByDep(depId)); return resultVO; } public static class QueryParam{ private String startTime; private String endTime; private Long depId; private Byte type; public String getStartTime() { return startTime; } public void setStartTime(String startTime) { this.startTime = startTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public Byte getType() { return type; } public void setType(Byte type) { this.type = type; } } }