Parcourir la source

能源管控大屏代码同步001

qiangxuan il y a 7 mois
Parent
commit
e532d50a94

+ 14 - 13
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/controller/ExternalDataController.java

@@ -30,7 +30,7 @@ public class ExternalDataController {
     @ApiOperation(value="获取能源管控中心数据", notes="获取能源管控中心数据")
     public Result<?> getDetector(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-                                    @RequestParam(name="dataType", required = false) String dataType){
+                                 @RequestParam(name="dataType", required = false) String dataType){
         Page<Detector> detectors = externalDataService.getDetector(pageNo,pageSize,dataType);
         return Result.OK(detectors);
     }
@@ -47,16 +47,17 @@ public class ExternalDataController {
 
     @GetMapping("/getDevice")
     @ApiOperation(value="根据类型获取能源管控中心设备信息", notes="根据类型获取能源管控中心设备信息")
-    public Result<?> getDevice(@RequestParam(name = "type") String type){
-        List<Device> result = externalDataService.getDevice(type);
+    public Result<?> getDevice(@RequestParam(name = "type") String type,
+                               @RequestParam(name="dataType", required = false) String dataType){
+        List<Device> result = externalDataService.getDevice(type, dataType);
         return Result.OK(result);
     }
 
     @GetMapping("/getOld")
     @ApiOperation(value="炼铁老区数据", notes="炼铁老区数据")
     public Result<?> getOld(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                                 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-                                    @RequestParam(name="dataType", required = false) String dataType){
+                            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                            @RequestParam(name="dataType", required = false) String dataType){
         Page<Detector> detectors = externalDataService.getOld(pageNo,pageSize,dataType);
         return Result.OK(detectors);
     }
@@ -82,7 +83,7 @@ public class ExternalDataController {
     @GetMapping("/getSinter")
     @ApiOperation(value="炼铁烧结数据", notes="炼铁烧结数据")
     public Result<?> getSinter(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                               @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                @RequestParam(name="dataType", required = false) String dataType){
         Page<Detector> detectors = externalDataService.getSinter(pageNo,pageSize,dataType);
         return Result.OK(detectors);
@@ -100,8 +101,8 @@ public class ExternalDataController {
 
     @GetMapping("/getDeviceSinter")
     @ApiOperation(value="根据类型获取炼铁烧结设备信息", notes="根据类型获取炼铁烧结设备信息")
-    public Result<?> getDeviceSinter(@RequestParam(name = "type") String type){
-        List<SteelMakeSinter> result = externalDataService.getDeviceSinter(type);
+    public Result<?> getDeviceSinter(@RequestParam(name = "type") String type, @RequestParam(name = "dataType") String dataType){
+        List<SteelMakeSinter> result = externalDataService.getDeviceSinter(type, dataType);
         return Result.OK(result);
     }
 
@@ -135,7 +136,7 @@ public class ExternalDataController {
     @GetMapping("/getRolling")
     @ApiOperation(value="轧钢数据", notes="轧钢数据")
     public Result<?> getRolling(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                 @RequestParam(name="dataType", required = false) String dataType){
         Page<Detector> detectors = externalDataService.getRolling(pageNo,pageSize,dataType);
         return Result.OK(detectors);
@@ -153,16 +154,16 @@ public class ExternalDataController {
 
     @GetMapping("/getDeviceRolling")
     @ApiOperation(value="根据类型获取轧钢设备信息", notes="根据类型获取轧钢设备信息")
-    public Result<?> getDeviceRolling(@RequestParam(name = "type") String type){
-        List<SteelRolling> result = externalDataService.getDeviceRolling(type);
+    public Result<?> getDeviceRolling(@RequestParam(name = "type") String type, @RequestParam(name = "dataType") String dataType){
+        List<SteelRolling> result = externalDataService.getDeviceRolling(type, dataType);
         return Result.OK(result);
     }
 
     @GetMapping("/getStell")
     @ApiOperation(value="炼钢数据", notes="炼钢数据")
     public Result<?> getStell(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                                @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-                                @RequestParam(name="dataType", required = false) String dataType){
+                              @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                              @RequestParam(name="dataType", required = false) String dataType){
         Page<Detector> detectors = externalDataService.getStell(pageNo,pageSize,dataType);
         return Result.OK(detectors);
     }

+ 2 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/SteelRollingMapper.java

@@ -17,4 +17,6 @@ public interface SteelRollingMapper extends BaseMapper<SteelRolling> {
     public List<Detector> getDataList();
 
     List<Detector> getTsDataList();
+
+    List<Detector> getHeDataList();
 }

+ 3 - 3
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/xml/SteelMakeMapper.xml

@@ -5,19 +5,19 @@
     <select id="getDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make
-        where type != '-1'  AND type_position = 27
+        where type != '-1' AND type_position is NULL
     </select>
 
     <select id="getFilterDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make
-        where type != '-1'  AND type_position = 27 AND group_type = '1'
+        where type != '-1' AND type_position = '27' AND group_type = '1'
     </select>
 
     <select id="getConverterDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make
-        where type != '-1'  AND type_position = 27 AND group_type = '2'
+        where type != '-1' AND group_type = '2'
     </select>
 
 </mapper>

+ 3 - 3
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/xml/SteelMakeNewMapper.xml

@@ -5,18 +5,18 @@
     <select id="getDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make_new
-        where type != '-1' AND type_position = 27
+        where type != '-1' AND type_position is NULL
     </select>
 
     <select id="getFilterDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make_new
-        where type != '-1' AND type_position = 27 AND group_type = '1'
+        where type != '-1' AND type_position = '27' AND group_type = '1'
     </select>
 
     <select id="getHighDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make_new
-        where type != '-1' AND type_position = 27 AND group_type = '2'
+        where type != '-1' AND group_type = '2'
     </select>
 </mapper>

+ 3 - 3
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/xml/SteelMakeOldMapper.xml

@@ -5,18 +5,18 @@
     <select id="getDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, ifnull(address, vname) as address,ifnull(data_value,'离线') as number
         from steel_make_old
-        where type != '-1' AND type_position = 27
+        where type != '-1' AND type_position is NULL
     </select>
 
     <select id="getFilterDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, ifnull(address, vname) as address,ifnull(data_value,'离线') as number
         from steel_make_old
-        where type != '-1' AND type_position = 27 AND group_type = '1'
+        where type != '-1' AND type_position = '27' AND group_type = '1'
     </select>
 
     <select id="getHighDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, ifnull(address, vname) as address,ifnull(data_value,'离线') as number
         from steel_make_old
-        where type != '-1' AND type_position = 27 AND group_type = '2'
+        where type != '-1'
     </select>
 </mapper>

+ 2 - 2
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/xml/SteelMakeSinterMapper.xml

@@ -5,13 +5,13 @@
     <select id="getDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make_sinter
-        where type != '-1'
+        where type != '-1' AND type_position is NULL
     </select>
 
     <select id="getTsDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_make_sinter
-        where type != '-1' AND type_position = 27
+        where type != '-1' AND type_position = '27'
     </select>
 
 </mapper>

+ 8 - 2
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/mapper/xml/SteelRollingMapper.xml

@@ -5,13 +5,19 @@
     <select id="getDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_rolling
-        where type != '-1'
+        where type != '-1' AND type_position is NULL
     </select>
 
     <select id="getTsDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
         select `id`, address,ifnull(data_value,'离线') as number
         from steel_rolling
-        where type != '-1' AND type_position = 27
+        where type != '-1' AND type_position = '27'
+    </select>
+
+    <select id="getHeDataList" resultType="org.jeecg.modules.externalData.entity.Detector">
+        select `id`, address,ifnull(data_value,'离线') as number
+        from steel_rolling
+        where type != '-1'
     </select>
 
 </mapper>

+ 3 - 3
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/service/IExternalDataService.java

@@ -33,15 +33,15 @@ public interface IExternalDataService {
 
     List<DetectorCount> countSteel(String dataType);
 
-    List<Device> getDevice(String type);
+    List<Device> getDevice(String type, String dataType);
 
     List<SteelMakeOld> getDeviceOld(String type, String dataType);
 
-    List<SteelMakeSinter> getDeviceSinter(String type);
+    List<SteelMakeSinter> getDeviceSinter(String type, String dataType);
 
     List<SteelMakeNew> getDeviceNew(String type, String dataType);
 
-    List<SteelRolling> getDeviceRolling(String type);
+    List<SteelRolling> getDeviceRolling(String type, String dataType);
 
     List<SteelMake> getDeviceSteel(String type, String dataType);
 

+ 189 - 66
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/externalData/service/impl/ExternalDataServiceImpl.java

@@ -59,10 +59,14 @@ public class ExternalDataServiceImpl implements IExternalDataService {
 //            statement = connection.prepareStatement(sql);
 //            statement.setInt(1,(pageNo-1)*pageSize);
 //            statement.setInt(2,pageSize);
-            String sql = "select `id`,address,`number` from detector where gas = 'CO' and type_position = 27 and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
+            String sql = "";
+            if ("0".equals(dataType)){
+                sql = "select `id`,address,`number` from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
+            }else {
+                sql = "select `id`,address,`number` from detector where gas = 'CO' and type_position = 27 and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
+            }
             statement = connection.prepareStatement(sql);
             ResultSet resultSet = statement.executeQuery();
-            System.out.println(resultSet);
             // 处理查询结果
             while (resultSet.next()) {
                 Detector detector = new Detector();
@@ -75,7 +79,7 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             statement.clearBatch();
             String sqlInfo = "";
             if ("0".equals(dataType)){
-                sqlInfo = "select count(0) from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
+                sqlInfo = "select count(0) from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
             }else {
                 sqlInfo = "select count(0) from detector where gas = 'CO' and type_position = 27 and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e')";
             }
@@ -84,8 +88,6 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             while (count.next()) {
                 res.setTotal(count.getInt(1));
             }
-
-
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
         } catch (SQLException throwables) {
@@ -119,9 +121,9 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             for (int i = 0; i <4 ; i++) {
                 String sqlInfo = "";
                 if ("0".equals(dataType)){
-                    sqlInfo = "select count(0) as amount from detector where gas = 'CO'  and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + i;
+                    sqlInfo = "select count(0) as amount from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + i;
                     if(i==0){
-                        sqlInfo = "select count(0) as amount from detector where gas = 'CO'  and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = " + i +" or type = 5)";
+                        sqlInfo = "select count(0) as amount from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = " + i +" or type = 5)";
                     }
                 }else {
                     sqlInfo = "select count(0) as amount from detector where gas = 'CO' and type_position = 27 and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + i;
@@ -177,9 +179,11 @@ public class ExternalDataServiceImpl implements IExternalDataService {
         for (int i = 0; i <4 ; i++) {
             LambdaQueryWrapper<SteelMakeNew> queryWrapper = new LambdaQueryWrapper<>();
             if ("0".equals(dataType)){
-                queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType, i);
-            }else if ("1".equals(dataType) || "2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType, i).isNull(SteelMakeNew::getTypePosition);
+            }else if ("1".equals(dataType)){
                 queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType, i).eq(SteelMakeNew::getGroupType, dataType).eq(SteelMakeNew::getTypePosition, "27");
+            }else if ("2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType, i).eq(SteelMakeNew::getGroupType, dataType);
             }
             Long amount = steelMakeNewMapper.selectCount(queryWrapper);
 //            if(i==0){
@@ -214,9 +218,11 @@ public class ExternalDataServiceImpl implements IExternalDataService {
         for (int i = 0; i <4 ; i++) {
             LambdaQueryWrapper<SteelMakeOld> queryWrapper = new LambdaQueryWrapper<>();
             if ("0".equals(dataType)){
-                queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType, i);
-            }else if ("1".equals(dataType) || "2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType, i).isNull(SteelMakeOld::getTypePosition);
+            }else if ("1".equals(dataType)){
                 queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType, i).eq(SteelMakeOld::getGroupType, dataType).eq(SteelMakeOld::getTypePosition, "27");
+            }else if ("2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType, i).eq(SteelMakeOld::getGroupType, dataType);
             }
             Long amount = steelMakeOldMapper.selectCount(queryWrapper);
 //            if(i==0){
@@ -249,9 +255,11 @@ public class ExternalDataServiceImpl implements IExternalDataService {
         for (int i = 0; i <4 ; i++) {
             LambdaQueryWrapper<SteelMakeSinter> queryWrapper = new LambdaQueryWrapper<>();
             if ("0".equals(dataType)){
-                queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType, i);
+                queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType, i).isNull(SteelMakeSinter::getTypePosition);
             }else if ("1".equals(dataType)){
                 queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType, i).eq(SteelMakeSinter::getTypePosition, "27");
+            }else if ("2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType, i);
             }
             Long amount = steelMakeSinterMapper.selectCount(queryWrapper);
 //            if(i==0){
@@ -272,6 +280,8 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             dataList = steelRollingMapper.getDataList();
         }else if ("1".equals(dataType)){
             dataList = steelRollingMapper.getTsDataList();
+        }else if ("2".equals(dataType)){
+            dataList = steelRollingMapper.getHeDataList();
         }
         Page<Detector> detectorPage = new Page<>();
         detectorPage.setRecords(dataList);
@@ -293,9 +303,11 @@ public class ExternalDataServiceImpl implements IExternalDataService {
         for (int i = 0; i <4 ; i++) { // 等级(四种等级)
             LambdaQueryWrapper<SteelRolling> queryWrapper = new LambdaQueryWrapper<>();
             if ("0".equals(dataType)){
-                queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType, i);
+                queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType, i).isNull(SteelRolling::getTypePosition);
             }else if ("1".equals(dataType)){
                 queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType, i).eq(SteelRolling::getTypePosition, "27");
+            }else if ("2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType, i);
             }
             Long amount = steelRollingMapper.selectCount(queryWrapper);
 //            if(i==0){
@@ -330,9 +342,11 @@ public class ExternalDataServiceImpl implements IExternalDataService {
         for (int i = 0; i <4 ; i++) {
             LambdaQueryWrapper<SteelMake> queryWrapper = new LambdaQueryWrapper<>();
             if ("0".equals(dataType)){
-                queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType, i);
-            }else if ("1".equals(dataType) || "2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType, i).isNull(SteelMake::getTypePosition);
+            }else if ("1".equals(dataType)){
                 queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType, i).eq(SteelMake::getGroupType, dataType).eq(SteelMake::getTypePosition, "27");
+            }else if ("2".equals(dataType)){
+                queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType, i).eq(SteelMake::getGroupType, dataType);
             }
             Long amount = steelMakeMapper.selectCount(queryWrapper);
 //            if(i==0){
@@ -347,7 +361,7 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     }
 
     @Override
-    public List<Device> getDevice(String type) {
+    public List<Device> getDevice(String type, String dataType) {
         LambdaQueryWrapper<ConfigSql> queryWrapper = new LambdaQueryWrapper<ConfigSql>().eq(ConfigSql::getTableName,"detector").eq(ConfigSql::getStatus,2).last("limit 1");
         ConfigSql configSql = configSqlMapper.selectOne(queryWrapper);
         Connection connection=null;
@@ -363,9 +377,22 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             url.append("jdbc:mysql://").append( configSql.getIp()).append(":").append(configSql.getHost()).append("/").append(configSql.getDbname()).append("?connectTimeout=2000&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai");
             connection = DriverManager.getConnection(url.toString(), configSql.getUsername(), configSql.getPassword());
             statement = connection.createStatement();
-            String sql = "select address,factory from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + type;
-            if(type.equals("0")){
-                sql = "select address,factory from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = 0 or type = 5)";
+            String sql = "";
+            if ("0".equals(dataType)){
+                sql = "select address,factory from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + type;
+                if(type.equals("0")){
+                    sql = "select address,factory from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = 0 or type = 5)";
+                }
+            }else if ("1".equals(dataType)){
+                sql = "select address,factory from detector where gas = 'CO' and type_position = '27' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + type;
+                if(type.equals("0")){
+                    sql = "select address,factory from detector where gas = 'CO' and type_position = '27' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = 0 or type = 5)";
+                }
+            }else if ("2".equals(dataType)){
+                sql = "select address,factory from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = " + type;
+                if(type.equals("0")){
+                    sql = "select address,factory from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and (type = 0 or type = 5)";
+                }
             }
             ResultSet resultSet = statement.executeQuery(sql);
             // 处理查询结果
@@ -390,8 +417,10 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     public List<SteelMakeOld> getDeviceOld(String type, String dataType) {
         LambdaQueryWrapper<SteelMakeOld> queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,type);
         if ("0".equals(dataType)){
-            queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,type);
-        }else if ("1".equals(dataType) || "2".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,type).isNull(SteelMakeOld::getTypePosition);
+        }else if ("1".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,type).eq(SteelMakeOld::getGroupType,dataType).eq(SteelMakeOld::getTypePosition,"27");
+        }else if ("2".equals(dataType)){
             queryWrapper = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,type).eq(SteelMakeOld::getGroupType,dataType);
         }
         List<SteelMakeOld> steelMakeOlds = steelMakeOldMapper.selectList(queryWrapper);
@@ -403,8 +432,15 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     }
 
     @Override
-    public List<SteelMakeSinter> getDeviceSinter(String type) {
-        LambdaQueryWrapper<SteelMakeSinter> queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,type);
+    public List<SteelMakeSinter> getDeviceSinter(String type, String dataType) {
+        LambdaQueryWrapper<SteelMakeSinter> queryWrapper = new LambdaQueryWrapper<>();
+        if ("0".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,type).isNull(SteelMakeSinter::getTypePosition);
+        }else if ("1".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,type).eq(SteelMakeSinter::getTypePosition, "27");
+        }else if ("2".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,type);
+        }
         List<SteelMakeSinter> res = steelMakeSinterMapper.selectList(queryWrapper);
         if(type.equals("0")){
             LambdaQueryWrapper<SteelMakeSinter> query = new LambdaQueryWrapper<SteelMakeSinter>().isNull(SteelMakeSinter::getDataValue);
@@ -417,8 +453,10 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     public List<SteelMakeNew> getDeviceNew(String type, String dataType) {
         LambdaQueryWrapper<SteelMakeNew> queryWrapper = new LambdaQueryWrapper<>();
         if ("0".equals(dataType)){
-            queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,type);
-        }else if ("1".equals(dataType) || "2".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,type).isNull(SteelMakeNew::getTypePosition);
+        }else if ("1".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,type).eq(SteelMakeNew::getGroupType,dataType).eq(SteelMakeNew::getTypePosition, "27");
+        }else if ("2".equals(dataType)){
             queryWrapper = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,type).eq(SteelMakeNew::getGroupType,dataType);
         }
         List<SteelMakeNew> res = steelMakeNewMapper.selectList(queryWrapper);
@@ -430,8 +468,15 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     }
 
     @Override
-    public List<SteelRolling> getDeviceRolling(String type) {
-        LambdaQueryWrapper<SteelRolling> queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,type);
+    public List<SteelRolling> getDeviceRolling(String type, String dataType) {
+        LambdaQueryWrapper<SteelRolling> queryWrapper = new LambdaQueryWrapper<>();
+        if ("0".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,type).isNull(SteelRolling::getTypePosition);
+        }else if ("1".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,type).eq(SteelRolling::getTypePosition,"27");
+        }else if ("2".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,type);
+        }
         List<SteelRolling> res = steelRollingMapper.selectList(queryWrapper);
         if(type.equals("0")){
             LambdaQueryWrapper<SteelRolling> query = new LambdaQueryWrapper<SteelRolling>().isNull(SteelRolling::getDataValue);
@@ -444,8 +489,10 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     public List<SteelMake> getDeviceSteel(String type, String dataType) {
         LambdaQueryWrapper<SteelMake> queryWrapper = new LambdaQueryWrapper<>();
         if ("0".equals(dataType)){
-            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,type);
-        }else if ("1".equals(dataType) || "2".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,type).isNull(SteelMake::getTypePosition);
+        }else if ("1".equals(dataType)){
+            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,type).eq(SteelMake::getGroupType,dataType).eq(SteelMake::getTypePosition,"27");
+        }else if ("2".equals(dataType)){
             queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,type).eq(SteelMake::getGroupType,dataType);
         }
         List<SteelMake> res = steelMakeMapper.selectList(queryWrapper);
