|
@@ -13,8 +13,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* ClassName: NewLampPoleController
|
|
@@ -50,6 +51,10 @@ public class NewLampPoleController {
|
|
|
|
|
|
@Autowired
|
|
|
private OperationLogService operationLogService;
|
|
|
+ @Autowired
|
|
|
+ private LampService lampService;
|
|
|
+ @Autowired
|
|
|
+ private LampInfoLogService lampInfoLogService;
|
|
|
|
|
|
@RequestMapping(value = "/info",method = RequestMethod.POST)
|
|
|
public BaseResult info(HttpServletRequest request){
|
|
@@ -310,5 +315,142 @@ public class NewLampPoleController {
|
|
|
}
|
|
|
return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 获取灯控日志信息
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/lampDataHistory", method = RequestMethod.POST)
|
|
|
+ public BaseResult lampDataHistory(HttpServletRequest request) throws ParseException, ParseException {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+// List sectionList = toolUtils.getSectionList(request);lampId
|
|
|
+ Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
|
|
|
+ if (lampId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ LampInfoDTO detailsById = lampService.getDetailsById(lampId, version);
|
|
|
+ Integer dateType = (Integer) toolUtils.getRequestContent(request,"dateType",1);
|
|
|
+ long l = System.currentTimeMillis()-detailsById.getTimezone()*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){ // 7 天
|
|
|
+ startTime = l - 24*3600*1000*7;
|
|
|
+ endTime = l;
|
|
|
+ }else if (dateType == 3){ // 14 天
|
|
|
+ startTime = l - 24*3600*1000*14;
|
|
|
+ endTime = l;
|
|
|
+ }else if (dateType == 4){ // 日期选择 最多30天
|
|
|
+ String date = (String) toolUtils.getRequestContent(request,"date",2);
|
|
|
+ if (date.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR,version);
|
|
|
+ List<String> split = Arrays.asList(date.split("/"));
|
|
|
+ System.out.println(split.toString());
|
|
|
+ System.out.println(split.get(0));
|
|
|
+ System.out.println(split.get(1));
|
|
|
+ startTime = simpleDateFormat.parse(split.get(0) + " 00:00:00").getTime();
|
|
|
+ endTime = simpleDateFormat.parse(split.get(1) + " 23:59:59").getTime();
|
|
|
+ if (endTime < startTime) toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR,version);
|
|
|
+ if (endTime - startTime > 29*24*3600*1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
|
|
|
+ startTime -= detailsById.getTimezone()*3600*1000;
|
|
|
+ endTime -= detailsById.getTimezone()*3600*1000;
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
|
|
|
+ Long timeT = startTime;
|
|
|
+ int i = 0;
|
|
|
|
|
|
+ ArrayList<Object> dateList = new ArrayList<>();
|
|
|
+ ArrayList<Object> volList = new ArrayList<>();
|
|
|
+ ArrayList<Object> curList = new ArrayList<>();
|
|
|
+ ArrayList<Object> powerList = new ArrayList<>();
|
|
|
+ ArrayList<Object> lightList = new ArrayList<>();
|
|
|
+ ArrayList<LampInfoLogDTO> list = new ArrayList<>();
|
|
|
+ simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
|
|
|
+ while (timeT < endTime){
|
|
|
+ objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)).toString(),i);
|
|
|
+ dateList.add(simpleDateFormat.format(new Date(timeT+detailsById.getTimezone()*3600*1000)).toString());
|
|
|
+ volList.add(0);
|
|
|
+ powerList.add(0);
|
|
|
+ lightList.add(0);
|
|
|
+ curList.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));
|
|
|
+ LampLogVO lampLogVO = new LampLogVO();
|
|
|
+ lampLogVO.setLampId(lampId);
|
|
|
+ lampLogVO.setStartDate(startDate);
|
|
|
+ lampLogVO.setEndDate(endDate);
|
|
|
+ List<LampInfoLogDTO> listByVO = lampInfoLogService.getListByVO(lampLogVO);
|
|
|
+ for (LampInfoLogDTO lampInfoLogDTO :listByVO) {
|
|
|
+
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date).toString();
|
|
|
+ System.out.println(s);
|
|
|
+ if (objectObjectHashMap.containsKey(s)){
|
|
|
+ Integer integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer,lampInfoLogDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LampLogVO lampLogVO1 = new LampLogVO();
|
|
|
+ Float maxCur = Float.valueOf(lampLogVO1.getMaxCur() == null ? "0" : lampLogVO1.getMaxCur());
|
|
|
+ Float maxPower = Float.valueOf(lampLogVO1.getMaxPower() == null ? "0":lampLogVO1.getMaxPower());
|
|
|
+ Integer maxLight = Integer.valueOf(lampLogVO1.getMaxLight() == null ? "0":lampLogVO1.getMaxLight());
|
|
|
+ Float maxVol = Float.valueOf(lampLogVO1.getMaxVol()==null?"0":lampLogVO1.getMaxVol());
|
|
|
+ ArrayList<Object> logList = new ArrayList<>();
|
|
|
+ for (LampInfoLogDTO lampInfoLogDTO:list) {
|
|
|
+ if (lampInfoLogDTO != null){
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date).toString();
|
|
|
+ System.out.println(s);
|
|
|
+ Integer integer = null;
|
|
|
+ if (objectObjectHashMap.containsKey(s)){
|
|
|
+ integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer,lampInfoLogDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (lampInfoLogDTO.getCurrent() != null && !lampInfoLogDTO.getCurrent().equals("0") && integer != null){
|
|
|
+ curList.set(integer,Float.valueOf(lampInfoLogDTO.getCurrent()));
|
|
|
+ if (maxCur < Float.valueOf(lampInfoLogDTO.getCurrent()))maxCur = Float.valueOf(lampInfoLogDTO.getCurrent());
|
|
|
+ }
|
|
|
+ if (lampInfoLogDTO.getVoltage() != null && !lampInfoLogDTO.getVoltage().equals("0") && integer != null){
|
|
|
+ volList.set(integer,Float.valueOf(lampInfoLogDTO.getVoltage()));
|
|
|
+ if (maxVol < Float.valueOf(lampInfoLogDTO.getVoltage()))maxVol = Float.valueOf(lampInfoLogDTO.getVoltage());
|
|
|
+ }
|
|
|
+ if (lampInfoLogDTO.getDimValue() != null && !lampInfoLogDTO.getDimValue().equals("0") && integer != null){
|
|
|
+ lightList.set(integer,Integer.valueOf(lampInfoLogDTO.getDimValue()));
|
|
|
+ if (maxLight < Integer.valueOf(lampInfoLogDTO.getDimValue()))maxLight = Integer.valueOf(lampInfoLogDTO.getDimValue());
|
|
|
+ }
|
|
|
+ if (lampInfoLogDTO.getPower() != null && !lampInfoLogDTO.getPower().equals("0") && integer != null){
|
|
|
+ powerList.set(integer,Float.valueOf(lampInfoLogDTO.getPower()));
|
|
|
+ if (maxPower < Float.valueOf(lampInfoLogDTO.getPower()))maxPower = Float.valueOf(lampInfoLogDTO.getPower());
|
|
|
+ }
|
|
|
+ if (maxLight.intValue() < Integer.valueOf(lampInfoLogDTO.getDimValue()).intValue())maxLight = Integer.valueOf(lampInfoLogDTO.getDimValue());
|
|
|
+
|
|
|
+ date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime()+detailsById.getTimezone()*3600*1000);
|
|
|
+ lampInfoLogDTO.setUpdateTime(simpleDateFormat.format(date).toString());
|
|
|
+ logList.add(lampInfoLogDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ lampLogVO1.setCurList(curList);
|
|
|
+ lampLogVO1.setVolList(volList);
|
|
|
+ lampLogVO1.setPowerList(powerList);
|
|
|
+ lampLogVO1.setLightList(lightList);
|
|
|
+ lampLogVO1.setDateList(dateList);
|
|
|
+ lampLogVO1.setList(logList);
|
|
|
+ lampLogVO1.setStep(3600);
|
|
|
+ lampLogVO1.setMaxCur(maxCur.toString());
|
|
|
+ lampLogVO1.setMaxLight(maxLight.toString());
|
|
|
+ lampLogVO1.setMaxPower(maxPower.toString());
|
|
|
+ lampLogVO1.setMaxVol(maxVol.toString());
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampLogVO1);
|
|
|
+ }
|
|
|
}
|