|
@@ -6,6 +6,7 @@ import com.welampiot.dto.CableDTO;
|
|
|
import com.welampiot.dto.CableInfoLogDTO;
|
|
|
import com.welampiot.service.CableInfoLogService;
|
|
|
import com.welampiot.service.CableService;
|
|
|
+import com.welampiot.utils.ExcelUtil;
|
|
|
import com.welampiot.utils.ToolUtils;
|
|
|
import com.welampiot.vo.CableInfoLogVO;
|
|
|
import com.welampiot.vo.CableVO;
|
|
@@ -78,6 +79,215 @@ public class CableController {
|
|
|
return BaseResult.success(vo);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 电缆设备组数据统计
|
|
|
+ * @param request 日期类型,数据类型
|
|
|
+ * @return 电缆设备组数据统计
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/cableGroupInfo", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> cableGroupInfo(HttpServletRequest request) throws ParseException {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ Integer deviceId = (Integer) toolUtils.getRequestContent(request,"deviceId",1);
|
|
|
+ if (deviceId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ Integer dateType = (Integer) toolUtils.getRequestContent(request,"dateType",1);
|
|
|
+ Integer group = (Integer) toolUtils.getRequestContent(request,"group",1);
|
|
|
+ Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
|
|
|
+ Integer timezone = cableInfoLogService.getTimezoneById(deviceId);
|
|
|
+ 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("/"));
|
|
|
+ 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 > 29L * 24 * 3600 * 1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
|
|
|
+ startTime -= timezone * 3600 * 1000;
|
|
|
+ endTime -= timezone * 3600 * 1000;
|
|
|
+ }
|
|
|
+
|
|
|
+ String startDate = simpleDateFormat.format(new Date(startTime));
|
|
|
+ String endDate = simpleDateFormat.format(new Date(endTime));
|
|
|
+ CableInfoLogDTO dto = new CableInfoLogDTO();
|
|
|
+ dto.setCableId(deviceId);
|
|
|
+ dto.setStartDate(startDate);
|
|
|
+ dto.setEndDate(endDate);
|
|
|
+ dto.setDataType(group);
|
|
|
+ List<CableInfoLogDTO> cableLogList = cableInfoLogService.getCableLogListByDTO(dto);
|
|
|
+ if (download == 1) { // 导出数据
|
|
|
+ String title,path;
|
|
|
+ if (group == 0) {
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,1#井盖位移_X轴角度,1#井盖位移_Y轴角度,1#井盖位移_Z轴角度,1#井盖位移_电池电压,1#井盖位移_告警状态," +
|
|
|
+ "2#井盖位移_X轴角度,2#井盖位移_Y轴角度,2#井盖位移_Z轴角度,2#井盖位移_电池电压,2#井盖位移_告警状态," +
|
|
|
+ "3#井盖位移_X轴角度,3#井盖位移_Y轴角度,3#井盖位移_Z轴角度,3#井盖位移_电池电压,3#井盖位移_告警状态," +
|
|
|
+ "4#井盖位移_X轴角度,4#井盖位移_Y轴角度,4#井盖位移_Z轴角度,4#井盖位移_电池电压,4#井盖位移_告警状态," +
|
|
|
+ "5#井盖位移_X轴角度,5#井盖位移_Y轴角度,5#井盖位移_Z轴角度,5#井盖位移_电池电压,5#井盖位移_告警状态,更新时间";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial number,1# manhole cover displacement_X axis Angle,1# manhole cover displacement_Y axis Angle," +
|
|
|
+ "1# manhole cover displacement_Z axis Angle,1# manhole cover displacement_Battery voltage," +
|
|
|
+ "1# manhole cover displacement_Alarm status,2# manhole cover displacement_X axis Angle," +
|
|
|
+ "2# manhole cover displacement_Y axis Angle,2# manhole cover displacement_Z axis Angle," +
|
|
|
+ "2# manhole cover displacement_Battery voltage,2# manhole cover displacement_Alarm status," +
|
|
|
+ "3# manhole cover displacement_X axis Angle,3# manhole cover displacement_Y axis Angle," +
|
|
|
+ "3# manhole cover displacement_Z axis Angle,3# manhole cover displacement_Battery voltage," +
|
|
|
+ "3# manhole cover displacement_Alarm status,4# manhole cover displacement_X axis Angle," +
|
|
|
+ "4# manhole cover displacement_Y axis Angle,4# manhole cover displacement_Z axis Angle," +
|
|
|
+ "4# manhole cover displacement_Battery voltage,4# manhole cover displacement_Alarm status," +
|
|
|
+ "5# manhole cover displacement_X axis Angle,5# manhole cover displacement_Y axis Angle," +
|
|
|
+ "5# manhole cover displacement_Z axis Angle,5# manhole cover displacement_Battery voltage," +
|
|
|
+ "5# manhole cover displacement_Alarm status,Update Time";
|
|
|
+ } else {
|
|
|
+ title = "Серийн номер,1# канализацион Люк смещен _X ос угл,1# канализацион Люк смещен _Y ос угл," +
|
|
|
+ "1# канализацион Люк смещен _Z ос угл,1# канализацион Люк смещен батарейк напряжен," +
|
|
|
+ "2# канализацион Люк смещен. Тревог состоян,2# канализацион Люк смещен _X ос угл," +
|
|
|
+ "2# канализацион Люк смещен _Y ос угл,2# канализацион Люк смещен _Z ос угл," +
|
|
|
+ "2# канализацион Люк смещен батарейк напряжен,2# канализацион Люк смещен. Тревог состоян," +
|
|
|
+ "3# канализацион Люк смещен _X ос угл,3# канализацион Люк смещен _Y ос угл," +
|
|
|
+ "3# канализацион Люк смещен _Z ос угл,3# канализацион Люк смещен. Батарейк напряжен," +
|
|
|
+ "3# канализацион Люк смещен. Тревог состоян,4# канализацион Люк смещен _X ос угл," +
|
|
|
+ "4# канализацион Люк смещен _Y ос угл,4# канализацион Люк смещен _Z ос угл," +
|
|
|
+ "4# канализацион Люк смещен батарейк напряжен,4# канализацион Люк смещен. Тревог состоян," +
|
|
|
+ "5# канализацион Люк смещен _X ос угл,5# канализацион Люк смещен _Y ос угл," +
|
|
|
+ "5# канализацион Люк смещен _Z ос угл,5# канализацион Люк смещен батарейк напряжен," +
|
|
|
+ "5# канализацион Люк смещен. Тревог состоян,Время обновления";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ for (CableInfoLogDTO c : cableLogList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(0, String.valueOf(cableLogList.indexOf(c) + 1));
|
|
|
+ newString.add(1,c.getManhole1X());
|
|
|
+ newString.add(2,c.getManhole1Y());
|
|
|
+ newString.add(3,c.getManhole1Z());
|
|
|
+ newString.add(4,c.getManhole1V());
|
|
|
+ newString.add(5, String.valueOf(c.getManhole1A()));
|
|
|
+ newString.add(6,c.getManhole2X());
|
|
|
+ newString.add(7,c.getManhole2Y());
|
|
|
+ newString.add(8,c.getManhole2Z());
|
|
|
+ newString.add(9,c.getManhole2V());
|
|
|
+ newString.add(10, String.valueOf(c.getManhole2A()));
|
|
|
+ newString.add(11,c.getManhole3X());
|
|
|
+ newString.add(12,c.getManhole3Y());
|
|
|
+ newString.add(13,c.getManhole3Z());
|
|
|
+ newString.add(14,c.getManhole3V());
|
|
|
+ newString.add(15, String.valueOf(c.getManhole3A()));
|
|
|
+ newString.add(16,c.getManhole4X());
|
|
|
+ newString.add(17,c.getManhole4Y());
|
|
|
+ newString.add(18,c.getManhole4Z());
|
|
|
+ newString.add(19,c.getManhole4V());
|
|
|
+ newString.add(20, String.valueOf(c.getManhole4A()));
|
|
|
+ newString.add(21,c.getManhole5X());
|
|
|
+ newString.add(22,c.getManhole5Y());
|
|
|
+ newString.add(23,c.getManhole5Z());
|
|
|
+ newString.add(24,c.getManhole5V());
|
|
|
+ newString.add(25, String.valueOf(c.getManhole5A()));
|
|
|
+ newString.add(26,c.getUpdateTime());
|
|
|
+ contentList.add(cableLogList.indexOf(c),newString);
|
|
|
+ }
|
|
|
+ path = ExcelUtil.outExcel(titleList, contentList);
|
|
|
+ } else if (group == 1) {
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,1#温度_温度值,1#温度_电压电池,1#温度_告警状态," +
|
|
|
+ "2#温度_温度值,2#温度_电压电池,2#温度_告警状态," +
|
|
|
+ "2#温度_温度值,2#温度_电压电池,2#温度_告警状态,更新时间";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial Number,1#Temperature_Temperature value,1#temperature_Voltage Battery,1#temperature_Alarm status," +
|
|
|
+ "2#Temperature_Temperature value,2#temperature_Voltage Battery,2#temperature_Alarm status," +
|
|
|
+ "3#Temperature_Temperature value,3#temperature_Voltage Battery,3#temperature_Alarm status,Update Time";
|
|
|
+ } else {
|
|
|
+ title = "Серийн номер,1#температура,1#температура батареи,1#температура состояние оповещения," +
|
|
|
+ "2#температура,2#температура батареи,2#температура состояние оповещения," +
|
|
|
+ "3#температура,3#температура батареи,3#температура состояние оповещения,Время обновления";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (CableInfoLogDTO c : cableLogList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(0, String.valueOf(cableLogList.indexOf(c) + 1));
|
|
|
+ newString.add(1,c.getTemperature1T());
|
|
|
+ newString.add(2,c.getTemperature1V());
|
|
|
+ newString.add(3, String.valueOf(c.getTemperature1A()));
|
|
|
+ newString.add(4,c.getTemperature2T());
|
|
|
+ newString.add(5,c.getTemperature2V());
|
|
|
+ newString.add(6, String.valueOf(c.getTemperature2A()));
|
|
|
+ newString.add(7,c.getTemperature3T());
|
|
|
+ newString.add(8,c.getTemperature3V());
|
|
|
+ newString.add(9, String.valueOf(c.getTemperature3A()));
|
|
|
+ newString.add(10,c.getUpdateTime());
|
|
|
+ contentList.add(cableLogList.indexOf(c),newString);
|
|
|
+ }
|
|
|
+ path = ExcelUtil.outExcel(titleList, contentList);
|
|
|
+ } else if (group == 2) {
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,水浸_水浸值,水浸_电池电压,水浸_告警状态,更新时间";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial Number,Water_water flood value," +
|
|
|
+ "Water flood_Battery voltage,Water flood_Alarm status,Update time";
|
|
|
+ } else {
|
|
|
+ title = "Порядковый номер,значение погружения воды в воду," +
|
|
|
+ "напряжение батареи,состояние предупреждения,время обновления";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (CableInfoLogDTO c : cableLogList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(0, String.valueOf(cableLogList.indexOf(c) + 1));
|
|
|
+ newString.add(1, String.valueOf(c.getWaterW()));
|
|
|
+ newString.add(2,c.getWaterV());
|
|
|
+ newString.add(3, String.valueOf(c.getWaterA()));
|
|
|
+ newString.add(4,c.getUpdateTime());
|
|
|
+ contentList.add(cableLogList.indexOf(c),newString);
|
|
|
+ }
|
|
|
+ path = ExcelUtil.outExcel(titleList,contentList);
|
|
|
+ } else {
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,气体_CH4值,气体_CO值,气体_H2S值,气体_O2值,气体_电池电压,气体_告警状态,更新时间";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial Number,Gas_CH4 Value,Gas_CO Value,Gas_H2S Value," +
|
|
|
+ "Gas_O2 Value,Gas_Battery Voltage,Gas_Alarm Status,Update Time";
|
|
|
+ } else {
|
|
|
+ title = "Серийн номер,газ_CH4 сто,газ_CO сто,газ_H2S сто," +
|
|
|
+ "газ_O2сто,газ_Напряжение батареи,газ_Внимание,Время обновления";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (CableInfoLogDTO c : cableLogList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(0, String.valueOf(cableLogList.indexOf(c) + 1));
|
|
|
+ newString.add(1, String.valueOf(c.getCh4()));
|
|
|
+ newString.add(2, String.valueOf(c.getCo()));
|
|
|
+ newString.add(3, String.valueOf(c.getH2s()));
|
|
|
+ newString.add(4,c.getO2());
|
|
|
+ newString.add(5,c.getGasV());
|
|
|
+ newString.add(6, String.valueOf(c.getGasA()));
|
|
|
+ newString.add(7,c.getUpdateTime());
|
|
|
+ contentList.add(cableLogList.indexOf(c),newString);
|
|
|
+ }
|
|
|
+ path = ExcelUtil.outExcel(titleList,contentList);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,path);
|
|
|
+ } else {
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,cableLogList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取电缆统计数据
|
|
|
* @param request
|