@@ -502,103 +549,177 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     public Map<String, String> getAlarmBroadcast(String dataType) {
         //type 2:一级报警  3:二级报警
         //one:一级报警播报  two:二级报警播报
+        //showType  0:轮播图  1:二级报警弹窗
         StringBuffer one = new StringBuffer();
         StringBuffer two = new StringBuffer();
+        StringBuffer three = new StringBuffer();
         //能源中心
-        List<Detector> detectorOne = getDetectorAlarmDevice("2");
-        detectorOne.forEach(item->{
-            one.append(item.getAddress()+" 数值"+item.getNumber()+",");
-        });
-        List<Detector> detectortwo = getDetectorAlarmDevice("3");
-        detectortwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getNumber()+",");
-        });
-
+        List<Detector> detectorOne = getDetectorAlarmDevice("2", dataType);
+        if ("2".equals(dataType)){
+            detectorOne = new ArrayList<>();
+        }else {
+            detectorOne.forEach(item->{
+                one.append(item.getAddress()+" 数值"+item.getNumber()+",");
+            });
+        }
+        List<Detector> detectortwo = getDetectorAlarmDevice("3", dataType);
+        if ("2".equals(dataType)){
+            detectortwo = new ArrayList<>();
+        }else {
+            detectortwo.forEach(item->{
+                two.append(item.getAddress()+" 数值"+item.getNumber()+",");
+                three.append(item.getAddress()+" 数值"+item.getNumber() + System.lineSeparator());
+            });
+        }
         //炼钢厂
 //        List<SteelMake> steelMakesOne = steelMakeMapper.selectList(new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"2"));
         LambdaQueryWrapper<SteelMake> queryWrapper = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<SteelMake> queryOneWrapper = new LambdaQueryWrapper<>();
         if ("0".equals(dataType)){
-            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"3");
-        } else if ("1".equals(dataType) || "2".equals(dataType)) {
+            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"3").isNull(SteelMake::getTypePosition);
+            queryOneWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"2").isNull(SteelMake::getTypePosition);
+        } else if ("1".equals(dataType)) {
+            queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"3").eq(SteelMake::getGroupType, dataType).eq(SteelMake::getTypePosition, "27");
+            queryOneWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"2").eq(SteelMake::getGroupType, dataType).eq(SteelMake::getTypePosition, "27");
+        }else if ("2".equals(dataType)) {
             queryWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"3").eq(SteelMake::getGroupType, dataType);
