|
@@ -0,0 +1,246 @@
|
|
|
+package com.welampiot.controller;
|
|
|
+
|
|
|
+import com.welampiot.common.BaseResult;
|
|
|
+import com.welampiot.common.InterfaceResultEnum;
|
|
|
+import com.welampiot.dto.LampInfoDTO;
|
|
|
+import com.welampiot.dto.RadarDevInfoDTO;
|
|
|
+import com.welampiot.service.LampService;
|
|
|
+import com.welampiot.service.RadarDevInfoService;
|
|
|
+import com.welampiot.utils.ExcelUtil;
|
|
|
+import com.welampiot.utils.ToolUtils;
|
|
|
+import com.welampiot.vo.RadarDevInfoVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.CrossOrigin;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * ClassName: RadarDeviceController
|
|
|
+ * Package: com.welampiot.controller
|
|
|
+ * Description:
|
|
|
+ *
|
|
|
+ * @Author: zhj_Start
|
|
|
+ * @Create: 2023/7/28 - 16:00
|
|
|
+ * @Version: v1.0
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@CrossOrigin
|
|
|
+@RequestMapping("/radarDevice")
|
|
|
+public class RadarDeviceController {
|
|
|
+ @Autowired
|
|
|
+ private RadarDevInfoService radarDevInfoService;
|
|
|
+ @Autowired
|
|
|
+ private ToolUtils toolUtils;
|
|
|
+ @Autowired
|
|
|
+ private LampService lampService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 雷达数据统计
|
|
|
+ * @param request areaId,sectionId,sectionList,keyword
|
|
|
+ * @return 雷达数据统计
|
|
|
+ */
|
|
|
+ @PostMapping("/data")
|
|
|
+ private BaseResult<?> data(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);
|
|
|
+ String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
|
|
|
+ RadarDevInfoVO radarDevInfoVO = new RadarDevInfoVO();
|
|
|
+ radarDevInfoVO.setAreaId(areaId);
|
|
|
+ radarDevInfoVO.setSectionId(sectionId);
|
|
|
+ radarDevInfoVO.setKeyword(keyword);
|
|
|
+ radarDevInfoVO.setSectionList(toolUtils.getSectionList(request));
|
|
|
+ Integer total = radarDevInfoService.getRadarTotal(radarDevInfoVO);
|
|
|
+ Integer onlineTotal = radarDevInfoService.getRadarOnlineTotal(radarDevInfoVO);
|
|
|
+ RadarDevInfoVO vo = new RadarDevInfoVO();
|
|
|
+ vo.setTotal(total);
|
|
|
+ vo.setOnlineCount(onlineTotal);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 雷达设备列表
|
|
|
+ * @param request areaId,sectionId,sectionList,keyword
|
|
|
+ * @return 雷达设备列表
|
|
|
+ */
|
|
|
+ @PostMapping("/getList")
|
|
|
+ private BaseResult<?> getList(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 online = (Integer) toolUtils.getRequestContent(request,"online",1);
|
|
|
+ Integer download = (Integer) toolUtils.getRequestContent(request,"download",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"));
|
|
|
+ RadarDevInfoVO radarDevInfoVO = new RadarDevInfoVO();
|
|
|
+ radarDevInfoVO.setAreaId(areaId);
|
|
|
+ radarDevInfoVO.setSectionId(sectionId);
|
|
|
+ radarDevInfoVO.setKeyword(keyword);
|
|
|
+ radarDevInfoVO.setOnline(online);
|
|
|
+ radarDevInfoVO.setVersion(version);
|
|
|
+ radarDevInfoVO.setSectionList(toolUtils.getSectionList(request));
|
|
|
+ if (download == 0) {
|
|
|
+ radarDevInfoVO.setPage(count * (page - 1));
|
|
|
+ radarDevInfoVO.setCount(count);
|
|
|
+ }
|
|
|
+ Integer total = radarDevInfoService.getRadarTotal(radarDevInfoVO);
|
|
|
+ List<RadarDevInfoDTO> radarDevList = radarDevInfoService.getRadarDevList(radarDevInfoVO);
|
|
|
+ RadarDevInfoVO vo = new RadarDevInfoVO();
|
|
|
+ vo.setTotal(total);
|
|
|
+ if (download == 0) {
|
|
|
+ radarDevList.forEach(dto -> {
|
|
|
+ if (dto.getLampIds() != null && !dto.getLampIds().equals("")) {
|
|
|
+ List<String> lampIds = Arrays.asList(dto.getLampIds().split(","));
|
|
|
+ List<LampInfoDTO> lampData = lampService.getLampDataByLampIds(lampIds);
|
|
|
+ dto.setLampData(lampData);
|
|
|
+ } else {
|
|
|
+ dto.setLampData(new ArrayList<>());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ vo.setList(radarDevList);
|
|
|
+ } else {
|
|
|
+ String title;
|
|
|
+ if (version == 0) {
|
|
|
+ title = "路段,网络状态,设备地址,设备类型,来向车速,去向车速,雷达开启(开/关)灯的开始时间,雷达开启(开/关)灯的结束时间,更新时间";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Road Section,Network Status,Device Address,Device Type, Coming Speed,Going Speed," +
|
|
|
+ "Start Time Of Radar On (on/off) Light,End Time Of Radar On (on/off) Light,Update Time";
|
|
|
+ } else {
|
|
|
+ title = "";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (RadarDevInfoDTO r : radarDevList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(0,r.getArea());
|
|
|
+ if (r.getOnline() == 1) {
|
|
|
+ if (version == 0) {
|
|
|
+ newString.add(1,"在线");
|
|
|
+ } else if (version == 1) {
|
|
|
+ newString.add(1,"online");
|
|
|
+ } else {
|
|
|
+ newString.add(1,"Онлайн -");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (version == 0) {
|
|
|
+ newString.add(1,"离线");
|
|
|
+ } else if (version == 1) {
|
|
|
+ newString.add(1,"offline");
|
|
|
+ } else {
|
|
|
+ newString.add(1,"отключ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newString.add(2,r.getAddress());
|
|
|
+ newString.add(3,"WE-LD485");
|
|
|
+ newString.add(4,r.getComeSpeed());
|
|
|
+ newString.add(5,r.getDesSpeed());
|
|
|
+ newString.add(6,r.getBeginTime());
|
|
|
+ newString.add(7,r.getEndTime());
|
|
|
+ newString.add(8,r.getUpdateTime());
|
|
|
+ contentList.add(radarDevList.indexOf(r),newString);
|
|
|
+ }
|
|
|
+ String path = ExcelUtil.outExcel(titleList, contentList);
|
|
|
+ vo.setList(radarDevList);
|
|
|
+ vo.setPath(path);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加编辑雷达
|
|
|
+ * @param request 要编辑的雷达属性
|
|
|
+ * @return 添加编辑雷达
|
|
|
+ */
|
|
|
+ @PostMapping("/save")
|
|
|
+ private BaseResult<?> save(HttpServletRequest request) {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
|
|
|
+ Integer model = (Integer) toolUtils.getRequestContent(request,"model",1);
|
|
|
+ Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
|
|
|
+ Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
|
|
|
+ String name = (String) toolUtils.getRequestContent(request,"name",2);
|
|
|
+ String number = (String) toolUtils.getRequestContent(request,"number",2);
|
|
|
+ String address = (String) toolUtils.getRequestContent(request,"address",2);
|
|
|
+ String longitude = (String) toolUtils.getRequestContent(request,"longitude",2);
|
|
|
+ String latitude = (String) toolUtils.getRequestContent(request,"latitude",2);
|
|
|
+ if (areaId == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
|
|
|
+ if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
|
|
|
+ if (name.length() == 0 || number.length() == 0 || address.length() == 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
|
|
|
+ RadarDevInfoDTO radarDevInfoDTO = new RadarDevInfoDTO();
|
|
|
+ radarDevInfoDTO.setModel(model);
|
|
|
+ radarDevInfoDTO.setSectionId(sectionId);
|
|
|
+ radarDevInfoDTO.setAreaId(areaId);
|
|
|
+ radarDevInfoDTO.setAddress(address);
|
|
|
+ radarDevInfoDTO.setName(name);
|
|
|
+ radarDevInfoDTO.setNumber(number);
|
|
|
+ radarDevInfoDTO.setLatitude(Double.valueOf(latitude));
|
|
|
+ radarDevInfoDTO.setLongitude(Double.valueOf(longitude));
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String format = simpleDateFormat.format(l);
|
|
|
+ radarDevInfoDTO.setCreateTime(format);
|
|
|
+ radarDevInfoDTO.setUpdateTime(format);
|
|
|
+ if (id == 0) { // 添加
|
|
|
+ RadarDevInfoDTO dto = new RadarDevInfoDTO();
|
|
|
+ dto.setSectionId(sectionId);
|
|
|
+ dto.setName(name);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_NAME_UNIQUE_ERROR,version);
|
|
|
+ dto = new RadarDevInfoDTO();
|
|
|
+ dto.setSectionId(sectionId);
|
|
|
+ dto.setNumber(number);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_NUMBER_UNIQUE_ERROR,version);
|
|
|
+ dto = new RadarDevInfoDTO();
|
|
|
+ dto.setAddress(address);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_ADDRESS_UNIQUE_ERROR,version);
|
|
|
+ radarDevInfoService.addRadarData(radarDevInfoDTO);
|
|
|
+ } else { // 编辑
|
|
|
+ radarDevInfoDTO.setId(id);
|
|
|
+ RadarDevInfoDTO dto = new RadarDevInfoDTO();
|
|
|
+ dto.setId(id);
|
|
|
+ dto.setSectionId(sectionId);
|
|
|
+ dto.setName(name);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_NAME_UNIQUE_ERROR,version);
|
|
|
+ dto = new RadarDevInfoDTO();
|
|
|
+ dto.setId(id);
|
|
|
+ dto.setSectionId(sectionId);
|
|
|
+ dto.setNumber(number);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_NUMBER_UNIQUE_ERROR,version);
|
|
|
+ dto = new RadarDevInfoDTO();
|
|
|
+ dto.setId(id);
|
|
|
+ dto.setAddress(address);
|
|
|
+ if (radarDevInfoService.checkRadarData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.RADAR_ADDRESS_UNIQUE_ERROR,version);
|
|
|
+ radarDevInfoService.updateRadarData(radarDevInfoDTO);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除雷达数据
|
|
|
+ * @param request 雷达id
|
|
|
+ * @return 删除雷达数据
|
|
|
+ */
|
|
|
+ @PostMapping("/del")
|
|
|
+ private BaseResult<?> del(HttpServletRequest request) {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ String id = (String) toolUtils.getRequestContent(request,"id",2);
|
|
|
+ if (id.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ List<String> ids = Arrays.asList(id.split(","));
|
|
|
+ radarDevInfoService.deleteRadarData(ids);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
+ }
|
|
|
+}
|