|
@@ -3,8 +3,11 @@ package com.welampiot.controller;
|
|
|
import com.welampiot.common.BaseResult;
|
|
|
import com.welampiot.common.InterfaceResultEnum;
|
|
|
import com.welampiot.dto.NoiseDevInfoDTO;
|
|
|
+import com.welampiot.dto.NoiseDevInfoLogDTO;
|
|
|
+import com.welampiot.service.NoiseDevInfoLogService;
|
|
|
import com.welampiot.service.NoiseDevInfoService;
|
|
|
import com.welampiot.utils.ToolUtils;
|
|
|
+import com.welampiot.vo.NoiseDevInfoLogVO;
|
|
|
import com.welampiot.vo.NoiseDevInfoVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
|
@@ -13,6 +16,12 @@ 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.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* ClassName: NoiseDevInfoController
|
|
@@ -30,16 +39,20 @@ public class NoiseDevInfoController {
|
|
|
@Autowired
|
|
|
private NoiseDevInfoService noiseDevInfoService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private NoiseDevInfoLogService noiseDevInfoLogService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ToolUtils toolUtils;
|
|
|
|
|
|
/**
|
|
|
* 获取噪声监控设备列表
|
|
|
+ *
|
|
|
* @param request
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/devList", method = RequestMethod.POST)
|
|
|
- public BaseResult<NoiseDevInfoDTO> devList(HttpServletRequest request){
|
|
|
+ public BaseResult<NoiseDevInfoDTO> devList(HttpServletRequest request) {
|
|
|
int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
|
|
|
int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
|
|
|
int online = request.getParameter("online") == null ? 0 : Integer.parseInt(request.getParameter("online"));
|
|
@@ -58,11 +71,12 @@ public class NoiseDevInfoController {
|
|
|
|
|
|
/**
|
|
|
* 获取噪声监控设备详情
|
|
|
+ *
|
|
|
* @param request
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/devInfo", method = RequestMethod.POST)
|
|
|
- public BaseResult<NoiseDevInfoDTO> devInfo(HttpServletRequest request){
|
|
|
+ public BaseResult<NoiseDevInfoDTO> devInfo(HttpServletRequest request) {
|
|
|
int id = request.getParameter("id") == null || request.getParameter("id").length() == 0 ? 0 : Integer.parseInt(request.getParameter("id"));
|
|
|
int version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
|
|
|
if (id == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL, version);
|
|
@@ -70,7 +84,94 @@ public class NoiseDevInfoController {
|
|
|
dto.setId(id);
|
|
|
dto.setSectionList(toolUtils.getSectionList(request));
|
|
|
NoiseDevInfoVO vo = noiseDevInfoService.getDevInfoByNoiseDevInfoDTO(dto);
|
|
|
- if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
|
|
|
+ if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL, version);
|
|
|
return BaseResult.success(vo);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取噪声监控设备统计信息
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/devStatistics", method = RequestMethod.POST)
|
|
|
+ public BaseResult devStatistics(HttpServletRequest request) throws ParseException {
|
|
|
+ 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);
|
|
|
+ Integer dateType = (Integer) toolUtils.getRequestContent(request, "dateType", 1);
|
|
|
+ Integer timezone = noiseDevInfoLogService.getTimezoneById(id);
|
|
|
+ if (timezone == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL, version);
|
|
|
+ long l = System.currentTimeMillis() - timezone * 3600 * 1000;
|
|
|
+ long startTime = 0L;
|
|
|
+ long endTime = 0L;
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ if (dateType == 0) { // 1 天
|
|
|
+ startTime = l - 24 * 3600 * 1000;
|
|
|
+ endTime = l;
|
|
|
+ } else if (dateType == 1) { // 3 天
|
|
|
+ startTime = l - 24 * 3600 * 1000 * 3;
|
|
|
+ endTime = l;
|
|
|
+ } else if (dateType == 2) { // 5 天
|
|
|
+ startTime = l - 24 * 3600 * 1000 * 5;
|
|
|
+ endTime = l;
|
|
|
+ } else if (dateType == 3) { // 7 天
|
|
|
+ startTime = l - 24 * 3600 * 1000 * 7;
|
|
|
+ endTime = l;
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
|
|
|
+ long timeT = startTime;
|
|
|
+ int i = 0;
|
|
|
+
|
|
|
+ List<Object> dateList = new ArrayList<>();
|
|
|
+ List<Object> dataList = new ArrayList<>();
|
|
|
+ ArrayList<NoiseDevInfoLogDTO> list = new ArrayList<>();
|
|
|
+ simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
|
|
|
+ while (timeT < endTime) {
|
|
|
+ objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)), i);
|
|
|
+ dateList.add(simpleDateFormat.format(new Date(timeT + timezone * 3600 * 1000)));
|
|
|
+ dataList.add(0);
|
|
|
+ list.add(null);
|
|
|
+ timeT += 3600 * 1000;
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String startDate = simpleDateFormat.format(new Date(startTime));
|
|
|
+ String endDate = simpleDateFormat.format(new Date(endTime));
|
|
|
+ NoiseDevInfoLogDTO dto = new NoiseDevInfoLogDTO();
|
|
|
+ dto.setDevId(id);
|
|
|
+ dto.setStartDate(startDate);
|
|
|
+ dto.setEndDate(endDate);
|
|
|
+ List<NoiseDevInfoLogDTO> devStatisticsByDTO = noiseDevInfoLogService.getDevStatisticsByDTO(dto);
|
|
|
+ for (NoiseDevInfoLogDTO noiseDevInfoLogDTO : devStatisticsByDTO) {
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(noiseDevInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date);
|
|
|
+ if (objectObjectHashMap.containsKey(s)) {
|
|
|
+ Integer integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer, noiseDevInfoLogDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (NoiseDevInfoLogDTO noiseDevInfoLogDTO : list) {
|
|
|
+ if (noiseDevInfoLogDTO != null) {
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(noiseDevInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date);
|
|
|
+ Integer integer = null;
|
|
|
+ if (objectObjectHashMap.containsKey(s)) {
|
|
|
+ integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer, noiseDevInfoLogDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (noiseDevInfoLogDTO.getNoise() != null && !noiseDevInfoLogDTO.getNoise().equals("0") && integer != null){
|
|
|
+ dataList.set(integer,Float.valueOf(noiseDevInfoLogDTO.getNoise()));
|
|
|
+ }
|
|
|
+ date = new Date(simpleDateFormat2.parse(noiseDevInfoLogDTO.getUpdateTime()).getTime() + timezone * 3600 * 1000);
|
|
|
+ noiseDevInfoLogDTO.setUpdateTime(simpleDateFormat.format(date));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ NoiseDevInfoLogVO noiseDevInfoLogVO = new NoiseDevInfoLogVO();
|
|
|
+ noiseDevInfoLogVO.setDataList(dataList);
|
|
|
+ noiseDevInfoLogVO.setDateList(dateList);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, noiseDevInfoLogVO);
|
|
|
+ }
|
|
|
}
|