+            queryOneWrapper = new LambdaQueryWrapper<SteelMake>().eq(SteelMake::getType,"2").eq(SteelMake::getGroupType, dataType);
         }
+        Long oneSteelMakeCount = steelMakeMapper.selectCount(queryOneWrapper);
         List<SteelMake> steelMakestwo = steelMakeMapper.selectList(queryWrapper);
 //        steelMakesOne.forEach(item->{
 //            one.append(item.getAddress()+" 数值"+item.getDataValue()+",");
 //        });
         steelMakestwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getDataValue()+",");
+            two.append(item.getAddress()+" 数值"+item.getDataValue() + ",");
+            three.append(item.getAddress()+" 数值"+item.getDataValue() + System.lineSeparator());
         });
 
         //炼铁老区
 //        List<SteelMakeOld> steelMakeOldsOne = steelMakeOldMapper.selectList(new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"2"));
         LambdaQueryWrapper<SteelMakeOld> queryWrapperOld = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<SteelMakeOld> queryOneWrapperOld = new LambdaQueryWrapper<>();
         if ("0".equals(dataType)){
-            queryWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"3");
-        } else if ("1".equals(dataType) || "2".equals(dataType)) {
+            queryWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"3").isNull(SteelMakeOld::getTypePosition);
+            queryOneWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"2").isNull(SteelMakeOld::getTypePosition);
+        } else if ("1".equals(dataType)) {
+            queryWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"3").eq(SteelMakeOld::getGroupType, dataType).eq(SteelMakeOld::getTypePosition, "27");
+            queryOneWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"2").eq(SteelMakeOld::getGroupType, dataType).eq(SteelMakeOld::getTypePosition, "27");
+        }else if ("2".equals(dataType)) {
             queryWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"3").eq(SteelMakeOld::getGroupType, dataType);
