|
@@ -199,23 +199,180 @@ public class NewLampPoleController {
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/wifiOutStatistics", method = RequestMethod.POST)
|
|
|
- public BaseResult<WifiInfoLogDTO> wifiOutStatistics(HttpServletRequest request){
|
|
|
- Integer id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
|
|
|
- Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
|
|
|
- Integer dateType = request.getParameter("dateType") == null ? 0 : Integer.parseInt(request.getParameter("dateType"));
|
|
|
- Integer date = request.getParameter("date") == null ? 0 : Integer.parseInt(request.getParameter("date"));
|
|
|
- Integer dataType = request.getParameter("dataType") == null ? 0 : Integer.parseInt(request.getParameter("dataType"));
|
|
|
-
|
|
|
+ public BaseResult wifiOutStatistics(HttpServletRequest request) throws ParseException {
|
|
|
+ int version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
|
|
|
+ int id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
|
|
|
+ if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ int dateType = request.getParameter("dateType") == null ? 0 : Integer.parseInt(request.getParameter("dateType"));
|
|
|
+ int dataType = request.getParameter("dataType") == null ? 0 : Integer.parseInt(request.getParameter("dataType"));
|
|
|
WifiInfoLogDTO dto = new WifiInfoLogDTO();
|
|
|
dto.setWifiId(id);
|
|
|
- dto.setDateType(dateType);
|
|
|
- dto.setDate(date);
|
|
|
dto.setDataType(dataType);
|
|
|
dto.setSectionList(toolUtils.getSectionList(request));
|
|
|
+ Integer timezone = wifiInfoLogService.getTimezoneById(dto);
|
|
|
+ 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){ // 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);
|
|
|
+ System.out.println(split.get(0));
|
|
|
+ System.out.println(split.get(1));
|
|
|
+ try {
|
|
|
+ startTime = simpleDateFormat.parse(split.get(0) + " 00:00:00").getTime();
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ endTime = simpleDateFormat.parse(split.get(1) + " 23:59:59").getTime();
|
|
|
+ if (endTime < startTime) toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR,version);
|
|
|
+ if (endTime - startTime > 29L * 24 * 3600 * 1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
|
|
|
+ startTime -= timezone * 3600 * 1000;
|
|
|
+ endTime -= timezone * 3600 * 1000;
|
|
|
+ }
|
|
|
|
|
|
- WifiInfoLogVO vo = wifiInfoLogService.getWifiOutStatisticsByDTO(dto);
|
|
|
- if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
|
|
|
- return BaseResult.success(vo);
|
|
|
+ HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
|
|
|
+ long timeT = startTime;
|
|
|
+ int i = 0;
|
|
|
+
|
|
|
+ List<Object> dateList = new ArrayList<>();
|
|
|
+ List<Object> volList = new ArrayList<>();
|
|
|
+ List<Object> curList = new ArrayList<>();
|
|
|
+ List<Object> powerList = new ArrayList<>();
|
|
|
+ List<Object> comList = new ArrayList<>();
|
|
|
+ List<WifiInfoLogDTO> 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)));
|
|
|
+ volList.add(0);
|
|
|
+ powerList.add(0);
|
|
|
+ comList.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));
|
|
|
+ dto.setStartDate(startDate);
|
|
|
+ dto.setEndDate(endDate);
|
|
|
+ List<WifiInfoLogDTO> wifiOutStatisticsByDTO = wifiInfoLogService.getWifiOutStatisticsByDTO(dto);
|
|
|
+ for (WifiInfoLogDTO wifiInfoLogDTO : wifiOutStatisticsByDTO) {
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date);
|
|
|
+ if (objectObjectHashMap.containsKey(s)){
|
|
|
+ Integer integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer,wifiInfoLogDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (WifiInfoLogDTO wifiInfoLogDTO : list) {
|
|
|
+ if (wifiInfoLogDTO != null){
|
|
|
+ Date date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime());
|
|
|
+ String s = simpleDateFormat.format(date);
|
|
|
+ Integer integer = null;
|
|
|
+ if (objectObjectHashMap.containsKey(s)){
|
|
|
+ integer = objectObjectHashMap.get(s);
|
|
|
+ list.set(integer,wifiInfoLogDTO);
|
|
|
+ }
|
|
|
+ if (dto.getDataType() != null){
|
|
|
+ switch (dto.getDataType()){
|
|
|
+ case 5:
|
|
|
+ if (wifiInfoLogDTO.getCurrentC() != null && !wifiInfoLogDTO.getCurrentC().equals("0") && integer != null) {
|
|
|
+ curList.set(integer, Float.valueOf(wifiInfoLogDTO.getCurrentC()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getVoltageC() != null && !wifiInfoLogDTO.getVoltageC().equals("0") && integer != null) {
|
|
|
+ volList.set(integer, Float.valueOf(wifiInfoLogDTO.getVoltageC()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getPowerC() != null && !wifiInfoLogDTO.getPowerC().equals("0")&& integer != null) {
|
|
|
+ powerList.set(integer, Float.valueOf(wifiInfoLogDTO.getPowerC()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getTotalComC() != null && !wifiInfoLogDTO.getTotalComC().equals("0") && integer != null) {
|
|
|
+ comList.set(integer, Float.valueOf(wifiInfoLogDTO.getTotalComC()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ if (wifiInfoLogDTO.getCurrentB() != null && !wifiInfoLogDTO.getCurrentB().equals("0") && integer != null) {
|
|
|
+ curList.set(integer, Float.valueOf(wifiInfoLogDTO.getCurrentB()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getVoltageB() != null && !wifiInfoLogDTO.getVoltageB().equals("0") && integer != null) {
|
|
|
+ volList.set(integer, Float.valueOf(wifiInfoLogDTO.getVoltageB()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getPowerB() != null && !wifiInfoLogDTO.getPowerB().equals("0") && integer != null) {
|
|
|
+ powerList.set(integer, Float.valueOf(wifiInfoLogDTO.getPowerB()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getTotalComB() != null &&! wifiInfoLogDTO.getTotalComB().equals("0") && integer != null) {
|
|
|
+ comList.set(integer, Float.valueOf(wifiInfoLogDTO.getTotalComB()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3 :
|
|
|
+ if (wifiInfoLogDTO.getLna3Cur() != null && !wifiInfoLogDTO.getLna3Cur().equals("0") && integer != null){
|
|
|
+ curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna3Cur()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getLna3Vol() != null && !wifiInfoLogDTO.getLna3Vol().equals("0") && integer != null){
|
|
|
+ volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna3Vol()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2 :
|
|
|
+ if (wifiInfoLogDTO.getLna2Cur() != null && !wifiInfoLogDTO.getLna2Cur().equals("0") && integer != null){
|
|
|
+ curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna2Cur()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getLna2Vol() != null && !wifiInfoLogDTO.getLna2Vol().equals("0") && integer != null){
|
|
|
+ volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna2Vol()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1 :
|
|
|
+ if (wifiInfoLogDTO.getLna1Cur() != null && !wifiInfoLogDTO.getLna1Cur().equals("0") && integer != null){
|
|
|
+ curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna1Cur()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getLna1Vol() != null && !wifiInfoLogDTO.getLna1Vol().equals("0") && integer != null){
|
|
|
+ volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna1Vol()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0 :
|
|
|
+ if (wifiInfoLogDTO.getCurrent() != null && !wifiInfoLogDTO.getCurrent().equals("0") && integer != null){
|
|
|
+ curList.set(integer,Float.valueOf(wifiInfoLogDTO.getCurrent()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getVoltage() != null && !wifiInfoLogDTO.getVoltage().equals("0") && integer != null){
|
|
|
+ volList.set(integer,Float.valueOf(wifiInfoLogDTO.getVoltage()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getPower() != null && !wifiInfoLogDTO.getPower().equals("0") && integer != null){
|
|
|
+ powerList.set(integer,Float.valueOf(wifiInfoLogDTO.getPower()));
|
|
|
+ }
|
|
|
+ if (wifiInfoLogDTO.getTotalComA() != null && !wifiInfoLogDTO.getTotalComA().equals("0") && integer != null){
|
|
|
+ comList.set(integer,Float.valueOf(wifiInfoLogDTO.getTotalComA()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime() + timezone * 3600 * 1000);
|
|
|
+ wifiInfoLogDTO.setUpdateTime(simpleDateFormat.format(date));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ WifiInfoLogVO wifiInfoLogVO = new WifiInfoLogVO();
|
|
|
+ wifiInfoLogVO.setCurArr(curList);
|
|
|
+ wifiInfoLogVO.setVolArr(volList);
|
|
|
+ wifiInfoLogVO.setPowerArr(powerList);
|
|
|
+ wifiInfoLogVO.setDateArr(dateList);
|
|
|
+ wifiInfoLogVO.setComArr(comList);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,wifiInfoLogVO);
|
|
|
}
|
|
|
|
|
|
/**
|