package com.welampiot.controller; import com.welampiot.common.BaseResult; import com.welampiot.common.InterfaceResultEnum; import com.welampiot.dto.TrafficLightDTO; import com.welampiot.dto.TrafficLightLogDTO; import com.welampiot.service.TrafficLightLogService; import com.welampiot.service.TrafficLightService; import com.welampiot.utils.ToolUtils; import com.welampiot.vo.TrafficLightLogVO; import com.welampiot.vo.TrafficLightVO; import org.apache.commons.lang3.StringUtils; 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.RestController; import java.util.List; @RestController @CrossOrigin @RequestMapping("/trafficLight") public class TrafficLightController extends BaseController { @Autowired private TrafficLightService trafficLightService; @Autowired private TrafficLightLogService trafficLightLogService; @Autowired private ToolUtils toolUtils; /** * 获取列表 */ @RequestMapping("/getList") private BaseResult getList(TrafficLightVO trafficLightVO) { Integer version = trafficLightVO.getVersion(); trafficLightVO.setPageAndCount(trafficLightVO.getPage(), trafficLightVO.getCount()); trafficLightVO.setSectionList(getSectionList(trafficLightVO.getUsername())); List list = trafficLightService.getTrafficLightListByTrafficLightVO(trafficLightVO); Integer total = trafficLightService.getTrafficLightTotalByTrafficLightVO(trafficLightVO); Integer onlineTotal = trafficLightService.getTrafficLightOnlineTotalByTrafficLightVO(trafficLightVO); TrafficLightVO trafficLightVO1 = new TrafficLightVO(); trafficLightVO1.setTotal(total); trafficLightVO1.setOnline(onlineTotal); trafficLightVO1.setList(list); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, trafficLightVO1); } /** * 添加编辑交通灯设备 */ @RequestMapping("/save") private BaseResult save(TrafficLightVO trafficLightVO) { return trafficLightService.saveTrafficLightByVO(trafficLightVO); } /** * 删除设备 */ @RequestMapping("/del") private BaseResult del(TrafficLightVO trafficLightVO) { if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, trafficLightVO.getVersion()); trafficLightService.delTrafficLightDataById(trafficLightVO.getId()); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightVO.getVersion()); } /** * 设备历史数据 */ @RequestMapping("/history") private BaseResult history(TrafficLightLogVO trafficLightLogVO) { BaseResult baseResult = checkData(trafficLightLogVO); if (baseResult != null) return baseResult; List list = trafficLightLogService.getTrafficLightLogListByLogVO(trafficLightLogVO); Integer total = trafficLightLogService.getTrafficLightLogTotalByLogVO(trafficLightLogVO); TrafficLightLogVO trafficLightLogVO1 = new TrafficLightLogVO(); trafficLightLogVO1.setTotal(total); trafficLightLogVO1.setList(list); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightLogVO.getVersion(), trafficLightLogVO1); } private BaseResult checkData(TrafficLightLogVO trafficLightLogVO) { Integer version = trafficLightLogVO.getVersion(); trafficLightLogVO.setPageAndCount(trafficLightLogVO.getPage(), trafficLightLogVO.getCount()); if (trafficLightLogVO.getId() == null || trafficLightLogVO.getId() == 0) { return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version); } String startDate = trafficLightLogVO.getMinDate(); String endDate = trafficLightLogVO.getMaxDate(); if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) { return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR, version); } long startTimeStamp = ToolUtils.getTimeStamp(startDate + " 00:00:00"); long endTimeStamp = ToolUtils.getTimeStamp(endDate + " 23:59:59"); if (startTimeStamp > endTimeStamp) { return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version); } // 日期时间间隔不能大于30天 if (endTimeStamp - startTimeStamp > 29 * 24 * 60 * 60 * 1000L) { return toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR, version); } trafficLightLogVO.setMinTime(startDate + " 00:00:00"); trafficLightLogVO.setMaxTime(endDate + " 23:59:59"); return null; } /** * 设置告警推送人员 */ @RequestMapping("/setAlarmUser") private BaseResult setAlarmUser(TrafficLightVO trafficLightVO) { Integer version = trafficLightVO.getVersion(); if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version); if (trafficLightVO.getTimeOn() == null || trafficLightVO.getTimeOn().isEmpty()) return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_ON, version); if (trafficLightVO.getTimeOff() == null || trafficLightVO.getTimeOff().isEmpty()) return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_OFF, version); if (trafficLightVO.getPatrolTime() == null) return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_PATROL_TIME, version); if (trafficLightVO.getWorkId() == null || trafficLightVO.getWorkId().isEmpty()) return toolUtils.response(InterfaceResultEnum.LACK_WORKER, version); if (trafficLightVO.getTimeOn().compareTo(trafficLightVO.getTimeOff()) >= 0) return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version); TrafficLightDTO trafficLightDTO = new TrafficLightDTO(); BeanUtils.copyProperties(trafficLightVO, trafficLightDTO); trafficLightService.updateTrafficLightAlarmUser(trafficLightDTO); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version); } }