+            queryOneWrapperOld = new LambdaQueryWrapper<SteelMakeOld>().eq(SteelMakeOld::getType,"2").eq(SteelMakeOld::getGroupType, dataType);
         }
         List<SteelMakeOld> steelMakeOldsTwo = steelMakeOldMapper.selectList(queryWrapperOld);
+        Long oneSteelMakeOldCount = steelMakeOldMapper.selectCount(queryOneWrapperOld);
 //        steelMakeOldsOne.forEach(item->{
 //            one.append(item.getAddress()+" 数值"+item.getDataValue()+",");
 //        });
         steelMakeOldsTwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getDataValue()+",");
+            two.append(item.getAddress()+" 数值"+item.getDataValue() + ",");
+            three.append(item.getAddress()+" 数值"+item.getDataValue() + System.lineSeparator());
         });
 
         //炼铁新区
 //        List<SteelMakeNew> steelMakeNewsOne = steelMakeNewMapper.selectList(new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"2"));
         LambdaQueryWrapper<SteelMakeNew> queryWrapperNew = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<SteelMakeNew> queryOneWrapperNew = new LambdaQueryWrapper<>();
         if ("0".equals(dataType)){
-            queryWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"3");
-        } else if ("1".equals(dataType) || "2".equals(dataType)) {
+            queryWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"3").isNull(SteelMakeNew::getTypePosition);
+            queryOneWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"2").isNull(SteelMakeNew::getTypePosition);
+        } else if ("1".equals(dataType)) {
+            queryWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"3").eq(SteelMakeNew::getGroupType, dataType).eq(SteelMakeNew::getTypePosition, "27");
+            queryOneWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"2").eq(SteelMakeNew::getGroupType, dataType).eq(SteelMakeNew::getTypePosition, "27");
+        } else if ("2".equals(dataType)) {
             queryWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"3").eq(SteelMakeNew::getGroupType, dataType);
