diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java b/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java deleted file mode 100644 index aa4b447..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.missiles.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -@Mapper -public interface MetaModuleMapper { - - Map getFieldByName(@Param("tableName") String tableName); - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java b/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java deleted file mode 100644 index aa4b447..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.missiles.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -@Mapper -public interface MetaModuleMapper { - - Map getFieldByName(@Param("tableName") String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml b/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml deleted file mode 100644 index 4b9c14e..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java b/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java deleted file mode 100644 index aa4b447..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.missiles.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -@Mapper -public interface MetaModuleMapper { - - Map getFieldByName(@Param("tableName") String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml b/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml deleted file mode 100644 index 4b9c14e..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java b/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java deleted file mode 100644 index 94eb627..0000000 --- a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.servcie; - -public interface MetaModuleService { - - Object getFieldByName(String tableName); - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java b/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java deleted file mode 100644 index aa4b447..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.missiles.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -@Mapper -public interface MetaModuleMapper { - - Map getFieldByName(@Param("tableName") String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml b/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml deleted file mode 100644 index 4b9c14e..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java b/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java deleted file mode 100644 index 94eb627..0000000 --- a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.servcie; - -public interface MetaModuleService { - - Object getFieldByName(String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java b/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java deleted file mode 100644 index e889144..0000000 --- a/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.casic.missiles.servcie.impl; - -import com.casic.missiles.dao.MetaModuleMapper; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.nio.channels.AcceptPendingException; - -@Service -@Slf4j -@AllArgsConstructor -public class MetaModuleServiceImpl implements MetaModuleService { - - private final MetaModuleMapper metaModuleMapper; - - @Override - public Object getFieldByName(String tableName) { - ResponseData responseData = new ResponseData(); - try { - metaModuleMapper.getFieldByName(tableName); - responseData.setMessage("success"); - responseData.setCode(200); - } catch (AcceptPendingException ex) { - log.error("主题:报警内容类型查询异常,异常信息{}", ex); - responseData.setMessage("查询异常"); - responseData.setCode(500); - } - return responseData; - - } -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java index 2ab7b67..0cc1d6d 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceDataListController.java @@ -20,7 +20,7 @@ @Resource private DeviceDataListService deviceDataListService; - // @Permission + @GetMapping(value = "/welldata/list") public Object wellDataList(String devcode, String wellCode, String beginTime, String endTime) { //查询数据权限 使用默认DEPTID 字段 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java index 91e136e..5936186 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/LiquidController.java @@ -60,7 +60,7 @@ @RequestMapping(value = "/liquidConfig/config") @BussinessLog(value = "新增配置", key = "deviceId,percent,installHeight,retryTimes," + "attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addLiquid(@RequestBody BusConfigDTO busConfigDTO) { + public Object addLiquid(BusConfigDTO busConfigDTO) { try { busConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java index a642530..9b2c077 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TempHumiController.java @@ -60,7 +60,7 @@ */ @RequestMapping(value = "/tempConfig/config") @BussinessLog(value = "新增温湿度配置", key = "deviceId,collectInterval,collectTime,collectCount,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTempHumi(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTempHumi(BusConfigDTO busConfigDTO) { try { busTempHumiConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java index f74fd03..3aa8d60 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/busconfig/TubeController.java @@ -59,7 +59,7 @@ */ @RequestMapping(value = "/tubeConfig/config") @BussinessLog(value = "新增管盯配置", key = "deviceId,uploadPeriod,collectInterval,retryTimes,attemptsMax,ip,port", dict = BusConfigDict.class) - public Object addTube(@RequestBody BusConfigDTO busConfigDTO) { + public Object addTube(BusConfigDTO busConfigDTO) { try { busTubeConfigService.addConfig(busConfigDTO); } catch (Exception e) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java index d363fcb..6d47f1c 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DigNoiseDataDto.java @@ -38,7 +38,6 @@ @ExcelProperty("点位编号") private String wellCode; @ExcelProperty("状态描述") - private String descn; @ExcelProperty("电量(%)") private String cell; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java index 7598ab2..964db27 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/HarmfulDataDto.java @@ -26,7 +26,6 @@ public class HarmfulDataDto { @ExcelProperty("设备编号") private String devcode; - @ExcelProperty("设备类型") private String deviceType; @ExcelProperty("设备类型名称") private String deviceTypeName; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java index 3c20b8b..84a111b 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataHarmfulGas.java @@ -9,11 +9,11 @@ private String devcode; @JSONField(name="CO") private String CO; - @JSONField(name="CH4") + @JSONField(name="CH₄") private String CH4; - @JSONField(name="H2S") + @JSONField(name="H₂S") private String H2S; - @JSONField(name="O2") + @JSONField(name="O₂") private String O2; private String liquidSwitch; private String logtime; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 5df70d3..038af9f 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -39,6 +39,40 @@ com.casic casic-server-support ${pro.version} + + + org.apache.poi + poi-ooxml + + + org.apache.poi + poi + + + + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java new file mode 100644 index 0000000..92e187b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/ModuleParamConfig.java @@ -0,0 +1,13 @@ +package com.casic.missiles.modular.system.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "smartcity.module") +public class ModuleParamConfig { + + private String databaseTable = null; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java new file mode 100644 index 0000000..6ad75a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MetaModuleController.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.controller; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.MetaModuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/metaModule") +@Api(tags = "模块配置") +@AllArgsConstructor +public class MetaModuleController { + + private final MetaModuleService metaService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/query") + @ApiOperation("字段初始化") + public Object getDataList(String optionType, String deviceType,Long deptid, + String keyWords, String beginTime, String endTime) { + return metaService.getDataList(optionType, deviceType, keyWords, beginTime, endTime, deptid); + } + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/import") + @ApiOperation("字段初始化") + public Object dataListImport(HttpServletResponse response,String optionType, String deviceType, + String keyWords, String beginTime, String endTime) { + return metaService.dataListImport(response,optionType, deviceType, keyWords, beginTime, endTime); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java new file mode 100644 index 0000000..12b3960 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ModuleConfigController.java @@ -0,0 +1,49 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +/** + * @author cz + * @Date 2022-12-04 + */ +@RestController +@RequestMapping("/metaModule/config") +@Api(tags = "模块配置") +@AllArgsConstructor +public class ModuleConfigController extends BaseController { + + private final ModuleConfigService moduleConfigService; + + /** + * 显示字段的初始化 + * + * @return + */ + @RequestMapping(value = "/init") + @ApiOperation("字段初始化") + public void getField() { + moduleConfigService.getTableNameField(); + } + + @RequestMapping(value = "/save") + public Object saveMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.saveMetaModule(metaModuleParam); + } + + @RequestMapping(value = "/delete") + public Object deleteMetaModule(@RequestBody MetaModuleParam metaModuleParam) { + return moduleConfigService.deleteMetaModule(metaModuleParam); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java new file mode 100644 index 0000000..3d2146d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MetaModuleMapper.java @@ -0,0 +1,19 @@ +package com.casic.missiles.modular.system.dao; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface MetaModuleMapper { + + List> getDeviceDataList( @Param("tableName") String tableName, + @Param("fields") String fields, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("keywords") String keyWords, + @Param("deptid") Long deptid); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java new file mode 100644 index 0000000..4a80254 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ModuleConfigMapper.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface ModuleConfigMapper extends BaseMapper { + + List> getTableNameField(@Param("databaseTable") String databaseTable); + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml new file mode 100644 index 0000000..91def32 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MetaModuleMapper.xml @@ -0,0 +1,92 @@ + + + + + + '%' || #{keywords}|| '%' + + + CONCAT('%',#{keywords},'%') + + + CONCAT('%',#{keywords},'%') + + + + ${paramStr} + + + + TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone + + + + TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') + + + + DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') + + + + and datediff(now(),dg.UPTIME) ${paramDay} + + + + AND date_part('day',now()-dg.UPTIME) ${paramDay} + + + + and date_part(now(),dg.UPTIME) ${paramDay} + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml new file mode 100644 index 0000000..d316444 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ModuleConfigMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java new file mode 100644 index 0000000..538e376 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/MetaModule.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * @author cz + * @date 2022-12-03 + */ +@Data +@Builder +@TableName("meta_module") +public class MetaModule { + @TableId + private Long id; + @TableField("meta_module_name") + private String metaModuleName; + @TableField("device_type") + private Long deviceType; + @TableField("table_name") + private String tableName; + @TableField("operation_type") + private String operationType; + private String fields; + private String enable; + @TableField("owner_id") + private String ownerId; + @TableField("create_time") + private Date createTime; + @TableField("last_time") + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java new file mode 100644 index 0000000..1d27878 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DeviceDataExportEnum.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.enums; + +import java.util.HashMap; + +public enum DeviceDataExportEnum { + + /** + * + */ + WELLDATA_EXPORT("wellCoverData.xlsx", "井盖查询数据"), + LIQUIDDATA_EXPORT("liquidData.xlsx", "液位数据"), + HARMFULDATA_EXPORT("harmfulData.xlsx", "有害气体数据"), + GASDATA_EXPORT("gasData.xlsx", "燃气数据"), + TEMPDATA_EXPORT("tempData.xlsx", "温湿度数据"), + DIGDATA_EXPORT("digData.xlsx", "开挖数据"), + WELLLOCDATA_EXPORT("wellLocData.xlsx", "井盖定位数据"), + NOISEDATA_EXPORT("noiseData.xlsx", "噪声记录仪数据"), + TEMPPRESSDATA_EXPORT("tempPressData.xlsx", "压力数据"), + LIQUIDGASDATA_EXPORT("gasLiquidData.xlsx", "燃气液位一体化数据"), + HYDRANT_EXPORT("hydrantData.xlsx", "消防栓数据"), + TUBEDATA_EXPORT("tubeData.xlsx", "管盯数据"), + WELLLIQUIDDATA_EXPORT("wellLiquidData.xlsx", "井盖液位一体化数据"), + H2S_EXPORT("h2sData.xlsx", "硫化氢数据"), + METHANE_EXPORT("methaneData.xlsx", "甲烷数据"), + DEVICE_EXPORT_MAP(new HashMap() { + { + put(1, WELLDATA_EXPORT); + put(2, LIQUIDDATA_EXPORT); + put(3, HARMFULDATA_EXPORT); + put(4, GASDATA_EXPORT); + put(5, TEMPDATA_EXPORT); + put(6, DIGDATA_EXPORT); + put(7, WELLLOCDATA_EXPORT); + put(8, NOISEDATA_EXPORT); + put(9, TEMPPRESSDATA_EXPORT); + put(10, LIQUIDGASDATA_EXPORT); + put(11, HYDRANT_EXPORT); + put(12, TUBEDATA_EXPORT); + put(13, WELLLIQUIDDATA_EXPORT); + put(14, H2S_EXPORT); + put(21, METHANE_EXPORT); + } + }); + + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceDataExportEnum(String fileName, String description) { + this.fileName = fileName; + this.description = description; + } + + public HashMap exportMap; + + DeviceDataExportEnum(HashMap exportMap) { + this.exportMap = exportMap; + } + + public String getFileName() { + return fileName; + } + + public DeviceDataExportEnum getExportMap(Integer deviceType) { + return exportMap.get(deviceType); + } + + + public String getDescription() { + return description; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java new file mode 100644 index 0000000..3eaf19f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/MetaModuleParam.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class MetaModuleParam { + private String metaModuleName; + private Long deviceType; + private String tableName; + private String operationType; + private String fieldJson; + private String enable; + private String ownerId; + private Date createTime; + private Date lastTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java new file mode 100644 index 0000000..57de2cd --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/AbstactCustomizeDataList.java @@ -0,0 +1,10 @@ +package com.casic.missiles.modular.system.service; + +import java.util.List; +import java.util.Map; + +public interface AbstactCustomizeDataList { + + void customizeBuilder( List> deviceDataList); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java new file mode 100644 index 0000000..d47f709 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MetaModuleService.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.system.service; + +import javax.servlet.http.HttpServletResponse; + +public interface MetaModuleService { + + Object getDataList(String optionType, String deviceType,String keyWords, String beginTime, String endTime,Long deptid); + + Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java new file mode 100644 index 0000000..78f5038 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ModuleConfigService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + + +import com.casic.missiles.modular.system.model.MetaModuleParam; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; + +public interface ModuleConfigService { + + Object getTableNameField(); + + Object saveMetaModule(MetaModuleParam metaModuleParam); + + Object deleteMetaModule(MetaModuleParam metaModuleParam); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java new file mode 100644 index 0000000..caf4fed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MetaModuleServiceImpl.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dao.MetaModuleMapper; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.enums.DeviceDataExportEnum; +import com.casic.missiles.modular.system.service.AbstactCustomizeDataList; +import com.casic.missiles.modular.system.service.MetaModuleService; +import com.casic.missiles.modular.system.util.ApplicationContextUtil; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.nio.channels.AcceptPendingException; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +@AllArgsConstructor +public class MetaModuleServiceImpl extends ServiceImpl implements MetaModuleService { + + private final MetaModuleMapper metaModuleMapper; + + /** + * 1、查询表及字段 + * 2、自定义流程 + * + * @param optionType 操作类型 + * @param deviceType 设备类型 + * @return + */ + @Override + public Object getDataList(String optionType, String deviceType, String keyWords, String beginTime, String endTime, Long deptid) { + ResponseData responseData = new ResponseData(); + try { + responseData.setMessage("查询成功"); + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, deptid); + Boolean deviceListBean = ApplicationContextUtil.containsBean("deviceList"); + if (deviceListBean) { + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("deviceList"); + customizeProcessor.customizeBuilder(deviceDataList); + } + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:数据列表查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object dataListImport(HttpServletResponse response, String optionType, String deviceType, String keyWords, String beginTime, String endTime) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", deviceType) + .eq("operation_type", optionType); + MetaModule metaModule = this.baseMapper.selectOne(moduleQueryWrapper); + List> deviceDataList = metaModuleMapper.getDeviceDataList(metaModule.getTableName(), metaModule.getFields(), + beginTime, endTime, keyWords, null); + AbstactCustomizeDataList customizeProcessor = (AbstactCustomizeDataList) ApplicationContextUtil.getBean("fileCompareService"); + ExportMapToExcel.exportExcel(response, DeviceDataExportEnum.DEVICE_EXPORT_MAP.getExportMap(Integer.valueOf(deviceType)).getFileName(), "标题", deviceDataList); + customizeProcessor.customizeBuilder(deviceDataList); + responseData.setMessage("导出异常"); + responseData.setData(deviceDataList); + responseData.setSuccess(true); + responseData.setCode(200); + } catch (Exception ex) { + log.error("主题:数据导出异常,异常信息{}", ex); + responseData.setMessage("导出异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java new file mode 100644 index 0000000..92af4f2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ModuleConfigServiceImpl.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.config.ModuleParamConfig; +import com.casic.missiles.modular.system.dao.ModuleConfigMapper; +import com.casic.missiles.modular.system.entity.MetaModule; +import com.casic.missiles.modular.system.model.MetaModuleParam; +import com.casic.missiles.modular.system.service.ModuleConfigService; +import com.casic.missiles.modular.system.util.ExportMapToExcel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import javax.xml.ws.Response; +import java.nio.channels.AcceptPendingException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@AllArgsConstructor +@Service +public class ModuleConfigServiceImpl extends ServiceImpl implements ModuleConfigService { + + private final ModuleParamConfig moduleParamConfig; + + /** + * 1、先查询表名及相应的表名字段 + * 2、转化表对应字段的数据列表 + */ + @Override + public Object getTableNameField() { + ResponseData responseData = new ResponseData(); + try { + List> tableNameFieldList = this.baseMapper.getTableNameField(moduleParamConfig.getDatabaseTable()); + Map>> tableNameFieldMap = tableNameFieldList.stream() + .collect(Collectors.groupingBy(e->e.get("tableName"))); + responseData.setMessage("查询成功"); + responseData.setSuccess(true); + responseData.setCode(200); + responseData.setData(tableNameFieldMap); + } catch (Exception ex) { + log.error("主题:模块初始化查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setSuccess(false); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object saveMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + MetaModule metaModule = metaModuleBuilder(metaModuleParam); + this.baseMapper.insert(metaModule); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + @Override + public Object deleteMetaModule(MetaModuleParam metaModuleParam) { + ResponseData responseData = new ResponseData(); + try { + QueryWrapper moduleQueryWrapper = new QueryWrapper() + .eq("device_type", metaModuleParam.getDeviceType()) + .eq("operation_type", metaModuleParam.getOperationType()); + this.baseMapper.delete(moduleQueryWrapper); + responseData.setMessage("success"); + responseData.setCode(200); + } catch (AcceptPendingException ex) { + log.error("主题:报警内容类型查询异常,异常信息{}", ex); + responseData.setMessage("查询异常"); + responseData.setCode(500); + } + return responseData; + } + + private MetaModule metaModuleBuilder(MetaModuleParam metaModuleParam) { + return MetaModule.builder() + .tableName(metaModuleParam.getTableName()) + .deviceType(metaModuleParam.getDeviceType()) + .fields(metaModuleParam.getFieldJson()) + .metaModuleName(metaModuleParam.getMetaModuleName()) + .operationType(metaModuleParam.getOperationType()) + .enable("1") + .lastTime(new Date()) + .createTime(new Date()) + .build(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java new file mode 100644 index 0000000..e9f18e3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ApplicationContextUtil.java @@ -0,0 +1,37 @@ +package com.casic.missiles.modular.system.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @Auther: cz + * @Date: 2022-12-04 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtil.applicationContext = applicationContext; + + } + + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + public static Boolean containsBean(String beanName) { + return applicationContext.containsBean(beanName); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java new file mode 100644 index 0000000..3e2afca --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/util/ExportMapToExcel.java @@ -0,0 +1,215 @@ +package com.casic.missiles.modular.system.util; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.io.IOException; +import java.util.*; + +/** + * + */ +@Slf4j +@SuppressWarnings("all") +public class ExportMapToExcel { + + + /** + * + * @param title + * @param dataset + * @param pattern + * @return + */ + public static void exportExcel(HttpServletResponse response, String fileName, String title, List> dataset) throws IOException { + int rownum = 0; + boolean flag = false; + Workbook workbook = null; + if (fileName.endsWith("xlsx")){ + workbook = new XSSFWorkbook(); + } else if (fileName.endsWith("xls")){ + workbook = new HSSFWorkbook(); + } else{ + try{ + throw new Exception("invalid file name, should be xls or xlsx"); + } catch (Exception e){ + log.info("必须是xls或者xlsx结尾的文件."); + e.printStackTrace(); + } + } + Map styles = createStyles(workbook); + Sheet sheet = workbook.createSheet(title); + CellStyle style = workbook.createCellStyle(); + + if(dataset.isEmpty()){ + log.info("没有数据"); + return; + } + + if (StringUtils.isNotBlank(title)){ + Row titleRow = sheet.createRow(rownum++); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), + titleRow.getRowNum(), titleRow.getRowNum(), dataset.get(0).size()-1)); + } + + + // 列名--表头 + Row row = sheet.createRow(rownum++); + Map headerMap = dataset.get(0); + Integer number = 2; + for(HashMap.Entry entry : headerMap.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + cell.setCellValue("自定义名称1"); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + cell.setCellValue("自定义名称2"); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + cell.setCellValue("自定义名称3"); + }else { + cell = row.createCell(number++); + cell.setCellValue(entry.getKey()); + } + cell.setCellStyle(styles.get("header")); + + } + //设置列宽 + for (int i = 0; i < headerMap.size(); i++) { + //sheet.autoSizeColumn(i); + sheet.setColumnWidth(i,7000); + } + + //数据 + Iterator> it = dataset.iterator(); + + while (it.hasNext()){ + row = sheet.createRow(rownum++); + + Map map = it.next(); + int num = 2; + for(HashMap.Entry entry : map.entrySet()) { + Cell cell = null; + if(("statisticalDate").equals(entry.getKey())){//0 + cell = row.createCell(0); + }else if(("transName").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("carplate").equals(entry.getKey())){//1 + cell = row.createCell(1); + }else if(("total").equals(entry.getKey())){//headerMap.size()-1 + cell = row.createCell(headerMap.size()-1); + }else{ + cell = row.createCell(num++); + } + cell.setCellStyle(styles.get("data2")); + //cell.setCellValue(entry.getValue().toString()); + Object val = entry.getValue(); + if (val == null){ + cell.setCellValue(""); + } else if (val instanceof String) { + cell.setCellValue((String) val); + } else if (val instanceof Integer) { + cell.setCellValue((Integer) val); + } else if (val instanceof Long) { + cell.setCellValue((Long) val); + } else if (val instanceof Double) { + cell.setCellValue((Double) val); + } else if (val instanceof Float) { + cell.setCellValue((Float) val); + } else if (val instanceof Date) { + DataFormat format = workbook.createDataFormat(); + style.setDataFormat(format.getFormat("yyyy-MM-dd")); + cell.setCellValue((Date) val); + } + + } + + } + response.reset(); + response.setContentType("application/octet-stream; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename="+ java.net.URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + + } + + + /** + * 创建表格样式 + * @param wb 工作薄对象 + * @return 样式列表 + */ + private static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); +// style.setWrapText(true); + style.setAlignment(HorizontalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + return styles; + } + +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index cb772b5..8ef5725 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -76,21 +76,20 @@ com.casic casic-admin-core ${admin.version} - - - - - - - - - - - - - - - + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-core + + + io.springfox + springfox-spring-web + + com.casic @@ -174,12 +173,12 @@ - - - - - - + + com.github.xiaoymin + + knife4j-spring-boot-starter + 3.0.3 + diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index feb7635..b61ed61 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,10 +27,6 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -//@ComponentScan(excludeFilters = -// {@ComponentScan.Filter( -// type = FilterType.REGEX, -// pattern = {"com.casic.missiles.config.web.ShiroConfig"})}) public class CasicApplication { public static void main(String[] args) { SpringApplication.run(CasicApplication.class, args); diff --git a/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java new file mode 100644 index 0000000..2e7b78d --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/Knife4jConfiguration.java @@ -0,0 +1,38 @@ +package com.casic.missiles.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +@EnableKnife4j +public class Knife4jConfiguration { + + @Value(value = "${swagger.enable}") + public boolean enable; + @Value(value = "${swagger.groupName}") + public String groupName; + + @Bean(value = "dockerBean") + public Docket dockerBean() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + //描述字段支持Markdown语法 + .description("# Knife4j RESTful APIs") + .termsOfServiceUrl("https://doc.casic.com/") + .version("1.0") + .build()) + //分组名称 + .groupName(groupName) + .select() + .apis(RequestHandlerSelectors.basePackage("com.casic")) + .paths(PathSelectors.any()).build().enable(enable); + } + +} \ No newline at end of file diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d8aab53..a48f6f1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: @@ -31,7 +31,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/doc.html + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/v2/api-docs,/v2/api-docs-ext,/doc.html,/webjars/**,/swagger-resources/** db: init: enable: false diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 509b0e8..796fb67 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -55,6 +55,8 @@ appRoleName: app adminRoleName: administrator opRoleName: operation + module: + databaseTable: smartwell_demo device: redis: invalid-time: 86400 diff --git a/casic.module/pom.xml b/casic.module/pom.xml deleted file mode 100644 index e4405db..0000000 --- a/casic.module/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - casic-smartcity - com.casic - 2.0.0.alpha - ../pom.xml - - 4.0.0 - - casic-module - 2.0.0.alpha - jar - casic-module - casic 模块管理表 - - - - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-device - ${pro.version} - - - com.casic - casic-quartz - ${pro.version} - - - com.casic - casic-server-support - ${pro.version} - - - org.springframework.boot - spring-boot-starter-websocket - 2.4.5 - - - com.gexin.platform - gexin-rp-fastjson - 1.0.0.3 - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.30 - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.0.5 - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.24 - - - - com.casic - casic-server-support - ${pro.version} - provided - - - - org.quartz-scheduler - quartz - 2.3.0 - - - - com.casic - casic-export-support - ${extension.version} - - - - junit - junit - test - - - - - - - src/main/java - - **/*.xml - - - - - - \ No newline at end of file diff --git a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java b/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java deleted file mode 100644 index 2f6d635..0000000 --- a/casic.module/src/main/java/com/casic/missiles/controller/MetaModuleController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.casic.missiles.controller; - -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Slf4j -@RequestMapping("/meta") -@AllArgsConstructor -public class MetaModuleController { - - private final MetaModuleService metaService; - - @RequestMapping(value = "/getField") - @ResponseBody - public Object getField(String tableName) { - return metaService.getFieldByName(tableName); - } - - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java b/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java deleted file mode 100644 index aa4b447..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/MetaModuleMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.casic.missiles.dao; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -@Mapper -public interface MetaModuleMapper { - - Map getFieldByName(@Param("tableName") String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml b/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml deleted file mode 100644 index 4b9c14e..0000000 --- a/casic.module/src/main/java/com/casic/missiles/dao/mapper/MetaModuleMapper.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java b/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java deleted file mode 100644 index 94eb627..0000000 --- a/casic.module/src/main/java/com/casic/missiles/servcie/MetaModuleService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.servcie; - -public interface MetaModuleService { - - Object getFieldByName(String tableName); - -} diff --git a/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java b/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java deleted file mode 100644 index e889144..0000000 --- a/casic.module/src/main/java/com/casic/missiles/servcie/impl/MetaModuleServiceImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.casic.missiles.servcie.impl; - -import com.casic.missiles.dao.MetaModuleMapper; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.servcie.MetaModuleService; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.nio.channels.AcceptPendingException; - -@Service -@Slf4j -@AllArgsConstructor -public class MetaModuleServiceImpl implements MetaModuleService { - - private final MetaModuleMapper metaModuleMapper; - - @Override - public Object getFieldByName(String tableName) { - ResponseData responseData = new ResponseData(); - try { - metaModuleMapper.getFieldByName(tableName); - responseData.setMessage("success"); - responseData.setCode(200); - } catch (AcceptPendingException ex) { - log.error("主题:报警内容类型查询异常,异常信息{}", ex); - responseData.setMessage("查询异常"); - responseData.setCode(500); - } - return responseData; - - } -} diff --git a/pom.xml b/pom.xml index 4310dd4..1591db7 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,6 @@ casic-device casic-alarm casic-server-support - casic.module