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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/noise_config_template.xlsx b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx new file mode 100644 index 0000000..f2386fe --- /dev/null +++ b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/noise_config_template.xlsx b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx new file mode 100644 index 0000000..f2386fe --- /dev/null +++ b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/press_config_template.xlsx b/casic-web/src/main/resources/config/temp/press_config_template.xlsx new file mode 100644 index 0000000..5809f6e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/press_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/noise_config_template.xlsx b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx new file mode 100644 index 0000000..f2386fe --- /dev/null +++ b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/press_config_template.xlsx b/casic-web/src/main/resources/config/temp/press_config_template.xlsx new file mode 100644 index 0000000..5809f6e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/press_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx new file mode 100644 index 0000000..9145a70 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/noise_config_template.xlsx b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx new file mode 100644 index 0000000..f2386fe --- /dev/null +++ b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/press_config_template.xlsx b/casic-web/src/main/resources/config/temp/press_config_template.xlsx new file mode 100644 index 0000000..5809f6e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/press_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx new file mode 100644 index 0000000..9145a70 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx b/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx new file mode 100644 index 0000000..cca284e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx Binary files differ 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 0cc1d6d..8dce9d7 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 @@ -147,4 +147,24 @@ return ResponseData.success(dataPantiltList); } + /** + * 压力数据列表 + */ + @GetMapping(value = "/press/list") + public Object pressList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getPressList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + + /** + * 可燃气体探测器数据列表 + */ + @GetMapping(value = "/kad/list") + public Object kadList(String devcode, String wellCode, String beginTime, String endTime) { + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + List dataVOList = deviceDataListService.getKadList(dataScope, devcode, beginTime, endTime, wellCode); + return ResponseData.success(dataVOList); + } + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java index 8236dc7..fadf3bb 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/controller/DeviceWellDataController.java @@ -705,4 +705,60 @@ super.exportExcel(H2SDataDto.class, page.getRecords(), DeviceExportEnum.H2S_EXPORT.getFileName()); } + + /** + * 压力列表 + */ + @GetMapping(value = "/press/list-page") + public Object pressList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 压力导出 + */ + @GetMapping(value = "/press/export") + public void pressExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getPresslist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataPressDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + /** + * 可燃气体探测器列表 + */ + @GetMapping(value = "/kad/list-page") + public Object kadList(String keywords, String deptid, String beginTime, String endTime) { + Page page = PageFactory.defaultPage(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + return deviceService.getKadlist(dataScope, page, keywords, beginTime, endTime, deptid); +// ResponseData responseData = deviceService.getPresslist(dataScope, page, keywords, beginTime, endTime, deptid); +// responseData.setData(super.packForBT(page)); +// return responseData; + } + + /** + * 可燃气体探测器导出 + */ + @GetMapping(value = "/kad/export") + public void kadExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + deviceService.getKadlist(dataScope, page, deptid, beginTime, endTime, keywords); + super.exportExcel(DataKadDto.class, page.getRecords(), DeviceExportEnum.PRESS_EXPORT.getFileName()); + } + + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java index cd21bad..a0ace3f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DataAnalysisMapper.java @@ -1,12 +1,13 @@ package com.casic.missiles.modular.system.dao; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.dto.AlarmDeptStaticsDto; +import com.casic.missiles.modular.system.dto.BfztCountDataDto; +import com.casic.missiles.modular.system.dto.BusWellInfoDto; +import com.casic.missiles.modular.system.dto.DeviceData; import com.casic.missiles.modular.system.dto.ExcelModel.*; -import com.casic.missiles.modular.system.dto.statistic.DataH2s; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -75,7 +76,7 @@ List selectLiquidDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); + List getWellliquiddataList(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); List selectGasDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); @@ -107,9 +108,24 @@ List> selectHarmfulDataList(@Param("dataScope") DataScope dataScope, @Param("wellCode") String wellCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime); - List getHydrantlist(@Param("dataScope") DataScope dataScope,@Param("page")Page page, @Param("deptid") Long deptid, + List getHydrantlist(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") Long deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); - List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page")Page page, @Param("keywords") String keywords, - @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + List selectH2sListDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("keywords") String keywords, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Long deptid); + + List selectPressListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + + List selectKadListDataScopePage(@Param("dataScope") DataScope dataScope, + @Param("page") Page page, + @Param("keywords") String keywords, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("deptid") Long deptid); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java index aeab8dd..b20fd0f 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/DeviceDataListMapper.java @@ -1,9 +1,7 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.modular.system.dto.ExcelModel.*; import com.casic.missiles.modular.system.dto.statistic.*; import com.casic.missiles.modular.system.model.BusWellInfo; import org.apache.ibatis.annotations.Param; @@ -49,4 +47,8 @@ List getPantiltList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + List getPressList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + + List getKadList(@Param("dataScope") DataScope dataScope, @Param("devcode") String devcode, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("wellCode") String wellCode); + } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml index d96939d..45f741c 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DataAnalysisMapper.xml @@ -1402,7 +1402,9 @@ - and dh2s.UPTIME + + + and dh2s.UPTIME @@ -1416,4 +1418,98 @@ ORDER BY uptime DESC + + + + diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml index 91919f7..df1aea7 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceDataListMapper.xml @@ -697,14 +697,15 @@ - SELECT dp.DEVCODE AS devcode, - dp.WELL_CODE AS "wellCode", - dp.CONCENTRATION AS concentration, - dp.DIRCETION AS dircetion, - dp.PITCH AS pitch, + dp.WELL_CODE AS wellCode, + dp.DATA_VALUE AS ddata, dp.CELL, + dp.SINR AS sinr, + dp.RSRP AS rsrp, + dp.PCI AS pci, @@ -715,7 +716,53 @@ AS logtime, bwi.deptid, bd.device_type as deviceType - FROM data_pantilt dp + FROM data_perssure dp + JOIN bus_device bd ON dp.DEVCODE = bd.DEVCODE + INNER JOIN bus_device_well bdw ON bd.ID=bdw.DEVICE_ID + INNER JOIN bus_well_info bwi ON bdw.WELL_ID=bwi.ID + + bd.VALID = '1' AND bwi.VALID = '1' + + AND dp.DEVCODE = #{devcode} + + + AND bwi.WELL_CODE = #{wellCode} + + + and dp.UPTIME = ]]> + + + + + + and dp.UPTIME + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java index 8e8a4dc..f247bff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dict/BusConfigDict.java @@ -21,6 +21,8 @@ put("sleepStartTime","睡眠开始时间"); put("ip","IP地址"); put("port","端口号"); + put("lowerThreshold","低报报警阈值"); + put("upperThreshold","高报报警阈值"); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index af4d0d9..739ec56 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -32,6 +32,8 @@ abstractRequestHashMap.put(DeviceTypeEnum.H2s.toString(), new H2SRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Dig.toString(), new NoiseDigRequest()); abstractRequestHashMap.put(DeviceTypeEnum.LG.toString(), new LGRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.PRESS.toString(), new PressRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.KAD.toString(), new KadRequest()); } private String netType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java new file mode 100644 index 0000000..ccdb75f --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/KadRequest.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class KadRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) { + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java new file mode 100644 index 0000000..aae0c0b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/PressRequest.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.rs; + + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by lenovo on 2018/1/9. + */ +public class PressRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public void send(String devCode, String content, String attemptsMax) { + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + String[] conArr = content.split(","); + commConfigDTO.setRepeat(Long.valueOf(conArr[0])); + commConfigDTO.setInterval(Long.valueOf(conArr[1])); + commConfigDTO.setPeriod(Long.valueOf(conArr[2])); + if (conArr.length >= 5&& ObjectUtil.isNotEmpty(conArr[3])) { + commConfigDTO.setIp(conArr[3]); + commConfigDTO.setPort(Long.valueOf(conArr[4])); + } + if (conArr.length >= 6&& ObjectUtil.isNotEmpty(conArr[5])) { + commConfigDTO.setLowerThreshold(Float.valueOf(conArr[5])); + } + if (conArr.length >= 7&& ObjectUtil.isNotEmpty(conArr[6])) { + commConfigDTO.setUpperThreshold(Float.valueOf(conArr[6])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())){ + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java index 7a80c9a..9e6929e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusGasLiquidConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.LG.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java index 6391fd7..860a67b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusH2sConfigServiceImpl.java @@ -166,7 +166,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.H2s.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java new file mode 100644 index 0000000..1a9bb6e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusKadConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusKadConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.KAD.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.KAD.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.KAD_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("端口号", "port"); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java index 53c0a1d..fd7fae0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusMethaneConfigServiceImpl.java @@ -176,7 +176,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Methane.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java new file mode 100644 index 0000000..13eb940 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusPressConfigServiceImpl.java @@ -0,0 +1,357 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +/** + *

+ * 设备配置表 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2019-05-16 + */ +@Service +public class BusPressConfigServiceImpl extends ServiceImpl implements IBusConfigService { + @Autowired + private RedisCommon redisCommon; + @Resource + private IBaseExportService exportService; + @Autowired + private IDeviceService iDeviceService; + @Autowired + private IDeviceRuleService iDeviceRuleService; + @Autowired + private DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + +// public String getThresholdByDevId(BusConfigDTO busConfigDTO) { +// String limitValue = "0";//报警阈值 +// limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); +// DecimalFormat df = new DecimalFormat("0.000"); +// limitValue = df.format(Double.parseDouble(limitValue) * +// Double.valueOf(busConfigDTO.getPercent()) / 100); +// return limitValue; +// } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length >= 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + if (configItems.length >= 6) { + dto.setLowerThreshold(configItems[5]); + } + if (configItems.length >= 7) { + dto.setUpperThreshold(configItems[6]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVICE_ID", busConfigDTO.getDeviceId()); + this.remove(queryWrapper); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.PRESS.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getIp())?busConfigDTO.getIp():"") + "," + + (ObjectUtil.isNotEmpty(busConfigDTO.getPort())?busConfigDTO.getPort():"") + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { +// busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort() + "," + + busConfigDTO.getLowerThreshold() + "," + busConfigDTO.getUpperThreshold()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), + ObjectUtil.isNotEmpty(busConfigDTO.getUpperThreshold()) ? + Float.valueOf(busConfigDTO.getUpperThreshold()) : null, + ObjectUtil.isNotEmpty(busConfigDTO.getLowerThreshold()) ? + Float.valueOf(busConfigDTO.getLowerThreshold()) : null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.PRESS.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getLowerThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,低报报警阈值必填且为数字"); + return stringMap; + } + if (!RegUtil.isNumeric(busConfigDTOList.get(i).getUpperThreshold())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,高报报警阈值必填且为数字"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("低报报警阈值", "lowerThreshold"); + mapper.put("高报报警阈值", "upperThreshold"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.METHANE_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("低报报警阈值", busConfigDTO.getLowerThreshold()); + put("高报报警阈值", busConfigDTO.getUpperThreshold()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + put("创建时间", busConfigDTO.getWritetime()); + } + }); + } + } + }); + //输出模板 + //TODO 导出类设置 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java index 01ffe04..77f78cb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusTubeConfigServiceImpl.java @@ -175,7 +175,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Tube.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java index 1ea9554..f14cc28 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWasteGasConfigServiceImpl.java @@ -172,7 +172,7 @@ if (device != null) { iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); } - String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Liquid.toString(), + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.WasteGas.toString(), busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 RedisPublisherUtil.getInstance(). diff --git a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java index 57f626d..316fb65 100644 --- a/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/util/RegUtil.java @@ -34,7 +34,7 @@ public static boolean isIp(String str) {// 判断iP if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"); @@ -45,7 +45,7 @@ public static boolean isPort(String str) {// 判断端口号 if (StrUtil.isBlank(str)) { - return false; + return true; } Pattern pattern = compile("^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]{1}|6553[0-5])$"); Matcher match = pattern.matcher(str); @@ -65,4 +65,14 @@ } + public static boolean isNumeric(String str){ + if (StrUtil.isBlank(str)) { + return false; + } + Pattern pattern = compile("-?\\d+(\\.\\d+)?"); + Matcher match = pattern.matcher(str); + return match.matches(); + } + + } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index 5b37acc..b0de1bb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -24,14 +25,9 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated @Component +@Data public class BusConfigDTO { - // mapper.put("设备编号", "devcode"); -// mapper.put("报警阈值(%)", "percent"); -// mapper.put("安装高度(M)", "installHeight"); -// mapper.put("重传次数", "retryTimes"); -// mapper.put("IP地址", "ip"); -// mapper.put("端口号", "port"); -// mapper.put("最大尝试次数", "attemptsMax"); + private Long id; private Long deviceId; /** @@ -137,9 +133,24 @@ @ExcelProperty("睡眠开始时间(时:分)") private String sleepStartTime; /** - * 休眠开始时间 + * sensorId */ private String sensorId; + /** + * 低报报警阈值 + */ + @ExcelProperty("低报报警阈值") + private String lowerThreshold; + /** + * 高报报警阈值 + */ + @ExcelProperty("高报报警阈值") + private String upperThreshold; + + /** + * 创建时间 + */ + private String writetime; public static Map sensorHashMap = new HashMap(); {//根据前期产品化文档,配置时存入config表中对应的sensorid字段,区分是哪类设备 @@ -153,234 +164,14 @@ sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); + sensorHashMap.put(DeviceTypeEnum.PRESS.getIndex(),"000086"); + sensorHashMap.put(DeviceTypeEnum.KAD.getIndex(),"000087"); } // private String framecontent;//下发内容 - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - - public void setDeviceType(Long deviceType) { - this.deviceType = deviceType; - } - - public Long getDeviceId() { - return deviceId; - } - - public void setDeviceId(Long deviceId) { - this.deviceId = deviceId; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceTypeName() { - return deviceTypeName; - } - - public void setDeviceTypeName(String deviceTypeName) { - this.deviceTypeName = deviceTypeName; - } - - public String getDeptid() { - return deptid; - } - - public void setDeptid(String deptid) { - this.deptid = deptid; - } - - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getWellCode() { - return wellCode; - } - - public void setWellCode(String wellCode) { - this.wellCode = wellCode; - } - - public float getThreshold() { - return threshold; - } - - public void setThreshold(float threshold) { - this.threshold = threshold; - } - - public float getPercent() { - return percent; - } - - public void setPercent(float percent) { - this.percent = percent; - } - - public float getInstallHeight() { - return installHeight; - } - - public void setInstallHeight(float installHeight) { - this.installHeight = installHeight; - } - - public String getRetryTimes() { - return retryTimes; - } - - public void setRetryTimes(String retryTimes) { - this.retryTimes = retryTimes; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getAttemptsMax() { - return attemptsMax; - } - - public void setAttemptsMax(String attemptsMax) { - this.attemptsMax = attemptsMax; - } - - public String getAttemptsCurrent() { - return attemptsCurrent; - } - - public void setAttemptsCurrent(String attemptsCurrent) { - this.attemptsCurrent = attemptsCurrent; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getStatusName() { - return statusName; - } - - public void setStatusName(String statusName) { - this.statusName = statusName; - } - - public Long getDeviceType() { - return deviceType; - } - - public String getCollectInterval() { - return collectInterval; - } - - public void setCollectInterval(String collectInterval) { - this.collectInterval = collectInterval; - } - - public String getCollectCount() { - return collectCount; - } - - public void setCollectCount(String collectCount) { - this.collectCount = collectCount; - } - - public String getReloadInterval() { - return reloadInterval; - } - - public void setReloadInterval(String reloadInterval) { - this.reloadInterval = reloadInterval; - } - - public String getSleepPeriod() { - return sleepPeriod; - } - - public void setSleepPeriod(String sleepPeriod) { - this.sleepPeriod = sleepPeriod; - } - - public String getUploadPeriod() { - return uploadPeriod; - } - - public void setUploadPeriod(String uploadPeriod) { - this.uploadPeriod = uploadPeriod; - } - - public String getCollectTime() { - return collectTime; - } - - public void setCollectTime(String collectTime) { - this.collectTime = collectTime; - } - - public String getSleepStartTime() { - return sleepStartTime; - } - - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } - - public String getSensorId() { - return sensorId; - } - - public void setSensorId(String sensorId) { - this.sensorId = sensorId; - } - - public float getPercentExp() { - return percentExp; - } - - public void setPercentExp(float percentExp) { - this.percentExp = percentExp; - } public BusConfigDTO() { } @@ -407,6 +198,7 @@ dto.setStatusName("1".equals(objectMap.get("status").toString()) ? "已下发" : "未下发"); dto.setAttemptsMax(objectMap.get("attemptsmax").toString()); + dto.setWritetime(objectMap.get("writetime").toString()); return dto; } return new BusConfigDTO(); diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java index 03b792d..e5f6cba 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/CommConfigDTO.java @@ -1,5 +1,8 @@ package com.casic.missiles.modular.system.dto; +import lombok.Data; + +@Data public class CommConfigDTO { private String acqStart;//采集开始时间 private Long interval;//采集时间间隔(分钟) @@ -35,261 +38,8 @@ private Float upperLimitPressure ;//压力报警下限 private Long limitDig ;//开挖阈值 - - public String getAcqStart() { - return acqStart; - } - - public void setAcqStart(String acqStart) { - this.acqStart = acqStart; - } - - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public Long getPort() { - return port; - } - - public void setPort(Long port) { - this.port = port; - } - - public String getCollect() { - return collect; - } - - public void setCollect(String collect) { - this.collect = collect; - } - - public String getAcqCycle() { - return acqCycle; - } - - public void setAcqCycle(String acqCycle) { - this.acqCycle = acqCycle; - } - - public String getUpCycle() { - return upCycle; - } - - public void setUpCycle(String upCycle) { - this.upCycle = upCycle; - } - - public Long getInterval() { - return interval; - } - - public void setInterval(Long interval) { - this.interval = interval; - } - - public Long getTimes() { - return times; - } - - public void setTimes(Long times) { - this.times = times; - } - - public Long getRepeat() { - return repeat; - } - - public void setRepeat(Long repeat) { - this.repeat = repeat; - } - - public Float getThresh() { - return thresh; - } - - public void setThresh(Float thresh) { - this.thresh = thresh; - } - - public Float getHeight() { - return height; - } - - public void setHeight(Float height) { - this.height = height; - } - - public Long getPeriod() { - return period; - } - - public void setPeriod(Long period) { - this.period = period; - } - - public String getAcqStartFlow() { - return acqStartFlow; - } - - public void setAcqStartFlow(String acqStartFlow) { - this.acqStartFlow = acqStartFlow; - } - - public Long getIntervalFlow() { - return intervalFlow; - } - - public void setIntervalFlow(Long intervalFlow) { - this.intervalFlow = intervalFlow; - } - - public Long getAcqTimesFlow() { - return acqTimesFlow; - } - - public void setAcqTimesFlow(Long acqTimesFlow) { - this.acqTimesFlow = acqTimesFlow; - } - - public String getUpStartFlow() { - return upStartFlow; - } - - public void setUpStartFlow(String upStartFlow) { - this.upStartFlow = upStartFlow; - } - - public Long getUpTimesFlow() { - return upTimesFlow; - } - - public void setUpTimesFlow(Long upTimesFlow) { - this.upTimesFlow = upTimesFlow; - } - - public String getAcqStartNoise() { - return acqStartNoise; - } - - public void setAcqStartNoise(String acqStartNoise) { - this.acqStartNoise = acqStartNoise; - } - - public Long getIntervalNoise() { - return intervalNoise; - } - - public void setIntervalNoise(Long intervalNoise) { - this.intervalNoise = intervalNoise; - } - - public Long getAcqTimesNoise() { - return acqTimesNoise; - } - - public void setAcqTimesNoise(Long acqTimesNoise) { - this.acqTimesNoise = acqTimesNoise; - } - - public String getUpStartNoise() { - return upStartNoise; - } - - public void setUpStartNoise(String upStartNoise) { - this.upStartNoise = upStartNoise; - } - - public Long getUpTimesNoise() { - return upTimesNoise; - } - - public void setUpTimesNoise(Long upTimesNoise) { - this.upTimesNoise = upTimesNoise; - } - - public String getAcqStartPressure() { - return acqStartPressure; - } - - public void setAcqStartPressure(String acqStartPressure) { - this.acqStartPressure = acqStartPressure; - } - - public Long getIntervalPressure() { - return intervalPressure; - } - - public void setIntervalPressure(Long intervalPressure) { - this.intervalPressure = intervalPressure; - } - - public Long getAcqTimesPressure() { - return acqTimesPressure; - } - - public void setAcqTimesPressure(Long acqTimesPressure) { - this.acqTimesPressure = acqTimesPressure; - } - - public String getUpStartPressure() { - return upStartPressure; - } - - public void setUpStartPressure(String upStartPressure) { - this.upStartPressure = upStartPressure; - } - - public Long getUpTimesPressure() { - return upTimesPressure; - } - - public void setUpTimesPressure(Long upTimesPressure) { - this.upTimesPressure = upTimesPressure; - } - - public Float getLowerLimitPressure() { - return lowerLimitPressure; - } - - public void setLowerLimitPressure(Float lowerLimitPressure) { - this.lowerLimitPressure = lowerLimitPressure; - } - - public Float getUpperLimitPressure() { - return upperLimitPressure; - } - - public void setUpperLimitPressure(Float upperLimitPressure) { - this.upperLimitPressure = upperLimitPressure; - } - - public String getMultiCollect() { - return MultiCollect; - } - - public void setMultiCollect(String multiCollect) { - MultiCollect = multiCollect; - } - - public Long getLimitDig() { - return limitDig; - } - - public void setLimitDig(Long limitDig) { - this.limitDig = limitDig; - } + private Float lowerThreshold; //低报报警阈值 + private Float upperThreshold; //高报报警阈值 - public String getSleepStartTime() { - return sleepStartTime; - } - public void setSleepStartTime(String sleepStartTime) { - this.sleepStartTime = sleepStartTime; - } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java index d4481d2..78d8c72 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/DeviceTypeEnum.java @@ -14,7 +14,9 @@ FireHydrant("消防栓防盗水监测仪", 11), Tube("管盯", 12), LG("井盖液位一体机", 13), - H2s("硫化氢检测终端", 14); + H2s("硫化氢检测终端", 14), + PRESS("压力监测终端", 15), + KAD("点型可燃气体探测器", 16); // 成员变量 private String name; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java new file mode 100644 index 0000000..1a59fd0 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataKadDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 可燃气体探测器列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataKadDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("燃气浓度") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java new file mode 100644 index 0000000..9a8fa58 --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/ExcelModel/DataPressDto.java @@ -0,0 +1,53 @@ +package com.casic.missiles.modular.system.dto.ExcelModel; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 压力列表返回 + * + * @author + * @date 2022-07-28 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPressDto { + @ExcelProperty("设备编号") + private String devcode; + + @ExcelProperty("点位编号") + private String wellCode; + private String deviceType; + + @ExcelProperty("设备类型") + private String deviceTypeName; + + private String deptid; + + @ExcelProperty("权属部门") + private String deptName; + + @ExcelProperty("压力值") + private String ddata; + + @ExcelProperty("电量(%)") + private String cell; + + @ExcelProperty("采集时间") + private String logtime; + @ExcelProperty("记录时间") + private String uptime; + +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java new file mode 100644 index 0000000..ad1831a --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/statistic/DataVO.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dto.statistic; + +import lombok.Data; + +@Data +public class DataVO { + private String logtime; + private String uptime; + private String devcode; + private String wellCode; + private String ddata; + private String cell; + private String sinr; + private String rsrp; + private String pci; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java index 5aeebdf..c24a17d 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -24,7 +24,9 @@ ALARMRECORD_EXPORT("alarmRecordData.xlsx", "alarmRecordData.xlsx", "预警工单"), METHANE_EXPORT("methaneData.xlsx", "methaneData.xlsx", "甲烷数据"), HYDRANT_EXPORT("hydrantData.xlsx", "hydrantData.xlsx", "消防栓数据"), - H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") ; + H2S_EXPORT("h2sData.xlsx", "h2sData.xlsx", "硫化氢数据") , + PRESS_EXPORT("pressData.xlsx", "pressData.xlsx", "压力数据") , + KAD_EXPORT("kadData.xlsx", "kadData.xlsx", "可燃气体探测器数据") ; /** * 导出模板相对路径 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java index 16239d7..5bf08fa 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/DeviceRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; +import lombok.Data; import java.io.Serializable; import java.util.Date; @@ -18,6 +19,7 @@ * @since 2019-05-17 */ @TableName("alarm_rule") +@Data public class DeviceRule extends Model { private static final long serialVersionUID = 1L; @@ -71,86 +73,6 @@ @TableField("OPERATOR") private String operator; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDevcode() { - return devcode; - } - - public void setDevcode(String devcode) { - this.devcode = devcode; - } - - public Float getHighvalue() { - return highvalue; - } - - public void setHighvalue(Float highvalue) { - this.highvalue = highvalue; - } - - public Float getLowvalue() { - return lowvalue; - } - - public void setLowvalue(Float lowvalue) { - this.lowvalue = lowvalue; - } - - public Float getOvertime() { - return overtime; - } - - public void setOvertime(Float overtime) { - this.overtime = overtime; - } - - public Float getSaltation() { - return saltation; - } - - public void setSaltation(Float saltation) { - this.saltation = saltation; - } - - public String getSensorcode() { - return sensorcode; - } - - public void setSensorcode(String sensorcode) { - this.sensorcode = sensorcode; - } - - public String getGrade() { - return grade; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public Date getTs() { - return ts; - } - - public void setTs(Date ts) { - this.ts = ts; - } - - public String getOperator() { - return operator; - } - - public void setOperator(String operator) { - this.operator = operator; - } - @Override diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 2956ae4..846492b 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -40,10 +40,10 @@ spring-session-open: false #开启spring session smartcity: config: - export-path: D:\cz\203\管网\升级\2.0\casic-smartcity\casic-web\src\main\resources\config\export\ + export-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\export\ #export-path: D:\export\ image-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\image\ - config-path: D:\workspace\server\well\2.0\casic-smartcity\casic-web\src\main\resources\config\temp\ + config-path: D:\code\zhajing\15gitproduct\casic_smartcity3.0\casic-smartcity\casic-web\src\main\resources\config\temp\ download-path: D:\v1.0\ device: redis: diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml index 09a5f82..e487b84 100644 --- a/casic-web/src/main/resources/config/application-prod.yml +++ b/casic-web/src/main/resources/config/application-prod.yml @@ -7,7 +7,7 @@ static-locations: file:/casic/smartwell/smartwellProd3/static/,file:/casic/smartwell/smartwellProd3/download/,file:/casic/smartwell/smartwellProd3/image/ # 文件的下载和图片路径,对应static接口 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/smartwell_zq?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/smartwell?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root password: Casic203 redis: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 578276c..0cf0abf 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ ########################################################## spring: profiles: - active: dm + active: dev servlet: multipart: max-file-size: 50MB diff --git a/casic-web/src/main/resources/config/export/kadData.xlsx b/casic-web/src/main/resources/config/export/kadData.xlsx new file mode 100644 index 0000000..7ec68b5 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/kadconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressData.xlsx b/casic-web/src/main/resources/config/export/pressData.xlsx new file mode 100644 index 0000000..94088f3 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressData.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx new file mode 100644 index 0000000..c735ef2 --- /dev/null +++ b/casic-web/src/main/resources/config/export/pressconfigTemp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx new file mode 100644 index 0000000..2786cf8 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx new file mode 100644 index 0000000..de0f0d2 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/alarmRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx new file mode 100644 index 0000000..ff33e6b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/busConcentrator_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/config_template.xlsx b/casic-web/src/main/resources/config/temp/config_template.xlsx new file mode 100644 index 0000000..3af0e2b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx new file mode 100644 index 0000000..8140c63 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/dig_config_template.xlsx b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx new file mode 100644 index 0000000..2ddc235 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/dig_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx new file mode 100644 index 0000000..f118688 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecEmpty.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx new file mode 100644 index 0000000..4df3416 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/jobRecTemplate.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/kad_config_template.xlsx b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx new file mode 100644 index 0000000..0f25ef3 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/kad_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/methane_config_template.xlsx b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx new file mode 100644 index 0000000..830059b --- /dev/null +++ b/casic-web/src/main/resources/config/temp/methane_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx new file mode 100644 index 0000000..70198ce --- /dev/null +++ b/casic-web/src/main/resources/config/temp/nbDevice_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/noise_config_template.xlsx b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx new file mode 100644 index 0000000..f2386fe --- /dev/null +++ b/casic-web/src/main/resources/config/temp/noise_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/press_config_template.xlsx b/casic-web/src/main/resources/config/temp/press_config_template.xlsx new file mode 100644 index 0000000..5809f6e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/press_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx new file mode 100644 index 0000000..9145a70 --- /dev/null +++ b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx b/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx new file mode 100644 index 0000000..cca284e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/tempHumi_config_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/wasteGas_config_template.xlsx b/casic-web/src/main/resources/config/temp/wasteGas_config_template.xlsx new file mode 100644 index 0000000..372e40e --- /dev/null +++ b/casic-web/src/main/resources/config/temp/wasteGas_config_template.xlsx Binary files differ