package com.welampiot.controller; import com.welampiot.common.BaseResult; import com.welampiot.common.InterfaceResultEnum; import com.welampiot.dto.*; import com.welampiot.service.*; import com.welampiot.utils.ToolUtils; import com.welampiot.vo.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.YearMonth; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; /** * ClassName: WorkManageController * Package: com.welampiot.controller * Description: * * @Author: zhj_Start * @Create: 2023/6/27 - 14:29 * @Version: v1.0 */ @RestController @CrossOrigin @RequestMapping("/workManage") public class WorkManageController { @Autowired private AllAlarmInfoLogService allAlarmInfoLogService; @Autowired private ToolUtils toolUtils; @Autowired private RepairPersonnelService repairPersonnelService; @Autowired private WorkManageService workManageService; @Autowired private WorkManageFileService workManageFileService; @Autowired private WorkManageDescService workManageDescService; @Autowired private UserService userService; @Autowired private RepairProjectService repairProjectService; @Autowired private DefectManageService defectManageService; @Autowired private PatrolManageService patrolManageService; /** * 故障列表 * @param request 分页、区域路段筛选、故障类型、设备类型 * @return 故障列表 */ @RequestMapping(value = "/alarmList", method = RequestMethod.POST) public BaseResult alarmList(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1); Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1); Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1); Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1); String alarmType = (String) toolUtils.getRequestContent(request,"alarmType",2); String type = request.getParameter("type") == null ? "" : request.getParameter("type"); int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page")); int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count")); AllAlarmInfoLogVO vo = new AllAlarmInfoLogVO(); vo.setLimit(count * (page - 1)); vo.setOffset(count); vo.setSectionId(sectionId); vo.setAreaId(areaId); vo.setCityId(cityId); vo.setProvinceId(provinceId); vo.setAlarmType(alarmType); vo.setVersion(version); vo.setSectionList(toolUtils.getSectionList(request)); List alarmList; List list = new ArrayList<>(); switch (type) { case "4": alarmList = allAlarmInfoLogService.getElectricBoxAlarmListByVO(vo); break; case "3": alarmList = allAlarmInfoLogService.getWaterImmersionAlarmListByVO(vo); break; case "1": alarmList = allAlarmInfoLogService.getLampPoleAlarmListByVO(vo); break; case "0": alarmList = allAlarmInfoLogService.getLampAlarmListByVO(vo); break; default: List eleBoxList = allAlarmInfoLogService.getElectricBoxAlarmListByVO(vo); List waterList = allAlarmInfoLogService.getWaterImmersionAlarmListByVO(vo); List lampPoleList = allAlarmInfoLogService.getLampPoleAlarmListByVO(vo); List lampList = allAlarmInfoLogService.getLampAlarmListByVO(vo); // 将配电箱、水浸、灯杆、路灯合并成一个列表 alarmList = Stream.of(eleBoxList, waterList, lampPoleList, lampList) .flatMap(Collection::stream) .collect(Collectors.toList()); break; } alarmList.forEach(dto -> { if (dto.getArea() == null) { dto.setArea(""); } if (dto.getSection() == null) { dto.setSection(""); } if (dto.getCity() == null) { dto.setCity(""); } if (dto.getProvince() == null) { dto.setProvince(""); } if (dto.getNumber() == null) { dto.setNumber(""); } if (dto.getName() == null) { dto.setName(""); } if (dto.getLongitude() == null) { dto.setLongitude("0"); } if (dto.getLatitude() == null) { dto.setLatitude("0"); } if (dto.getProvince().equals("") && dto.getCity().equals("") && dto.getArea().equals("") && dto.getSection().equals("")) { dto.setAddr(""); } dto.setAddr(dto.getProvince() + " " + dto.getCity() + " " + dto.getArea() + " " + dto.getSection()); list.add(dto); }); AllAlarmInfoLogVO allAlarmInfoLogVO = new AllAlarmInfoLogVO(); allAlarmInfoLogVO.setList(list); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,allAlarmInfoLogVO); } /** * 维修人员下拉列表 * @param request 用户名 * @return 下拉列表 */ @RequestMapping(value = "/alarmUserNav", method = RequestMethod.POST) public BaseResult alarmUserNav(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); String username = (String) toolUtils.getRequestContent(request,"username",2); if (username.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); Integer userId = repairPersonnelService.getUserIdByUsername(username); if (userId == null || userId == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); RepairPersonnelVO repairPersonnel = repairPersonnelService.getRepairPersonnelDropDownListByDTO(userId); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,repairPersonnel); } /** * 工单列表 * @param request 分页、关键字搜索、区域路段筛选 * @return 工单列表 */ @RequestMapping(value = "/alarmManageList", method = RequestMethod.POST) public BaseResult alarmManageList(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1); Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1); Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1); Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1); Integer status = (Integer) toolUtils.getRequestContent(request,"status",1); String keyword = (String) toolUtils.getRequestContent(request,"keyword",2); int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page")); int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count")); WorkManageVO vo = new WorkManageVO(); vo.setPage(count * (page - 1)); vo.setCount(count); vo.setSectionId(sectionId); vo.setAreaId(areaId); vo.setCityId(cityId); vo.setProvinceId(provinceId); vo.setKeyword(keyword); vo.setStatus(status); vo.setSectionList(toolUtils.getSectionList(request)); List workManageList = workManageService.getWorkManageListByVO(vo); List list = new ArrayList<>(); workManageList.forEach(workManageDTO -> { if (workManageDTO.getId() != null) { List fileList = workManageFileService.getWorkManageFileListById(workManageDTO.getId()); workManageDTO.setFileList(fileList); } list.add(workManageDTO); }); WorkManageVO workManageVO = new WorkManageVO(); workManageVO.setList(list); workManageVO.setTotal(workManageService.getWorkManageTotal(vo)); workManageVO.setTotal1(workManageService.getWorkManageTotal(vo)); workManageVO.setTotal2(workManageService.getWorkManageTotal2(vo)); workManageVO.setTotal3(workManageService.getWorkManageTotal3(vo)); workManageVO.setTotal4(workManageService.getWorkManageTotal4(vo)); workManageVO.setTotal5(workManageService.getWorkManageTotal5(vo)); workManageVO.setTotal6(workManageService.getWorkManageTotal6(vo)); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,workManageVO); } /** * 工单详情 * @param request 工单id * @return 工单详情 */ @RequestMapping(value = "/workManageInfo", method = RequestMethod.POST) public BaseResult workManageInfo(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); WorkManageDTO workManageDTO = workManageService.getWorkManageInfoById(id); if (workManageDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); WorkManageInfoVO workManageInfoVO = new WorkManageInfoVO(); BeanUtils.copyProperties(workManageDTO,workManageInfoVO); List fileList = workManageFileService.getWorkManageFileListById(workManageDTO.getId()); List descList = workManageDescService.getWorkManageDescDetails(workManageDTO.getId()); workManageInfoVO.setFileList(fileList); workManageInfoVO.setHistory(descList); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,workManageInfoVO); } /** * 添加编辑工单 * @param request 工单的属性 * @return 更新工单数据 */ @RequestMapping(value = "/saveWorkManage", method = RequestMethod.POST) public BaseResult saveWorkManage(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1); Integer alarmId = (Integer) toolUtils.getRequestContent(request,"alarmId",1); Integer devType = (Integer) toolUtils.getRequestContent(request,"devType",1); Integer level = (Integer) toolUtils.getRequestContent(request,"level",1); String openTime = (String) toolUtils.getRequestContent(request,"openTime",2); String location = (String) toolUtils.getRequestContent(request,"location",2); String devName = (String) toolUtils.getRequestContent(request,"devName",2); String script = (String) toolUtils.getRequestContent(request,"script",2); String longitude = (String) toolUtils.getRequestContent(request,"longitude",2); String latitude = (String) toolUtils.getRequestContent(request,"latitude",2); String username = (String) toolUtils.getRequestContent(request,"username",2); if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version); if (alarmId == 0) return toolUtils.response(InterfaceResultEnum.LACK_ALARM_ID_ERROR,version); if (String.valueOf(devType).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_DEV_TYPE_ERROR,version); if (String.valueOf(level).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LEVEL_ERROR,version); if (openTime.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_OPEN_TIME_ERROR,version); if (location.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version); if (devName.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DEV_NAME_ERROR,version); if (script.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_SCRIPT_ERROR,version); if (longitude.length() == 0 || latitude.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version); WorkManageDTO workManageDTO = new WorkManageDTO(); workManageDTO.setSectionId(sectionId); workManageDTO.setAlarmId(alarmId); workManageDTO.setDevType(devType); workManageDTO.setLevel(level); workManageDTO.setOpenTime(openTime); workManageDTO.setLocation(location); workManageDTO.setDevName(devName); workManageDTO.setScript(script); workManageDTO.setLongitude(longitude); workManageDTO.setLatitude(latitude); if (id == 0) { // 添加 long l = System.currentTimeMillis(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); workManageDTO.setCreateTime(simpleDateFormat.format(l)); Integer userId = repairPersonnelService.getUserIdByUsername(username); workManageDTO.setUserid(userId); workManageService.addWorkManageData(workManageDTO); WorkManageDTO dto = workManageService.getAlarmIdAndUseridById(id); String name = userService.getNameByUserid(dto.getUserid()); WorkManageDescDTO workManageDescDTO = new WorkManageDescDTO(); workManageDescDTO.setWorkManageId(id); workManageDescDTO.setCreateTime(simpleDateFormat.format(l)); workManageDescDTO.setDescribe(name + " 创建工单"); workManageDescService.addWorkManageDescData(workManageDescDTO); } else { // 编辑 workManageDTO.setId(id); workManageService.updateWorkManageData(workManageDTO); Integer fileId = (Integer) toolUtils.getRequestContent(request,"fileId",1); String name = (String) toolUtils.getRequestContent(request,"name",2); String url = (String) toolUtils.getRequestContent(request,"url",2); if (fileId == 0 || name.length() == 0 || url.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); WorkManageFileDTO workManageFileDTO = new WorkManageFileDTO(); workManageFileDTO.setId(fileId); workManageFileDTO.setWorkManageId(id); workManageFileDTO.setName(name); workManageFileDTO.setUrl(url); workManageFileService.updateWorkManageFile(workManageFileDTO); } return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 派发工单 * @param request 工单id,维修人员id * @return 派发工单 */ @RequestMapping(value = "/distributeWork", method = RequestMethod.POST) public BaseResult distributeWork(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); Integer workId = (Integer) toolUtils.getRequestContent(request,"workId",1); if (id == 0 || workId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); // 更新工单状态status为1(处理中) WorkManageDTO workManageDTO = new WorkManageDTO(); workManageDTO.setId(id); workManageDTO.setStatus(1); workManageService.updateWorkStatus(workManageDTO); // 获取对应的故障id,并对应更新它的状态为处理中 WorkManageDTO dto = workManageService.getAlarmIdAndUseridById(id); AllAlarmInfoLogDTO allAlarmInfoLogDTO = new AllAlarmInfoLogDTO(); allAlarmInfoLogDTO.setId(dto.getAlarmId()); allAlarmInfoLogDTO.setStatus(1); allAlarmInfoLogService.updateAlarmStatus(allAlarmInfoLogDTO); //记录工单的描述信息 long l = System.currentTimeMillis(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(l); String name = userService.getNameByUserid(dto.getUserid()); RepairPersonnelDetailsVO detailsVO = repairPersonnelService.getDetailsByRepairPersonnelDTO(workId); if (detailsVO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); WorkManageDescDTO workManageDescDTO = new WorkManageDescDTO(); workManageDescDTO.setWorkManageId(id); workManageDescDTO.setDescribe(name + " 派发工单-> " + detailsVO.getName()); workManageDescDTO.setCreateTime(format); workManageDescService.addWorkManageDescData(workManageDescDTO); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 设置工单状态 * @param request 工单id,工单状态 * @return 修改工单状态,记录工单信息 */ @RequestMapping(value = "/setWorkManageStatus", method = RequestMethod.POST) public BaseResult setWorkManageStatus(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); Integer status = (Integer) toolUtils.getRequestContent(request,"status",1); if (id == 0 || status == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); // 更新工单状态 WorkManageDTO workManageDTO = new WorkManageDTO(); workManageDTO.setId(id); workManageDTO.setStatus(status); workManageService.updateWorkStatus(workManageDTO); // 如果status为3获取对应的故障id,并对应更新它的状态为已完成 WorkManageDTO dto = workManageService.getAlarmIdAndUseridById(id); if (status == 3) { AllAlarmInfoLogDTO allAlarmInfoLogDTO = new AllAlarmInfoLogDTO(); allAlarmInfoLogDTO.setId(dto.getAlarmId()); allAlarmInfoLogDTO.setStatus(2); allAlarmInfoLogService.updateAlarmStatus(allAlarmInfoLogDTO); } //记录工单的描述信息 long l = System.currentTimeMillis(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(l); String name = userService.getNameByUserid(dto.getUserid()); WorkManageDescDTO workManageDescDTO = new WorkManageDescDTO(); workManageDescDTO.setWorkManageId(id); if (status == 4) { workManageDescDTO.setDescribe(name + " 归档"); } else if (status == 3) { workManageDescDTO.setDescribe(name + " 复核通过,已经结案"); } else if (status == 2) { workManageDescDTO.setDescribe(name + " 标记处理,进入复核状态"); } else if (status == 1) { workManageDescDTO.setDescribe(name + " 复核不通过,重新进入未处理"); } workManageDescDTO.setCreateTime(format); workManageDescService.addWorkManageDescData(workManageDescDTO); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 添加编辑维修项目 * @param request 维修项目属性 * @return 更新维修项目数据 */ @RequestMapping(value = "/saveRepairProject", method = RequestMethod.POST) public BaseResult saveRepairProject(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1); Integer workId = (Integer) toolUtils.getRequestContent(request,"workId",1); Integer type = (Integer) toolUtils.getRequestContent(request,"type",1); String comTime = (String) toolUtils.getRequestContent(request,"comTime",2); String desc = (String) toolUtils.getRequestContent(request,"desc",2); String username = (String) toolUtils.getRequestContent(request,"username",2); if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version); if (workId == 0) return toolUtils.response(InterfaceResultEnum.LACK_WORK_ID_ERROR,version); if (desc.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_SCRIPT_ERROR,version); if (comTime.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_COM_TIME_ERROR,version); RepairProjectDTO repairProjectDTO = new RepairProjectDTO(); repairProjectDTO.setSectionId(sectionId); repairProjectDTO.setWorkId(workId); repairProjectDTO.setType(type); repairProjectDTO.setComTime(comTime); repairProjectDTO.setDesc(desc); if (id == 0) { // 添加 long l = System.currentTimeMillis(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(l); Integer userid = repairPersonnelService.getUserIdByUsername(username); repairProjectDTO.setUserid(userid); repairProjectDTO.setCreateTime(format); repairProjectService.addRepairProjectData(repairProjectDTO); } else { // 编辑 repairProjectDTO.setId(id); repairProjectService.updateRepairProjectData(repairProjectDTO); } return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 项目维修列表 * @param request 分页、关键字搜索、区域路段筛选 * @return 项目维修列表 */ @RequestMapping(value = "/repairProjectList", method = RequestMethod.POST) public BaseResult repairProjectList(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1); Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1); Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1); Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1); Integer type = (Integer) toolUtils.getRequestContent(request,"type",1); String keyword = (String) toolUtils.getRequestContent(request,"keyword",2); int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page")); int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count")); RepairProjectVO vo = new RepairProjectVO(); vo.setPage(count * (page - 1)); vo.setCount(count); vo.setSectionId(sectionId); vo.setAreaId(areaId); vo.setCityId(cityId); vo.setProvinceId(provinceId); vo.setKeyword(keyword); vo.setType(type); vo.setSectionList(toolUtils.getSectionList(request)); List repairProjectList = repairProjectService.getRepairProjectList(vo); RepairProjectVO repairProjectVO = new RepairProjectVO(); repairProjectVO.setList(repairProjectList); repairProjectVO.setTotal(repairProjectService.getRepairProjectTotal(vo)); repairProjectVO.setTotal1(repairProjectService.getRepairProjectTotal(vo)); repairProjectVO.setTotal2(repairProjectService.getRepairProjectTotal2(vo)); repairProjectVO.setTotal3(repairProjectService.getRepairProjectTotal3(vo)); repairProjectVO.setTotal4(repairProjectService.getRepairProjectTotal4(vo)); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,repairProjectVO); } /** * 维修标记完成 * @param request 维修项目id * @return 修改维修项目状态为完成 */ @RequestMapping(value = "/setRepairProjectStatus", method = RequestMethod.POST) public BaseResult setRepairProjectStatus(HttpServletRequest request) { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); RepairProjectDTO repairProjectDTO = new RepairProjectDTO(); repairProjectDTO.setId(id); repairProjectDTO.setStatus(2); repairProjectService.updateRepairProjectStatus(repairProjectDTO); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 概览数据 * @param request 时间筛选 * @return 概览数据 */ @RequestMapping(value = "/operationData", method = RequestMethod.POST) public BaseResult operationData(HttpServletRequest request) throws ParseException { Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1); Integer dateType = (Integer) toolUtils.getRequestContent(request, "dateType", 1); long l = System.currentTimeMillis(); Date date1 = new Date(l); Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); int year = calendar.get(Calendar.YEAR); // 获取年份 int month = calendar.get(Calendar.MONTH) + 1; // 获取月份 long startTime,endTime; String startDate = ""; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String endDate = simpleDateFormat.format(l); if (dateType == 0) { // 当月 if (month < 10) { startDate = year + "-0" + month + "-01"; } else { startDate = year + "-" + month + "-01"; } } else if (dateType == 1) { // 当年 month = 1; startDate = year + "-0" + month + "-01"; endDate = simpleDateFormat.format(l); } else if (dateType == 2) { // 全部 endDate = simpleDateFormat.format(l); } else if (dateType == 3) { // 具体月份 String date = (String) toolUtils.getRequestContent(request, "date", 2); if (date.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR, version); List list = Arrays.asList(date.split("-")); int yearNum = Integer.parseInt(list.get(0)); int monthNum = Integer.parseInt(list.get(1)); int daysInMonth = YearMonth.of(yearNum, monthNum).lengthOfMonth(); if (yearNum == year && monthNum == month) { if (month < 10) { startDate = year + "-" + "0" + month + "-01"; } else { startDate = year + "-" + month + "-01"; } } else if ((yearNum == year && monthNum > month) || (yearNum > year)) { return toolUtils.response(InterfaceResultEnum.DATE_CHOOSE_ERROR, version); } else { startTime = simpleDateFormat.parse(date + "-01").getTime(); endTime = simpleDateFormat.parse(date + "-" + daysInMonth).getTime(); startDate = simpleDateFormat.format(startTime); endDate = simpleDateFormat.format(endTime); } } OperationVO operationVO = new OperationVO(); operationVO.setStartDate(startDate); operationVO.setEndDate(endDate); operationVO.setSectionList(toolUtils.getSectionList(request)); List dateList = new ArrayList<>(); List alarmList = new ArrayList<>(); List workList = new ArrayList<>(); List defectList = new ArrayList<>(); List patrolList = new ArrayList<>(); List projectList = new ArrayList<>(); List dataList = new ArrayList<>(); HashMap objectObjectHashMap = new HashMap<>(); long timeT = l - 29L * 3600 * 1000 * 24; int i = 0; while (timeT <= l) { objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)),i); dateList.add(simpleDateFormat.format(new Date(timeT))); alarmList.add(0); workList.add(0); defectList.add(0); patrolList.add(0); projectList.add(0); dataList.add(new OperationDataDTO(0,0,0,0,0,simpleDateFormat.format(new Date(timeT)))); timeT += 3600 * 1000 * 24; i ++; } // 故障列表 List alarmCountList = allAlarmInfoLogService.getAllAlarmCountOnMonth(operationVO); for (AllAlarmInfoLogDTO dto : alarmCountList) { Date date = new Date(simpleDateFormat.parse(dto.getUpdateTime()).getTime()); String s = simpleDateFormat.format(date); Integer integer = null; if (objectObjectHashMap.containsKey(s)) { integer = objectObjectHashMap.get(s); } if (dto.getDayCount() != null && dto.getDayCount() != 0 && integer != null) { alarmList.set(integer, dto.getDayCount()); } } // 工单列表 List workCountList = workManageService.getWorkManageCountOnMonth(operationVO); for (WorkManageDTO dto : workCountList) { Date date = new Date(simpleDateFormat.parse(dto.getCreateTime()).getTime()); String s = simpleDateFormat.format(date); Integer integer = null; if (objectObjectHashMap.containsKey(s)) { integer = objectObjectHashMap.get(s); } if (dto.getDayCount() != null && dto.getDayCount() != 0 && integer != null) { workList.set(integer, dto.getDayCount()); } } // 缺陷列表 List defectCountList = defectManageService.getDefectManageCountOnMonth(operationVO); for (DefectManageDTO dto : defectCountList) { Date date = new Date(simpleDateFormat.parse(dto.getCreateTime()).getTime()); String s = simpleDateFormat.format(date); Integer integer = null; if (objectObjectHashMap.containsKey(s)) { integer = objectObjectHashMap.get(s); } if (dto.getDayCount() != null && dto.getDayCount() != 0 && integer != null) { defectList.set(integer, dto.getDayCount()); } } // 巡视列表 List patrolCountList = patrolManageService.getPatrolManageCountOnMonth(operationVO); for (PatrolManageDTO dto : patrolCountList) { Date date = new Date(simpleDateFormat.parse(dto.getCreateTime()).getTime()); String s = simpleDateFormat.format(date); Integer integer = null; if (objectObjectHashMap.containsKey(s)) { integer = objectObjectHashMap.get(s); } if (dto.getDayCount() != null && dto.getDayCount() != 0 && integer != null) { patrolList.set(integer, dto.getDayCount()); } } // 维修项目列表 List repairCountList = repairProjectService.getRepairProjectCountOnMonth(operationVO); for (RepairProjectDTO dto : repairCountList) { Date date = new Date(simpleDateFormat.parse(dto.getCreateTime()).getTime()); String s = simpleDateFormat.format(date); Integer integer = null; if (objectObjectHashMap.containsKey(s)) { integer = objectObjectHashMap.get(s); } if (dto.getDayCount() != null && dto.getDayCount() != 0 && integer != null) { projectList.set(integer, dto.getDayCount()); } } // 列表数据 for (OperationDataDTO dto : dataList) { alarmCountList.forEach(dto1 -> { if (dto1.getUpdateTime().equals(dto.getDate())) { dto.setAlarmCount(dto1.getDayCount()); } }); workCountList.forEach(dto1 -> { if (dto1.getCreateTime().equals(dto.getDate())) { dto.setWorkCount(dto1.getDayCount()); } }); defectCountList.forEach(dto1 -> { if (dto1.getCreateTime().equals(dto.getDate())) { dto.setDefectCount(dto1.getDayCount()); } }); patrolCountList.forEach(dto1 -> { if (dto1.getCreateTime().equals(dto.getDate())) { dto.setPatrolCount(dto1.getDayCount()); } }); repairCountList.forEach(dto1 -> { if (dto1.getCreateTime().equals(dto.getDate())) { dto.setProjectCount(dto1.getDayCount()); } }); } Integer allAlarmInfoLogCount = allAlarmInfoLogService.getAllAlarmInfoLogCount(operationVO); Integer workManageCount = workManageService.getWorkManageCount(operationVO); Integer defectManageCount = defectManageService.getDefectManageCount(operationVO); Integer patrolManageCount = patrolManageService.getPatrolManageCount1(operationVO); Integer repairProjectCount = repairProjectService.getRepairProjectCount(operationVO); OperationVO vo = new OperationVO(); vo.setAlarmCount(allAlarmInfoLogCount); vo.setWorkCount(workManageCount); vo.setDefectCount(defectManageCount); vo.setPatrolCount(patrolManageCount); vo.setProjectCount(repairProjectCount); vo.setAlarmList(alarmList); vo.setWorkList(workList); vo.setDefectList(defectList); vo.setPatrolList(patrolList); vo.setProjectList(projectList); vo.setDateList(dateList); vo.setDataList(dataList); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo); } }