TrafficLightController.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package com.welampiot.controller;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dto.TrafficLightDTO;
  5. import com.welampiot.dto.TrafficLightLogDTO;
  6. import com.welampiot.service.TrafficLightLogService;
  7. import com.welampiot.service.TrafficLightService;
  8. import com.welampiot.utils.ToolUtils;
  9. import com.welampiot.vo.TrafficLightLogVO;
  10. import com.welampiot.vo.TrafficLightVO;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.CrossOrigin;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import java.util.List;
  18. @RestController
  19. @CrossOrigin
  20. @RequestMapping("/trafficLight")
  21. public class TrafficLightController extends BaseController {
  22. @Autowired
  23. private TrafficLightService trafficLightService;
  24. @Autowired
  25. private TrafficLightLogService trafficLightLogService;
  26. @Autowired
  27. private ToolUtils toolUtils;
  28. /**
  29. * 获取列表
  30. */
  31. @RequestMapping("/getList")
  32. private BaseResult<?> getList(TrafficLightVO trafficLightVO) {
  33. Integer version = trafficLightVO.getVersion();
  34. trafficLightVO.setPageAndCount(trafficLightVO.getPage(), trafficLightVO.getCount());
  35. trafficLightVO.setSectionList(getSectionList(trafficLightVO.getUsername()));
  36. List<TrafficLightDTO> list = trafficLightService.getTrafficLightListByTrafficLightVO(trafficLightVO);
  37. Integer total = trafficLightService.getTrafficLightTotalByTrafficLightVO(trafficLightVO);
  38. Integer onlineTotal = trafficLightService.getTrafficLightOnlineTotalByTrafficLightVO(trafficLightVO);
  39. TrafficLightVO trafficLightVO1 = new TrafficLightVO();
  40. trafficLightVO1.setTotal(total);
  41. trafficLightVO1.setOnline(onlineTotal);
  42. trafficLightVO1.setList(list);
  43. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, trafficLightVO1);
  44. }
  45. /**
  46. * 添加编辑交通灯设备
  47. */
  48. @RequestMapping("/save")
  49. private BaseResult<?> save(TrafficLightVO trafficLightVO) {
  50. return trafficLightService.saveTrafficLightByVO(trafficLightVO);
  51. }
  52. /**
  53. * 删除设备
  54. */
  55. @RequestMapping("/del")
  56. private BaseResult<?> del(TrafficLightVO trafficLightVO) {
  57. if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0)
  58. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, trafficLightVO.getVersion());
  59. trafficLightService.delTrafficLightDataById(trafficLightVO.getId());
  60. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightVO.getVersion());
  61. }
  62. /**
  63. * 设备历史数据
  64. */
  65. @RequestMapping("/history")
  66. private BaseResult<?> history(TrafficLightLogVO trafficLightLogVO) {
  67. BaseResult<?> baseResult = checkData(trafficLightLogVO);
  68. if (baseResult != null) return baseResult;
  69. List<TrafficLightLogDTO> list = trafficLightLogService.getTrafficLightLogListByLogVO(trafficLightLogVO);
  70. Integer total = trafficLightLogService.getTrafficLightLogTotalByLogVO(trafficLightLogVO);
  71. TrafficLightLogVO trafficLightLogVO1 = new TrafficLightLogVO();
  72. trafficLightLogVO1.setTotal(total);
  73. trafficLightLogVO1.setList(list);
  74. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightLogVO.getVersion(), trafficLightLogVO1);
  75. }
  76. private BaseResult<?> checkData(TrafficLightLogVO trafficLightLogVO) {
  77. Integer version = trafficLightLogVO.getVersion();
  78. trafficLightLogVO.setPageAndCount(trafficLightLogVO.getPage(), trafficLightLogVO.getCount());
  79. if (trafficLightLogVO.getId() == null || trafficLightLogVO.getId() == 0) {
  80. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
  81. }
  82. String startDate = trafficLightLogVO.getMinDate();
  83. String endDate = trafficLightLogVO.getMaxDate();
  84. if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
  85. return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR, version);
  86. }
  87. long startTimeStamp = ToolUtils.getTimeStamp(startDate + " 00:00:00");
  88. long endTimeStamp = ToolUtils.getTimeStamp(endDate + " 23:59:59");
  89. if (startTimeStamp > endTimeStamp) {
  90. return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version);
  91. }
  92. // 日期时间间隔不能大于30天
  93. if (endTimeStamp - startTimeStamp > 29 * 24 * 60 * 60 * 1000L) {
  94. return toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR, version);
  95. }
  96. trafficLightLogVO.setMinTime(startDate + " 00:00:00");
  97. trafficLightLogVO.setMaxTime(endDate + " 23:59:59");
  98. return null;
  99. }
  100. /**
  101. * 设置告警推送人员
  102. */
  103. @RequestMapping("/setAlarmUser")
  104. private BaseResult<?> setAlarmUser(TrafficLightVO trafficLightVO) {
  105. Integer version = trafficLightVO.getVersion();
  106. if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0)
  107. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
  108. if (trafficLightVO.getTimeOn() == null || trafficLightVO.getTimeOn().isEmpty())
  109. return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_ON, version);
  110. if (trafficLightVO.getTimeOff() == null || trafficLightVO.getTimeOff().isEmpty())
  111. return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_OFF, version);
  112. if (trafficLightVO.getPatrolTime() == null)
  113. return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_PATROL_TIME, version);
  114. if (trafficLightVO.getWorkId() == null || trafficLightVO.getWorkId().isEmpty())
  115. return toolUtils.response(InterfaceResultEnum.LACK_WORKER, version);
  116. if (trafficLightVO.getTimeOn().compareTo(trafficLightVO.getTimeOff()) >= 0)
  117. return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version);
  118. TrafficLightDTO trafficLightDTO = new TrafficLightDTO();
  119. BeanUtils.copyProperties(trafficLightVO, trafficLightDTO);
  120. trafficLightService.updateTrafficLightAlarmUser(trafficLightDTO);
  121. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version);
  122. }
  123. }