+            queryOneWrapperNew = new LambdaQueryWrapper<SteelMakeNew>().eq(SteelMakeNew::getType,"2").eq(SteelMakeNew::getGroupType, dataType);
         }
         List<SteelMakeNew> steelMakeNewsTwo = steelMakeNewMapper.selectList(queryWrapperNew);
+        Long oneSteelMakeNewCount = steelMakeNewMapper.selectCount(queryOneWrapperNew);
 //        steelMakeNewsOne.forEach(item->{
 //            one.append(item.getAddress()+" 数值"+item.getDataValue()+",");
 //        });
         steelMakeNewsTwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getDataValue()+",");
+            two.append(item.getAddress()+" 数值"+item.getDataValue() + ",");
+            three.append(item.getAddress()+" 数值"+item.getDataValue() + System.lineSeparator());
         });
 
         //炼铁烧结
 //        List<SteelMakeSinter> steelMakeSintersOne = steelMakeSinterMapper.selectList(new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"2"));
-        List<SteelMakeSinter> steelMakeSintersTwo = steelMakeSinterMapper.selectList(new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"3"));
+        LambdaQueryWrapper<SteelMakeSinter> queryWrapperMakeSinters = new LambdaQueryWrapper<>();
+        if ("0".equals(dataType)){
+            queryWrapperMakeSinters = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"3").isNull(SteelMakeSinter::getTypePosition);
+        } else if ("1".equals(dataType)) {
+            queryWrapperMakeSinters = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"3").eq(SteelMakeSinter::getTypePosition,"27");
+        }else if ("2".equals(dataType)) {
+            queryWrapperMakeSinters = new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"3");
+        }
+        List<SteelMakeSinter> steelMakeSintersTwo = steelMakeSinterMapper.selectList(queryWrapperMakeSinters);
 //        steelMakeSintersOne.forEach(item->{
 //            one.append(item.getAddress()+" 数值"+item.getDataValue()+",");
 //        });
