边带设备

This commit is contained in:
cwchen 2024-04-03 15:15:27 +08:00
parent d816119448
commit 4549c553e1
4 changed files with 48 additions and 26 deletions

View File

@ -58,6 +58,13 @@ public class Constant {
public final static String TG = "停工"; public final static String TG = "停工";
public final static String ONLINE = "1"; public final static String ONLINE = "1";
public final static String AIR_QUALITY = "PM2.5,PM10";
public final static String NOISE_LEVEL= "噪声";
public final static String GRAY_LAYER = "二氧化碳";
public final static String WARN = "1";
public final static String NOT_WARN = "0";
public final static String[] BUILD_ARR = {"12A0,合肥","12B0,马鞍山","12C0,芜湖","12D0,安庆","12F0,淮南", public final static String[] BUILD_ARR = {"12A0,合肥","12B0,马鞍山","12C0,芜湖","12D0,安庆","12F0,淮南",

View File

@ -216,10 +216,6 @@ public class DeviceOfBdServiceImpl implements IDeviceOfBdService {
if (StringUtils.isNotBlank(validResult)) { if (StringUtils.isNotBlank(validResult)) {
return AjaxResult.error(validResult); return AjaxResult.error(validResult);
} }
int result = mapper.isBdDeviceDetailExist(vo);
if (result > 0) {
return AjaxResult.error("设备级联编码不能重复");
}
if (StringUtils.isEmpty(vo.getId())) { if (StringUtils.isEmpty(vo.getId())) {
String id = IdUtils.getUUId(); String id = IdUtils.getUUId();
vo.setId(id); vo.setId(id);

View File

@ -6,6 +6,7 @@ import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.screen.dto.ScreenParamDto; import com.securitycontrol.entity.screen.dto.ScreenParamDto;
import com.securitycontrol.entity.screen.vo.ConstrQuality; import com.securitycontrol.entity.screen.vo.ConstrQuality;
import com.securitycontrol.entity.screen.vo.MapRiskVo; import com.securitycontrol.entity.screen.vo.MapRiskVo;
import com.securitycontrol.entity.system.SystemGlobal;
import com.securitycontrol.screen.mapper.IScIndexMapper; import com.securitycontrol.screen.mapper.IScIndexMapper;
import com.securitycontrol.screen.service.IScIndexService; import com.securitycontrol.screen.service.IScIndexService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -138,23 +139,46 @@ public class ScIndexServiceImpl implements IScIndexService {
@Override @Override
public AjaxResult environmentDetection(ScreenParamDto dto) { public AjaxResult environmentDetection(ScreenParamDto dto) {
Map<String, Object> map = new HashMap<>(6);
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, Object>> dataMapList = new ArrayList<>();
// 空气质量 正常/异常 噪声水平 正常/异常 灰层浓度 正常/异常
int aqiNormalNum = 0, aqiErrorNum = 0, dbNormalNum = 0, dbErrorNum = 0, hcNormalNum = 0, hcErrorNum = 0;
try { try {
dto.setTypeCode(SystemGlobal.HJ_TYPE);
list = mapper.environmentDetection(dto); list = mapper.environmentDetection(dto);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
Map<String, Object> map = new HashMap<>(6); for (Map<String, Object> dataMap : list) {
map.put("aqiNormalNum", 0); if (Objects.nonNull(dataMap.get("modelName"))) {
map.put("aqiErrorNum", 0); String modelName = String.valueOf(dataMap.get("modelName"));
map.put("dbNormalNum", 0); String warn = String.valueOf(dataMap.get("warn"));
map.put("dbErrorNum", 0); if (Constant.NOISE_LEVEL.contains(modelName) && Objects.equals(warn, Constant.NOT_WARN)) {
map.put("hcNormalNum", 0); dbNormalNum++;
map.put("hcErrorNum", 0); } else if (Constant.NOISE_LEVEL.contains(modelName) && Objects.equals(warn, Constant.WARN)) {
list.add(map); dbErrorNum++;
}else if (Constant.AIR_QUALITY.contains(modelName) && Objects.equals(warn, Constant.NOT_WARN)) {
aqiNormalNum++;
}else if (Constant.AIR_QUALITY.contains(modelName) && Objects.equals(warn, Constant.WARN)) {
aqiErrorNum++;
}else if (Constant.GRAY_LAYER.contains(modelName) && Objects.equals(warn, Constant.NOT_WARN)) {
hcNormalNum++;
}else if (Constant.GRAY_LAYER.contains(modelName) && Objects.equals(warn, Constant.WARN)) {
hcErrorNum++;
}
}
}
} }
} catch (Exception e) { } catch (Exception e) {
log.error("环境监测分析", e); log.error("环境监测分析", e);
} }
return AjaxResult.success(list); map.put("aqiNormalNum", aqiNormalNum);
map.put("aqiErrorNum", aqiErrorNum);
map.put("dbNormalNum", dbNormalNum);
map.put("dbErrorNum", dbErrorNum);
map.put("hcNormalNum", hcNormalNum);
map.put("hcErrorNum", hcErrorNum);
dataMapList.add(map);
return AjaxResult.success(dataMapList);
} }
@Override @Override

View File

@ -56,24 +56,19 @@
</select> </select>
<!--环境监测分析--> <!--环境监测分析-->
<select id="environmentDetection" resultType="java.util.Map"> <select id="environmentDetection" resultType="java.util.Map">
SELECT COUNT(IF(tdd.mode_name = '空气质量' and tdv.is_warn = 0,1,NULL)) AS aqiNormalNum, SELECT tdd.mode_name AS modelName,
COUNT(IF(tdd.mode_name = '空气质量' and tdv.is_warn = 1,1,NULL)) AS aqiErrorNum, IFNULL(tdv.is_warn,'0') AS warn
COUNT(IF(tdd.mode_name = '噪声水平' and tdv.is_warn = 0,1,NULL)) AS dbNormalNum, FROM tb_pro_bd tpd
COUNT(IF(tdd.mode_name = '噪声水平' and tdv.is_warn = 1,1,NULL)) AS dbErrorNum, INNER JOIN tb_bd_device tbd ON tpd.id = tbd.bd_id
COUNT(IF(tdd.mode_name = '灰尘浓度' and tdv.is_warn = 0,1,NULL)) AS hcNormalNum, INNER JOIN sys_dict sd ON sd.dict_code = tbd.devic_type AND sd.del_flag = 0 AND sd.dict_code= #{typeCode}
COUNT(IF(tdd.mode_name = '灰尘浓度' and tdv.is_warn = 1,1,NULL)) AS hcErrorNum LEFT JOIN tb_device_detail tdd ON tdd.device_id = tbd.device_id AND tdd.del_flag = 0
FROM tb_bd_device tbd
INNER JOIN sys_dict sd ON tbd.devic_type = sd.dict_code AND sd.del_flag = 0 AND sd.dict_code = '1804'
INNER JOIN tb_area ta ON tbd.area_id = ta.area_id AND ta.del_flag = 0 AND ta.area_type = '0'
LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id AND tdd.del_flag = 0
LEFT JOIN tb_device_value tdv ON tdd.id = tdv.attribute_id LEFT JOIN tb_device_value tdv ON tdd.id = tdv.attribute_id
WHERE tbd.del_flag = 0
</select> </select>
<!--设备状态 目前只查询边带设备--> <!--设备状态 目前只查询边带设备-->
<select id="deviceStatus" resultType="java.util.Map"> <select id="deviceStatus" resultType="java.util.Map">
SELECT tp.bid_code AS bidCode, SELECT tp.bid_code AS bidCode,
tp.pro_name AS proName, tp.pro_name AS proName,
IF(tbd.status = '801', '1', '0') AS status tbd.status
FROM tb_bd_device tbd FROM tb_bd_device tbd
INNER JOIN tb_pro_bd tpb ON tpb.id = tbd.bd_id AND tpb.del_flag = 0 INNER JOIN tb_pro_bd tpb ON tpb.id = tbd.bd_id AND tpb.del_flag = 0
INNER JOIN tb_project tp on tpb.bid_code = tp.bid_code AND tp.del_flag = 0 INNER JOIN tb_project tp on tpb.bid_code = tp.bid_code AND tp.del_flag = 0