PatrolManageController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. package com.welampiot.controller;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dto.PatrolManageDTO;
  5. import com.welampiot.dto.PatrolSpotDTO;
  6. import com.welampiot.dto.PatrolTaskDTO;
  7. import com.welampiot.dto.PatrolTaskSpotDTO;
  8. import com.welampiot.service.*;
  9. import com.welampiot.utils.ToolUtils;
  10. import com.welampiot.vo.PatrolManageVO;
  11. import com.welampiot.vo.PatrolTaskVO;
  12. import org.json.JSONArray;
  13. import org.json.JSONObject;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.CrossOrigin;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestMethod;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.text.ParseException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.ArrayList;
  23. import java.util.Arrays;
  24. import java.util.List;
  25. /**
  26. * ClassName: PatrolManageController
  27. * Package: com.welampiot.controller
  28. * Description:
  29. *
  30. * @Author: zhj_Start
  31. * @Create: 2023/6/29 - 16:54
  32. * @Version: v1.0
  33. */
  34. @RestController
  35. @CrossOrigin
  36. @RequestMapping("/patrolManage")
  37. public class PatrolManageController {
  38. @Autowired
  39. private ToolUtils toolUtils;
  40. @Autowired
  41. private PatrolManageService patrolManageService;
  42. @Autowired
  43. private PatrolSpotService patrolSpotService;
  44. @Autowired
  45. private RepairPersonnelService repairPersonnelService;
  46. @Autowired
  47. private PatrolTaskService patrolTaskService;
  48. @Autowired
  49. private PatrolTaskSpotService patrolTaskSpotService;
  50. /**
  51. * 巡视计划列表
  52. * @param request 分页、路段筛选、关键字搜索
  53. * @return 巡视计划列表
  54. */
  55. @RequestMapping(value = "/patrolManageList", method = RequestMethod.POST)
  56. public BaseResult<?> patrolManageList(HttpServletRequest request) {
  57. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  58. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  59. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  60. Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1);
  61. Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1);
  62. String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
  63. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  64. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  65. PatrolManageVO vo = new PatrolManageVO();
  66. vo.setPage(count * (page - 1));
  67. vo.setCount(count);
  68. vo.setSectionId(sectionId);
  69. vo.setAreaId(areaId);
  70. vo.setCityId(cityId);
  71. vo.setProvinceId(provinceId);
  72. vo.setKeyword(keyword);
  73. vo.setSectionList(toolUtils.getSectionList(request));
  74. List<PatrolManageDTO> patrolManageList = patrolManageService.getPatrolManageList(vo);
  75. List<PatrolManageDTO> list = new ArrayList<>();
  76. patrolManageList.forEach(patrolManageDTO -> {
  77. if (patrolManageDTO.getId() != null) {
  78. List<PatrolSpotDTO> spotList = patrolSpotService.getPatrolSpotList(patrolManageDTO.getId());
  79. patrolManageDTO.setSpotList(spotList);
  80. }
  81. list.add(patrolManageDTO);
  82. });
  83. PatrolManageVO patrolManageVO = new PatrolManageVO();
  84. patrolManageVO.setList(list);
  85. patrolManageVO.setTotal(patrolManageService.getPatrolManageCount(vo));
  86. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,patrolManageVO);
  87. }
  88. /**
  89. * 巡视计划下拉列表
  90. * @param request 用户名
  91. * @return 巡视计划下拉列表
  92. */
  93. @RequestMapping(value = "/patrolManageNav", method = RequestMethod.POST)
  94. public BaseResult<?> patrolManageNav(HttpServletRequest request) {
  95. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  96. String username = (String) toolUtils.getRequestContent(request,"username",2);
  97. if (username == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  98. Integer userid = repairPersonnelService.getUserIdByUsername(username);
  99. List<PatrolManageDTO> patrolDownList = patrolManageService.getPatrolDownList(userid);
  100. PatrolManageVO patrolManageVO = new PatrolManageVO();
  101. patrolManageVO.setList(patrolDownList);
  102. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,patrolManageVO);
  103. }
  104. /**
  105. * 添加编辑巡视计划
  106. * @param request 要添加编辑的巡视属性
  107. * @return 更新巡视计划数据
  108. */
  109. @RequestMapping(value = "/savePatrolManage", method = RequestMethod.POST)
  110. public BaseResult<?> savePatrolManage(HttpServletRequest request) throws ParseException {
  111. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  112. Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
  113. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  114. Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
  115. String planStartTime = (String) toolUtils.getRequestContent(request,"planStartTime",2);
  116. String planEndTime = (String) toolUtils.getRequestContent(request,"planEndTime",2);
  117. String username = (String) toolUtils.getRequestContent(request,"username",2);
  118. String spotList = (String) toolUtils.getRequestContent(request,"spotList",2);
  119. if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
  120. if (planStartTime.length() == 0 || planEndTime.length() == 0)
  121. return toolUtils.response(InterfaceResultEnum.LACK_PATROL_TIME_ERROR,version);
  122. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  123. long startTime = simpleDateFormat.parse(planStartTime).getTime();
  124. long endTime = simpleDateFormat.parse(planEndTime).getTime();
  125. if (startTime > endTime)
  126. return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR,version);
  127. if (spotList.length() == 0)
  128. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  129. JSONArray spotArray = new JSONArray(spotList);
  130. PatrolManageDTO patrolManageDTO = new PatrolManageDTO();
  131. patrolManageDTO.setSectionId(sectionId);
  132. patrolManageDTO.setCount(count);
  133. patrolManageDTO.setPlanStartTime(planStartTime);
  134. patrolManageDTO.setPlanEndTime(planEndTime);
  135. if (id == 0) { // 添加
  136. Integer userid = repairPersonnelService.getUserIdByUsername(username);
  137. patrolManageDTO.setUserid(userid);
  138. long l = System.currentTimeMillis();
  139. String format = simpleDateFormat.format(l);
  140. patrolManageDTO.setCreateTime(format);
  141. patrolManageService.addPatrolManageData(patrolManageDTO);
  142. Integer dtoId = patrolManageDTO.getId();
  143. for (int i = 0; i < spotArray.length(); i ++) {
  144. JSONObject spotObject = spotArray.getJSONObject(i);
  145. String longitude = spotObject.getString("longitude");
  146. String latitude = spotObject.getString("latitude");
  147. String name = spotObject.getString("name");
  148. if (longitude.length() == 0 || latitude.length() == 0)
  149. return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
  150. if (name.length() == 0)
  151. return toolUtils.response(InterfaceResultEnum.LACK_PATROL_SPOT_NAME_ERROR,version);
  152. PatrolSpotDTO patrolSpotDTO = new PatrolSpotDTO();
  153. patrolSpotDTO.setLatitude(latitude);
  154. patrolSpotDTO.setLongitude(longitude);
  155. patrolSpotDTO.setName(name);
  156. patrolSpotDTO.setPatrolManageId(dtoId);
  157. patrolSpotService.addPatrolSpotData(patrolSpotDTO);
  158. }
  159. } else { // 编辑
  160. patrolManageDTO.setId(id);
  161. patrolManageService.updatePatrolManageData(patrolManageDTO);
  162. // 删除之前的数据,重新添加新数据
  163. patrolSpotService.deletePatrolSpotIdByManageId(id);
  164. PatrolSpotDTO spotDTO = new PatrolSpotDTO();
  165. spotDTO.setPatrolManageId(id);
  166. for (int i = 0; i < spotArray.length(); i ++) {
  167. JSONObject spotObject = spotArray.getJSONObject(i);
  168. String longitude = spotObject.getString("longitude");
  169. String latitude = spotObject.getString("latitude");
  170. String name = spotObject.getString("name");
  171. if (longitude.length() == 0 || latitude.length() == 0)
  172. return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
  173. if (name.length() == 0)
  174. return toolUtils.response(InterfaceResultEnum.LACK_PATROL_SPOT_NAME_ERROR,version);
  175. spotDTO.setName(name);
  176. spotDTO.setLatitude(latitude);
  177. spotDTO.setLongitude(longitude);
  178. patrolSpotService.addPatrolSpotData(spotDTO);
  179. }
  180. }
  181. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  182. }
  183. /**
  184. * 巡视任务列表
  185. * @param request 分页,路段筛选
  186. * @return 巡视任务列表
  187. */
  188. @RequestMapping(value = "/patrolTaskList", method = RequestMethod.POST)
  189. public BaseResult<?> patrolTaskList(HttpServletRequest request) throws ParseException {
  190. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  191. Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
  192. Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
  193. Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
  194. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  195. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  196. Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1);
  197. Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1);
  198. String username = (String) toolUtils.getRequestContent(request,"username",2);
  199. String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
  200. String date = (String) toolUtils.getRequestContent(request,"date",2);
  201. if (username == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  202. String startDate = "", endDate = "";
  203. if (date.length() != 0) {
  204. List<String> strings = Arrays.asList(date.split("/"));
  205. startDate = strings.get(0) + " 00:00:00";
  206. endDate = strings.get(1) + " 23:59:59";
  207. }
  208. PatrolTaskVO patrolTaskVO = new PatrolTaskVO();
  209. patrolTaskVO.setPage(page);
  210. patrolTaskVO.setCount(count);
  211. patrolTaskVO.setStatus(status);
  212. patrolTaskVO.setAreaId(areaId);
  213. patrolTaskVO.setSectionId(sectionId);
  214. patrolTaskVO.setProvinceId(provinceId);
  215. patrolTaskVO.setCityId(cityId);
  216. patrolTaskVO.setKeyword(keyword);
  217. patrolTaskVO.setStartDate(startDate);
  218. patrolTaskVO.setEndDate(endDate);
  219. patrolTaskVO.setSectionList(toolUtils.getSectionList(request));
  220. List<PatrolTaskDTO> patrolTaskList = patrolTaskService.getPatrolTaskList(patrolTaskVO);
  221. List<PatrolTaskDTO> list = new ArrayList<>();
  222. patrolTaskList.forEach(dto -> {
  223. if (dto.getId() != null) {
  224. List<PatrolTaskSpotDTO> patrolTaskSpotList = patrolTaskSpotService.getPatrolTaskSpotList(dto.getId());
  225. dto.setSpotList(patrolTaskSpotList);
  226. }
  227. list.add(dto);
  228. });
  229. PatrolTaskVO vo = new PatrolTaskVO();
  230. vo.setList(list);
  231. vo.setTotal(patrolTaskService.getPatrolTaskTotal(patrolTaskVO));
  232. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
  233. }
  234. }