-        steelMakeSintersTwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getDataValue()+",");
-        });
-
+        if ("2".equals(dataType)){
+            steelMakeSintersTwo = new ArrayList<>();
+        }else {
+            steelMakeSintersTwo.forEach(item->{
+                two.append(item.getAddress()+" 数值"+item.getDataValue() + ",");
+                three.append(item.getAddress()+" 数值"+item.getDataValue() + System.lineSeparator());
+            });
+        }
+        Long oneSteelMakeSinterCount = 0l;
+        if ("0".equals(dataType)){
+            oneSteelMakeSinterCount = steelMakeSinterMapper.selectCount(new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"2").isNull(SteelMakeSinter::getTypePosition));
+        }else if ("1".equals(dataType)){
+            oneSteelMakeSinterCount = steelMakeSinterMapper.selectCount(new LambdaQueryWrapper<SteelMakeSinter>().eq(SteelMakeSinter::getType,"2").eq(SteelMakeSinter::getTypePosition,"27"));
+        }else if ("2".equals(dataType)){
+            oneSteelMakeSinterCount = 0l;
+        }
         //轧钢厂
 //        List<SteelRolling> steelRollingsOne = steelRollingMapper.selectList(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"2"));
-        List<SteelRolling> steelRollingsTwo = steelRollingMapper.selectList(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"3"));
-//        steelRollingsOne.forEach(item->{
+        List<SteelRolling> steelRollingsTwo = new ArrayList<>();
+        if ("0".equals(dataType)){
+            steelRollingsTwo = steelRollingMapper.selectList(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"3").isNull(SteelRolling::getTypePosition));
+        }else if ("1".equals(dataType)){
+            steelRollingsTwo = steelRollingMapper.selectList(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"3").eq(SteelRolling::getTypePosition,"27"));
+        }else if ("2".equals(dataType)){
+            steelRollingsTwo = new ArrayList<>();
+        }
+        //        steelRollingsOne.forEach(item->{
 //            one.append(item.getAddress()+" 数值"+item.getDataValue()+",");
 //        });
         steelRollingsTwo.forEach(item->{
-            two.append(item.getAddress()+" 数值"+item.getDataValue()+",");
+            two.append(item.getAddress()+" 数值"+item.getDataValue() + ",");
+            three.append(item.getAddress()+" 数值"+item.getDataValue() + System.lineSeparator());
         });
-
+        Long oneSteelRollingCount = 0l;
+        if ("0".equals(dataType)){
+            oneSteelRollingCount = steelRollingMapper.selectCount(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"2").isNull(SteelRolling::getTypePosition));
+        }else if ("1".equals(dataType)){
+            oneSteelRollingCount = steelRollingMapper.selectCount(new LambdaQueryWrapper<SteelRolling>().eq(SteelRolling::getType,"2").eq(SteelRolling::getTypePosition, "27"));
+        }else if ("2".equals(dataType)){
+            oneSteelRollingCount = 0l;
+        }
 //        if(one.length()>0){
 //            one.replace(one.length()-1,one.length(),"");
 //        }
         if(two.length()>0){
             two.replace(two.length()-1,two.length(),"");
+            three.replace(two.length()-1,two.length(),"");
         }
 
-        Map<String,String> res = new HashMap<String,String>();
+        Map<String,String> res = new HashMap<>();
         res.put("one", "");
-        res.put("two",two.toString());
-
+        res.put("two", two.toString());
+        res.put("three", three.toString());
+        int twoLevelAlarmCount = detectortwo.size() + steelMakestwo.size() + steelMakeOldsTwo.size() + steelMakeNewsTwo.size() + steelMakeSintersTwo.size() + steelRollingsTwo.size();
+        int oneLevelAlarmCount = detectorOne.size() + oneSteelMakeCount.intValue() + oneSteelMakeOldCount.intValue() + oneSteelMakeNewCount.intValue() + oneSteelMakeSinterCount.intValue() + oneSteelRollingCount.intValue();
+        res.put("oneLevelAlarmCount", String.valueOf(oneLevelAlarmCount));
+        res.put("twoLevelAlarmCount", String.valueOf(twoLevelAlarmCount));
         return res;
     }
 
 
     //获取能源中心设备信息及数值 type为设备预警类型 0:离线 1:正常 2:一级报警 3:二级报警
-    public List<Detector> getDetectorAlarmDevice(String type) {
+    public List<Detector> getDetectorAlarmDevice(String type, String dataType) {
         LambdaQueryWrapper<ConfigSql> queryWrapper = new LambdaQueryWrapper<ConfigSql>().eq(ConfigSql::getTableName,"detector").eq(ConfigSql::getStatus,2).last("limit 1");
         ConfigSql configSql = configSqlMapper.selectOne(queryWrapper);
         Connection connection=null;
@@ -613,7 +734,14 @@ public class ExternalDataServiceImpl implements IExternalDataService {
             StringBuffer url = new StringBuffer();
             url.append("jdbc:mysql://").append( configSql.getIp()).append(":").append(configSql.getHost()).append("/").append(configSql.getDbname()).append("?connectTimeout=2000&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai");
             connection = DriverManager.getConnection(url.toString(), configSql.getUsername(), configSql.getPassword());
-            String sql = "select `id`,address,`number` from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = '"+type+"'";
+            String sql = "";
+            if ("0".equals(dataType)){
+                sql = "select `id`,address,`number` from detector where gas = 'CO' and type_position is null and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = '"+type+"'";
+            }else if ("1".equals(dataType)){
+                sql = "select `id`,address,`number` from detector where gas = 'CO' and type_position = '27' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = '"+type+"'";
+            }else if ("2".equals(dataType)){
+                sql = "select `id`,address,`number` from detector where gas = 'CO' and address not in ('5浅脱硫排水器','1#浅脱硫排水器','2#浅脱硫排水器','3#浅脱硫排水器','4#浅脱硫排水器','1#浅脱硫门口','2#浅脱硫门口','5#热值分析仪','4#热值分析仪','柜前U型水封2层平台','柜前U型水封','U型水封放散平台','1#、2#高炉Z37-4e','1#、2#高炉Z37-1e') and type = '"+type+"'";
+            }
             statement = connection.prepareStatement(sql);
             ResultSet resultSet = statement.executeQuery();
             System.out.println(resultSet);
@@ -675,13 +803,8 @@ public class ExternalDataServiceImpl implements IExternalDataService {
     public Map<String, String> getNewTwoAlarmBroadcast(String dataType) {
         //type 2:一级报警  3:二级报警
         //one:一级报警播报  two:二级报警播报
-        StringBuffer one = new StringBuffer();
         StringBuffer two = new StringBuffer();
         //能源中心
-        List<Detector> detectorOne = getNewTwoDetectorAlarmDevice("2");
-        detectorOne.forEach(item->{
-            one.append(item.getAddress()+" 数值"+item.getNumber()+",");
-        });
         List<Detector> detectortwo = getNewTwoDetectorAlarmDevice("3");
         if (oConvertUtils.listIsNotEmpty(detectortwo)){
             two.append(detectortwo.get(0).getAddress() + " 数值" + detectortwo.get(0).getNumber() + System.lineSeparator());