处理负数值

This commit is contained in:
zhangyue 2026-08-14 17:07:00 +08:00
parent cfad1700bc
commit ef4d89d09f
6 changed files with 497 additions and 0 deletions

View File

@ -1,9 +1,14 @@
package com.lanhai.controller; package com.lanhai.controller;
import com.lanhai.service.ISurvAlertRecordService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
/** /**
* <p> * <p>
@ -17,5 +22,20 @@ import org.springframework.stereotype.Controller;
@RequestMapping("/survAlertRecord") @RequestMapping("/survAlertRecord")
public class SurvAlertRecordController { public class SurvAlertRecordController {
// @Autowired
// private ISurvAlertRecordService alertRecordService;
//
//
// @ApiOperation(value = "13. 站点设备多项统计图", notes = "")
// @GetMapping(value = "/temp")
// @ResponseBody
// public String temp() {
// boolean b = alertRecordService.reprocessAlert();
// if(b){
// return "ok";
// }else{
// return "fatal";
// }
// }
} }

View File

@ -0,0 +1,341 @@
package com.lanhai.enums;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
public enum PollutionEnum {
dataAirTemp("dataAirTemp", "大气温度", "", "sys/icon/shebei_icon_qixiang.png", "air", "#22BB8A", "sys/mobile/icon/shebei_icon_qixiang.png", "sys/bs/icon/shebei_icon_qixiang.png", "shebei_icon_qixiang.png"),
dataAirWet("dataAirWet", "大气湿度", "%RH", "sys/icon/zhandian_icon_kongqishidu.png", "air", "#EE701C", "sys/mobile/icon/zhandian_icon_kongqishidu.png", "sys/bs/icon/zhandian_icon_kongqishidu.png", "zhandian_icon_kongqishidu.png"),
dataAirPress("dataAirPress", "大气压力", "hPa", "sys/icon/zhandian_icon_daqiyali.png", "air", "#52AC2A", "sys/mobile/icon/zhandian_icon_daqiyali.png", "sys/bs/icon/zhandian_icon_daqiyali.png", "zhandian_icon_daqiyali.png"),
dataRainFall("dataRainFall", "雨量", "mm", "sys/icon/zhandian_icon_jiangyuliang.png", "air", "#2BADB9", "sys/mobile/icon/zhandian_icon_jiangyuliang.png", "sys/bs/icon/zhandian_icon_jiangyuliang.png", "zhandian_icon_jiangyuliang.png"),
dataRainTotal("dataRainTotal", "雨量累计", "mm", "sys/icon/zhandian_icon_jiangyuliangtotal.png", "air", "#102B6A", "sys/mobile/icon/zhandian_icon_jiangyuliangtotal.png", "sys/bs/icon/zhandian_icon_jiangyuliangtotal.png", "zhandian_icon_jiangyuliangtotal.png"),
dataWindSpeed("dataWindSpeed", "风速", "m/s", "sys/icon/zhandian_icon_fengsu.png", "air", "#7CD6CF", "sys/mobile/icon/zhandian_icon_fengsu.png", "sys/bs/icon/zhandian_icon_fengsu.png", "zhandian_icon_fengsu.png"),
dataWindDirection("dataWindDirection", "风向", "°", "sys/icon/zhandian_icon_fengxiang.png", "air", "#26A3CC", "sys/mobile/icon/zhandian_icon_fengxiang.png", "sys/bs/icon/zhandian_icon_fengxiang.png", "zhandian_icon_fengxiang.png"),
dataSunTotal("dataSunTotal", "辐射累计", "MJ/m2", "sys/icon/zhandian_icon_fusheleiji.png", "air", "#6C48C7", "sys/mobile/icon/zhandian_icon_fusheleiji.png", "sys/bs/icon/zhandian_icon_fusheleiji.png", "zhandian_icon_fusheleiji.png"),
dataSunFallout("dataSunFallout", "太阳全辐射", "W/m2", "sys/icon/zhandian_icon_taiyangquanfushe.png", "air", "#22BB8A", "sys/mobile/icon/zhandian_icon_taiyangquanfushe.png", "sys/bs/icon/zhandian_icon_taiyangquanfushe.png", "zhandian_icon_taiyangquanfushe.png"),
dataSunHour("dataSunHour", "日照时数", "h", "sys/icon/shebei_icon_sunhour.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_sunhour.png", "sys/bs/icon/shebei_icon_sunhour.png", "shebei_icon_sunhour.png"),
dataPhotosynthetic("dataPhotosynthetic", "光合", "W/M2", "sys/icon/shebei_icon_photosynthetic.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_photosynthetic.png", "sys/bs/icon/shebei_icon_photosynthetic.png", "shebei_icon_photosynthetic.png"),
dataEvaporation("dataEvaporation", "蒸发", "mm", "sys/icon/shebei_icon_evaporation.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_evaporation.png", "sys/bs/icon/shebei_icon_evaporation.png", "shebei_icon_evaporation.png"),
dataSunRate("dataSunRate", "照度", "Lux", "sys/icon/zhandian_icon_sunrate.png", "air", "#EE400F", "sys/mobile/icon/zhandian_icon_sunrate.png", "sys/bs/icon/zhandian_icon_sunrate.png", "zhandian_icon_sunrate.png"),
dataPm25("dataPm25", "PM2.5", "ug/m3", "sys/icon/zhandian_icon_pm25.png", "air", "#26A3AA", "sys/mobile/icon/zhandian_icon_pm25.png", "sys/bs/icon/zhandian_icon_pm25.png", "zhandian_icon_pm25.png"),
dataAirCod("dataAirCod", "二氧化碳", "ppm", "sys/icon/zhandian_icon_cod2.png", "air", "#72a680", "sys/mobile/icon/zhandian_icon_cod2.png", "sys/bs/icon/zhandian_icon_cod2.png", "zhandian_icon_cod2.png"),
dataAirNeo("dataAirNeo", "负氧离子", "个/cm³", "sys/icon/shebei_icon_airneo.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_airneo.png", "sys/bs/icon/shebei_icon_airneo.png", "shebei_icon_airneo.png"),
dataAirTotalRadiation("dataAirTotalRadiation", "全辐射", "mm", "sys/icon/shebei_icon_total_radiation.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_total_radiation.png", "sys/bs/icon/shebei_icon_total_radiation.png", "shebei_icon_total_radiation.png"),
//仁科 20250911
dataAirNh("dataAirNh", "氨气", "ppm", "sys/icon/shebei_icon_airnh3.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_airnh3.png", "sys/bs/icon/shebei_icon_airnh3.png", "shebei_icon_airnh3.png"),
dataAirHs("dataAirHs", "硫化氢", "ppm", "sys/icon/shebei_icon_airh2s.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_airh2s.png", "sys/bs/icon/shebei_icon_airh2s.png", "shebei_icon_airh2s.png"),
dataAirEone("dataAirEone", "预留1", "ppm", "sys/icon/shebei_icon_eone.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_eone.png", "sys/bs/icon/shebei_icon_eone.png", "shebei_icon_eone.png"),
dataAirETwo("dataAirETWO", "预留2", "ppm", "sys/icon/shebei_icon_etwo.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_etwo.png", "sys/bs/icon/shebei_icon_etwo.png", "shebei_icon_etwo.png"),
dataAirEThree("dataAirEThree", "预留3", "ppm", "sys/icon/shebei_icon_ethree.png", "air", "#72a680", "sys/mobile/icon/shebei_icon_ethree.png", "sys/bs/icon/shebei_icon_ethree.png", "shebei_icon_ethree.png"),
dataSoilWet("dataSoilWet", "土壤湿度", "%", "sys/icon/zhandian_icon_turangshidu.png", "soil", "#6495ED", "sys/mobile/icon/zhandian_icon_turangshidu.png", "sys/bs/icon/zhandian_icon_turangshidu.png", "zhandian_icon_turangshidu.png"),
dataSoilWet2("dataSoilWet2", "40CM土壤湿度", "%", "sys/icon/zhandian_icon_turangshidu.png", "soil", "#4169E1", "sys/mobile/icon/zhandian_icon_turangshidu.png", "sys/bs/icon/zhandian_icon_turangshidu.png", "zhandian_icon_turangshidu.png"),
dataSoilWet3("dataSoilWet3", "60CM土壤湿度", "%", "sys/icon/zhandian_icon_turangshidu.png", "soil", "#0000CD", "sys/mobile/icon/zhandian_icon_turangshidu.png", "sys/bs/icon/zhandian_icon_turangshidu.png", "zhandian_icon_turangshidu.png"),
dataSoilWet4("dataSoilWet4", "80CM土壤湿度", "%", "sys/icon/zhandian_icon_turangshidu.png", "soil", "#0000CG", "sys/mobile/icon/zhandian_icon_turangshidu.png", "sys/bs/icon/zhandian_icon_turangshidu.png", "zhandian_icon_turangshidu.png"),
dataSoilTemp("dataSoilTemp", "土壤温度", "", "sys/icon/zhandian_icon_turangwendu.png", "soil", "#C71585", "sys/mobile/icon/zhandian_icon_turangwendu.png", "sys/bs/icon/zhandian_icon_turangwendu.png", "zhandian_icon_turangwendu.png"),
dataSoilTemp2("dataSoilTemp2", "40CM土壤温度", "", "sys/icon/zhandian_icon_turangwendu.png", "soil", "#FF1493", "sys/mobile/icon/zhandian_icon_turangwendu.png", "sys/bs/icon/zhandian_icon_turangwendu.png", "zhandian_icon_turangwendu.png"),
dataSoilTemp3("dataSoilTemp3", "60CM土壤温度", "", "sys/icon/zhandian_icon_turangwendu.png", "soil", "#FF69B4", "sys/mobile/icon/zhandian_icon_turangwendu.png", "sys/bs/icon/zhandian_icon_turangwendu.png", "zhandian_icon_turangwendu.png"),
dataSoilTemp4("dataSoilTemp4", "80CM土壤温度", "", "sys/icon/zhandian_icon_turangwendu.png", "soil", "#FF69B9", "sys/mobile/icon/zhandian_icon_turangwendu.png", "sys/bs/icon/zhandian_icon_turangwendu.png", "zhandian_icon_turangwendu.png"),
dataSoilDdl("dataSoilDdl", "电导率", "uS/cm", "sys/icon/zhandian_icon_ec.png", "soil", "#92D0D0", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataSoilDdl2("dataSoilDdl2", "40CM电导率", "uS/cm", "sys/icon/zhandian_icon_ec.png", "soil", "#73A2A2", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataSoilDdl3("dataSoilDdl3", "60CM电导率", "uS/cm", "sys/icon/zhandian_icon_ec.png", "soil", "#567777", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataSoilDdl4("dataSoilDdl4", "80CM电导率", "uS/cm", "sys/icon/zhandian_icon_ec.png", "soil", "#567789", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataSoilSalt("dataSoilSalt", "土壤盐分", "", "sys/icon/zhandian_icon_ec.png", "soil", "#4F5555", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataSoilWetMark("dataSoilWetMark", "土壤湿度mark", "%", "sys/icon/zhandian_icon_turangshidu.png", "soil", "#6495ED", "sys/mobile/icon/zhandian_icon_turangshidu.png", "sys/bs/icon/zhandian_icon_turangshidu.png", "zhandian_icon_turangshidu.png"),
dataSoilMark("dataSoilMark", "土壤温度mark", "", "sys/icon/zhandian_icon_turangwendu.png", "soil", "#C71585", "sys/mobile/icon/zhandian_icon_turangwendu.png", "sys/bs/icon/zhandian_icon_turangwendu.png", "zhandian_icon_turangwendu.png"),
dataSoilDdlMark("dataSoilDdlMark", "电导率mark", "uS/cm", "sys/icon/zhandian_icon_ec.png", "soil", "#92D0D0", "sys/mobile/icon/zhandian_icon_ec.png", "sys/bs/icon/zhandian_icon_ec.png", "zhandian_icon_ec.png"),
dataLeafTemp("dataLeafTemp", "叶面温度", "", "sys/icon/zhandian_icon_leaftemp.png", "air", "#FF1493", "sys/mobile/icon/zhandian_icon_leaftemp.png", "sys/bs/icon/zhandian_icon_leaftemp.png", "zhandian_icon_leaftemp.png"),
dataLeafWet("dataLeafWet", "叶面湿度", "%", "sys/icon/zhandian_icon_leafwet.png", "air", "#4169E1", "sys/mobile/icon/zhandian_icon_leafwet.png", "sys/bs/icon/zhandian_icon_leafwet.png", "zhandian_icon_leafwet.png"),
dataSoilPh("dataSoilPh", "土壤PH", "", "sys/icon/zhandian_icon_ph.png", "soil", "#92D0F1", "sys/mobile/icon/zhandian_icon_ph.png", "sys/bs/icon/zhandian_icon_ph.png", "zhandian_icon_ph.png"),
dataSoilNion("dataSoilNion", "氮离子", "mg/KG", "sys/icon/zhandian_icon_nion.png", "soil", "#92D0F3", "sys/mobile/icon/zhandian_icon_nion.png", "sys/bs/icon/zhandian_icon_nion.png", "zhandian_icon_nion.png"),
dataSoilPion("dataSoilPion", "磷离子", "mg/KG", "sys/icon/zhandian_icon_pion.png", "soil", "#92D0F5", "sys/mobile/icon/zhandian_icon_pion.png", "sys/bs/icon/zhandian_icon_pion.png", "zhandian_icon_pion.png"),
dataSoilKion("dataSoilKion", "钾离子", "mg/KG", "sys/icon/shebei_icon_k-.png", "soil", "#92D0F7", "sys/mobile/icon/shebei_icon_k-.png", "sys/bs/icon/shebei_icon_k-.png", "shebei_icon_k-.png"),
dataSoilNion2("dataSoilNion2", "氮离子", "mg/KG", "sys/icon/zhandian_icon_nion.png", "soil", "#92D0F3", "sys/mobile/icon/zhandian_icon_nion.png", "sys/bs/icon/zhandian_icon_nion.png", "zhandian_icon_nion.png"),
dataSoilPion2("dataSoilPion2", "磷离子", "mg/KG", "sys/icon/zhandian_icon_pion.png", "soil", "#92D0F5", "sys/mobile/icon/zhandian_icon_pion.png", "sys/bs/icon/zhandian_icon_pion.png", "zhandian_icon_pion.png"),
dataSoilKion2("dataSoilKion2", "钾离子", "mg/KG", "sys/icon/shebei_icon_k-.png", "soil", "#92D0F7", "sys/mobile/icon/shebei_icon_k-.png", "sys/bs/icon/shebei_icon_k-.png", "shebei_icon_k-.png"),
dataSoilNion3("dataSoilNion3", "氮离子", "mg/KG", "sys/icon/zhandian_icon_nion.png", "soil", "#92D0F3", "sys/mobile/icon/zhandian_icon_nion.png", "sys/bs/icon/zhandian_icon_nion.png", "zhandian_icon_nion.png"),
dataSoilPion3("dataSoilPion3", "磷离子", "mg/KG", "sys/icon/zhandian_icon_pion.png", "soil", "#92D0F5", "sys/mobile/icon/zhandian_icon_pion.png", "sys/bs/icon/zhandian_icon_pion.png", "zhandian_icon_pion.png"),
dataSoilKion3("dataSoilKion3", "钾离子", "mg/KG", "sys/icon/shebei_icon_k-.png", "soil", "#92D0F7", "sys/mobile/icon/shebei_icon_k-.png", "sys/bs/icon/shebei_icon_k-.png", "shebei_icon_k-.png"),
dataSoilNion4("dataSoilNion4", "氮离子", "mg/KG", "sys/icon/zhandian_icon_nion.png", "soil", "#92D0F3", "sys/mobile/icon/zhandian_icon_nion.png", "sys/bs/icon/zhandian_icon_nion.png", "zhandian_icon_nion.png"),
dataSoilPion4("dataSoilPion4", "磷离子", "mg/KG", "sys/icon/zhandian_icon_pion.png", "soil", "#92D0F5", "sys/mobile/icon/zhandian_icon_pion.png", "sys/bs/icon/zhandian_icon_pion.png", "zhandian_icon_pion.png"),
dataSoilKion4("dataSoilKion4", "钾离子", "mg/KG", "sys/icon/shebei_icon_k-.png", "soil", "#92D0F7", "sys/mobile/icon/shebei_icon_k-.png", "sys/bs/icon/shebei_icon_k-.png", "shebei_icon_k-.png"),
dataSoilNhion("dataSoilNhion", "土壤铵离子", "mg-L", "sys/icon/shebei_icon_nh4-.png", "soil", "#92D0F9", "sys/mobile/icon/shebei_icon_nh4-.png", "sys/bs/icon/shebei_icon_nh4-.png", "shebei_icon_nh4-.png"),
dataSoilNoion("dataSoilNoion", "土壤硝酸根离子", "ppm", "sys/icon/shebei_icon_no3-.png", "soil", "#92D0FE", "sys/mobile/icon/shebei_icon_no3-.png", "sys/bs/icon/shebei_icon_no3-.png", "shebei_icon_no3-.png"),
dataSoilCuion("dataSoilCuion", "土壤铜离子", "ppm", "sys/icon/zhandian_icon_cu-.png", "soil", "#92D1F1", "sys/mobile/icon/zhandian_icon_cu-.png", "sys/bs/icon/zhandian_icon_cu-.png", "zhandian_icon_cu-.png"),
dataSoilPbion("dataSoilPbion", "土壤铅离子", "ppm", "sys/icon/zhandian_icon_pb-.png", "soil", "#92D1F3", "sys/mobile/icon/zhandian_icon_pb-.png", "sys/bs/icon/zhandian_icon_pb-.png", "zhandian_icon_pb-.png"),
dataSoilCdion("dataSoilCdion", "土壤镉离子", "ppm", "sys/icon/zhandian_icon_cd-.png", "soil", "#92D1F5", "sys/mobile/icon/zhandian_icon_cd-.png", "sys/bs/icon/zhandian_icon_cd-.png", "zhandian_icon_cd-.png"),
//20251122 新增五常
dataWaterNtu("dataWaterNtu", "浊度", "ntu", "sys/icon/shebei_icon_ntu.png", "6_water", "#92D0F3", "sys/mobile/icon/shebei_icon_ntu.png", "sys/bs/icon/shebei_icon_nto.png", "shebei_icon_nto.png"),
dataWaterDo("dataWaterDo", "溶解氧", "mg/L", "sys/icon/shebei_icon_do.png", "6_water", "#92D0F5", "sys/mobile/icon/shebei_icon_do.png", "sys/bs/icon/shebei_icon_do.png", "shebei_icon_do.png"),
dataWaterPh("dataWaterPh", "pH", "", "sys/icon/shebei_icon_waterph.png", "6_water", "#92D1F3", "sys/mobile/icon/shebei_icon_waterph.png", "sys/bs/icon/shebei_icon_waterph.png", "shebei_icon_waterph.png"),
dataWaterTemp("dataWaterTemp", "水温", "", "sys/icon/shebei_icon_watertemp.png", "6_water", "#92D0F3", "sys/mobile/icon/shebei_icon_watertemp.png", "sys/bs/icon/shebei_icon_watertemp.png", "shebei_icon_watertemp.png"),
dataWaterDdl("dataWaterDdl", "电导率", "uS/cm", "sys/icon/shebei_icon_waterddl.png", "6_water", "#92D0F3", "sys/mobile/icon/shebei_icon_waterddl.png", "sys/bs/icon/shebei_icon_waterddl.png", "shebei_icon_waterddl.png"),
//面源数据
dataWaterTp("dataWaterTp", "总磷", "mg/L", "sys/icon/shebei_icon_tp.png", "water", "#C8CC00", "sys/mobile/icon/shebei_icon_tp.png", "sys/bs/icon/shebei_icon_tp.png", "shebei_icon_tp.png"),
dataWaterTn("dataWaterTn", "总氮", "mg/L", "sys/icon/shebei_icon_tn.png", "water", "#009DB2", "sys/mobile/icon/shebei_icon_tn.png", "sys/bs/icon/shebei_icon_tn.png", "shebei_icon_tn.png"),
dataWaterNo("dataWaterNo", "硝态氮", "mg/L", "sys/icon/shebei_icon_no3n.png", "water_orient", "#72BAA7", "sys/mobile/icon/shebei_icon_no3n.png", "sys/bs/icon/shebei_icon_no3n.png", "shebei_icon_no3n.png"),
dataWaterNh("dataWaterNh", "氨氮", "mg/L", "sys/icon/shebei_icon_nh3n.png", "water_live", "#225A1F", "sys/mobile/icon/shebei_icon_nh3n.png", "sys/bs/icon/shebei_icon_nh3n.png", "shebei_icon_nh3n.png"),
dataWaterCod("dataWaterCod", "化学需氧量", "mg/L", "sys/icon/shebei_icon_cod.png", "water_live", "#FDB933", "sys/mobile/icon/shebei_icon_cod.png", "sys/bs/icon/shebei_icon_cod.png", "shebei_icon_cod.png"),
dataWaterTpSy("dataWaterTpSy", "总磷水样", "mg/L", "sys/icon/shebei_icon_tp.png", "water", "#C8CC00", "sys/mobile/icon/shebei_icon_tp.png", "sys/bs/icon/shebei_icon_tp.png", "shebei_icon_tp.png"),
dataWaterTnSy("dataWaterTnSy", "总氮水样", "mg/L", "sys/icon/shebei_icon_tn.png", "water", "#009DB2", "sys/mobile/icon/shebei_icon_tn.png", "sys/bs/icon/shebei_icon_tn.png", "shebei_icon_tn.png"),
dataWaterNoSy("dataWaterNoSy", "硝态氮水样", "mg/L", "sys/icon/shebei_icon_no3n.png", "water_orient", "#72BAA7", "sys/mobile/icon/shebei_icon_no3n.png", "sys/bs/icon/shebei_icon_no3n.png", "shebei_icon_no3n.png"),
dataWaterNhSy("dataWaterNhSy", "氨氮水样", "mg/L", "sys/icon/shebei_icon_nh3n.png", "water_live", "#225A1F", "sys/mobile/icon/shebei_icon_nh3n.png", "sys/bs/icon/shebei_icon_nh3n.png", "shebei_icon_nh3n.png"),
dataWaterCodSy("dataWaterCodSy", "化学需氧量水样", "mg/L", "sys/icon/shebei_icon_cod.png", "water_live", "#FDB933", "sys/mobile/icon/shebei_icon_cod.png", "sys/bs/icon/shebei_icon_cod.png", "shebei_icon_cod.png"),
//恶臭
dataStinkOu("dataOu","臭气浓度","mg/m³","sys/icon/zhandian_icon_ou.png","stink","#f47a75", "sys/mobile/icon/shebei_icon_ou.png", "sys/bs/icon/shebei_icon_ou.png", "shebei_icon_ou.png"),
dataStinkNh3("dataNh3","氨气","mg/m³","sys/icon/zhandian_icon_nh3.png","stink","#d05c7c", "sys/mobile/icon/shebei_icon_nh3.png", "sys/bs/icon/shebei_icon_nh3.png", "shebei_icon_nh3.png"),
dataStinkH2s("dataH2s","硫化氢","mg/m³","sys/icon/zhandian_icon_h2s.png","stink","#d05c9f", "sys/mobile/icon/shebei_icon_h2s.png", "sys/bs/icon/shebei_icon_h2s.png", "shebei_icon_h2s.png"),
dataStinkTvoc("dataTvoc","总挥发性有机物","mg/m³","sys/icon/zhandian_icon_tvoc.png","stink","#f06464", "sys/mobile/icon/shebei_icon_tvoc.png", "sys/bs/icon/shebei_icon_tvoc.png", "shebei_icon_tvoc.png"),
//流量计
dataMeterFlowTotal("sData1","累计流量","","sys/icon/shebei_icon_flowTotal.png","meter","#f47a75", "sys/mobile/icon/shebei_icon_flowTotal.png", "sys/bs/icon/shebei_icon_flowTotal.png", "shebei_icon_flowTotal.png"),
dataMeterFlowRate("sData2","瞬时流量","mg/m³","sys/icon/shebei_icon_flowRate.png","meter","#d05c7c", "sys/mobile/icon/shebei_icon_flowRate.png", "sys/bs/icon/shebei_icon_flowRate.png", "shebei_icon_flowRate.png"),
dataMeterOutage("sData3","空高值","mm","sys/icon/shebei_icon_outage.png","meter","#d05c9f", "sys/mobile/icon/shebei_icon_outage.png", "sys/bs/icon/shebei_icon_outage.png", "shebei_icon_outage.png"),
dataMeterLevel("sData4","液位值","mm","sys/icon/shebei_icon_level.png","meter","#f06464", "sys/mobile/icon/shebei_icon_level.png", "sys/bs/icon/shebei_icon_level.png", "shebei_icon_level.png"),
dataMeterVelocity("sData5","当前流速值","cm/s","sys/icon/shebei_icon_velocity.png","meter","#f06464", "sys/mobile/icon/shebei_icon_velocity.png", "sys/bs/icon/shebei_icon_velocity.png", "shebei_icon_velocity.png"),
//杀虫灯
dataPestLight("ct","杀虫次数","","","9_pestlight","","","",""),
dataDefault("default", "默认", "", "", "default", "#DEAB8A", "", "", "");
/**
* 类型
*/
private String code;
/**
* 描述
*/
private String description;
/**
* 单位
*/
private String unit;
/**
* 污染物类别
*/
private String type;
/**
* 图标
*/
private String icon;
/**
* 图标
*/
private String color;
/**
* 手机端图标
*/
private String mobileIcon;
/**
* 大屏图标
*/
private String bsIcon;
/**
* 大屏图标
*/
private String iconName;
private static final Map<PollutionEnum, Integer> ORDINAL_MAP = new HashMap<>();
static {
for (int i = 0; i < values().length; i++) {
ORDINAL_MAP.put(values()[i], i);
}
}
private static class PaletteData {
static final String[] COLORS = {
// 红色 - 蓝色 - 绿色 - 紫色 - 棕色 - 粉色 - 灰色 - 青色 - 暗色 - 补充色
"#8B0000", "#00008B", "#006400", "#4B0082", "#8B4513", "#C71585", "#2F4F4F", "#008B8B", "#800000", "#00688B",
"#B22222", "#0000CD", "#228B22", "#483D8B", "#A0522D", "#DB7093", "#696969", "#2F4F4F", "#8B2500", "#00868B",
"#DC143C", "#4169E1", "#2E8B57", "#6A5ACD", "#D2691E", "#BA55D3", "#708090", "#20B2AA", "#8B3A62", "#8B2500",
"#CD2626", "#1E90FF", "#3CB371", "#7B68EE", "#CD853F", "#8B008B", "#4F4F4F", "#00CED1", "#8B2252", "#8B1C62",
"#CD3278", "#191970", "#32CD32", "#8A2BE2", "#FF8C00", "#8B475D", "#363636", "#5F9EA0", "#B03060", "#8B008B",
"#8B1A1A", "#436EEE", "#556B2F", "#9400D3", "#FF4500", "#8B4789", "#2E2E2E", "#4682B4", "#8B475D", "#8A2BE2",
"#8B2252", "#4876FF", "#008080", "#9932CC", "#FF6347", "#8B6969", "#1C1C1C", "#6495ED", "#8B3E2F", "#0000CD",
"#8B3A62", "#6495ED", "#20B2AA", "#9B30FF", "#8B4726", "#8B7355", "#0A0A0A", "#4169E1", "#8B4789", "#228B22",
"#8B0A50", "#4682B4", "#48D1CC", "#912CEE", "#8B5A2B", "#BC8F8F", "#424242", "#436EEE", "#8B6969", "#8B4513",
"#8B1C62", "#5F9EA0", "#00CED1", "#551A8B", "#8B3E2F", "#7D26CD", "#525252", "#00868B", "#8B7355", "#8B0000"
};
int index = 0;
}
PollutionEnum(String code, String description, String unit, String icon, String type, String color, String mobileIcon, String bsIcon, String iconName) {
String[] palette = PaletteData.COLORS;
int randomIndex = (int) (Math.random() * palette.length);
this.code = code;
this.description = description;
this.unit = unit;
this.icon = icon;
this.type = type;
this.color = color;
this.mobileIcon = mobileIcon;
this.bsIcon = bsIcon;
this.iconName = iconName;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getMobileIcon() {
return mobileIcon;
}
public void setMobileIcon(String mobileIcon) {
this.mobileIcon = mobileIcon;
}
public String getBsIcon() {
return bsIcon;
}
public void setBsIcon(String bsIcon) {
this.bsIcon = bsIcon;
}
public String getIconName() {
return iconName;
}
public void setIconName(String iconName) {
this.iconName = iconName;
}
public static PollutionEnum catchMessage(String msg) {
PollutionEnum result = null;
String[] palette = PaletteData.COLORS;
for (PollutionEnum s : values()) {
if (s.description.equals(msg)) {
int arrs = ORDINAL_MAP.get(s);
s.color = palette[arrs];
result = s;
break;
}
}
if(result==null){
return dataDefault;
}
return result;
}
public static PollutionEnum catchPollution(String survItem) {
PollutionEnum result = null;
String[] palette = PaletteData.COLORS;
for (PollutionEnum s : values()) {
if (s.code.equals(survItem)) {
int arrs = ORDINAL_MAP.get(s);
s.color = palette[arrs];
result = s;
break;
}
}
if(result==null){
return dataDefault;
}
return result;
}
public JSONObject getJsonStr() {
int arrs = ORDINAL_MAP.get(this);
String[] palette = PaletteData.COLORS;
JSONObject job = new JSONObject();
job.put("code", this.code);
job.put("description", this.description);
job.put("unit", this.unit);
job.put("type", this.type);
job.put("icon", this.icon);
job.put("color", palette[arrs]);
job.put("mobileIcon", this.mobileIcon);
job.put("bsIcon", this.bsIcon);
job.put("iconName", this.iconName);
return job;
}
}

View File

@ -18,4 +18,6 @@ public interface ISurvAlertRecordService extends IService<SurvAlertRecord> {
void saveBaojingV2(Map<String, String> baowenMap, SurvDeviceDeploy deploy,Map<String,SurvDeviceDeploy> deviceDeployMap); void saveBaojingV2(Map<String, String> baowenMap, SurvDeviceDeploy deploy,Map<String,SurvDeviceDeploy> deviceDeployMap);
boolean reprocessAlert();
} }

View File

@ -2,14 +2,20 @@ package com.lanhai.service.Impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
//import cn.hutool.extra.mail.MailUtil; //import cn.hutool.extra.mail.MailUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanhai.constant.CommonConstant; import com.lanhai.constant.CommonConstant;
import com.lanhai.constant.DeviceReadConstants; import com.lanhai.constant.DeviceReadConstants;
import com.lanhai.entity.ScEquZhibiao;
import com.lanhai.entity.SurvAlertRecord; import com.lanhai.entity.SurvAlertRecord;
import com.lanhai.entity.SurvDeviceDeploy; import com.lanhai.entity.SurvDeviceDeploy;
import com.lanhai.entity.SurvStationInfo; import com.lanhai.entity.SurvStationInfo;
import com.lanhai.enums.PollutionEnum;
import com.lanhai.mapper.SurvAlertRecordMapper; import com.lanhai.mapper.SurvAlertRecordMapper;
import com.lanhai.service.IScEquZhibiaoService; import com.lanhai.service.IScEquZhibiaoService;
import com.lanhai.service.ISurvAlertRecordService; import com.lanhai.service.ISurvAlertRecordService;
@ -22,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
@ -265,4 +272,121 @@ public class SurvAlertRecordServiceImpl extends ServiceImpl<SurvAlertRecordMappe
} }
} }
} }
@Override
public boolean reprocessAlert() {
Page<SurvAlertRecord> page = new Page<>(1,1000);
IPage<SurvAlertRecord> data = lambdaQuery()
.isNull(SurvAlertRecord::getNormalValue)
.eq(SurvAlertRecord::getTenantId,"1004")
.page(page);
int pageCount =1;
if(!data.getRecords().isEmpty()){
List<SurvStationInfo> survStationInfoList = survStationInfoService.list(new LambdaQueryWrapper<SurvStationInfo>().eq(SurvStationInfo::getTenantId,"1004"));
Map<String,SurvStationInfo> stationInfoMap = new HashMap<>();
for (SurvStationInfo survStationInfo : survStationInfoList) {
stationInfoMap.put(survStationInfo.getStationCode(),survStationInfo);
}
List<SurvDeviceDeploy> deviceDeployList = deviceDeployService.list(new LambdaQueryWrapper<SurvDeviceDeploy>().eq(SurvDeviceDeploy::getTenantId,"1004"));
Map<String,SurvDeviceDeploy> deviceDeployMap = new HashMap<>();
List<String> depIds = new ArrayList<>();
for (SurvDeviceDeploy deviceDeploy : deviceDeployList) {
depIds.add(deviceDeploy.getId());
deviceDeployMap.put(deviceDeploy.getDeployCode(),deviceDeploy);
}
List<ScEquZhibiao> zhibiaoList = zhibiaoService.getListByEquid(depIds);
Map<String,Double> lowMap = new HashMap<>();
Map<String,Double> hightMap = new HashMap<>();
if(!zhibiaoList.isEmpty()){
for (ScEquZhibiao scEquZhibiao : zhibiaoList) {
lowMap.put(scEquZhibiao.getEquId()+"_"+scEquZhibiao.getEntityField(),scEquZhibiao.getValLow());
hightMap.put(scEquZhibiao.getEquId()+"_"+scEquZhibiao.getEntityField(),scEquZhibiao.getValHeight());
}
}
long allPages =data.getPages();
System.out.println("^^^^^^^^^^^^^^^共"+allPages+"页^^^^^^^^^^^^^^^^^");
for (int i = 1; i <= allPages; i++) {
System.out.println("=========当前第"+i+"页=============");
if(i >1){
Page<SurvAlertRecord> page2 = new Page<>(i,1000);
data = lambdaQuery()
.eq(SurvAlertRecord::getTenantId,"1004")
.isNull(SurvAlertRecord::getNormalValue)
.page(page2);
}
List<SurvAlertRecord> upd = new ArrayList<>();
for (SurvAlertRecord record : data.getRecords()) {
String jsonArray = record.getAlertContent();
if(jsonArray!=null){
cn.hutool.json.JSONArray jsonArray1 = JSONUtil.parseArray(jsonArray);
cn.hutool.json.JSONObject jsonObject = jsonArray1.getJSONObject(0);
String val = jsonObject.getStr("val");
String unit = jsonObject.getStr("unit");
String valLow = jsonObject.getStr("valLow");
String valHigh = jsonObject.getStr("valHeight");
String name = jsonObject.getStr("name");
name = name.replace("20CM","");
String itemCode = PollutionEnum.catchMessage(name).getCode();
System.out.println("itemCode=========="+itemCode);
if("default".equals(itemCode)){//跳过默认
continue;
}
if(itemCode.startsWith("dataWater") && !itemCode.contains("Sy")){
itemCode = itemCode +"Sy";
}
SurvAlertRecord newRecord = new SurvAlertRecord();
newRecord.setId(record.getId());
SurvDeviceDeploy deviceDeploy = deviceDeployMap.get(record.getDeployCode());
if(deviceDeploy!=null){
newRecord.setDeviceCode(deviceDeploy.getDeployCode());
SurvStationInfo stationInfo = stationInfoMap.get(deviceDeploy.getStationCode());
if(stationInfo!=null){
newRecord.setStationName(stationInfo.getStationName());
newRecord.setStationCdoe(stationInfo.getStationCode());
}
newRecord.setDeviceName(deviceDeploy.getDeployDes());
String low = lowMap.get(deviceDeploy.getId()+"_"+itemCode).toString();
String high = hightMap.get(deviceDeploy.getId()+"_"+itemCode).toString();
newRecord.setNormalValue(low+"~"+high);
}
newRecord.setItemCode(itemCode);
newRecord.setItemName(name);
newRecord.setSurvValue(val);
if(StringUtils.isNotBlank(valLow)){
newRecord.setReadStatus(DeviceReadConstants.READ_TOO_LOW);
}else if(StringUtils.isNotBlank(valHigh)){
newRecord.setReadStatus(DeviceReadConstants.READ_TOO_HIGH);
}
newRecord.setSurvUnit(unit);
upd.add(newRecord);
}
}
pageCount++;
if(!upd.isEmpty()){
System.out.println("xxxxxxxxx成功入库"+upd.size()+"条xxxxxxxxxxxx");
updateBatchById(upd);
}
}
System.out.println("----------------任务完成---------------");
}
return false;
}
} }

View File

@ -311,6 +311,11 @@ public class SurvHisdataLivestockwaterServiceImpl extends ServiceImpl<SurvHisdat
if (StringUtils.isBlank(vals)) {//没有值使用预设值 if (StringUtils.isBlank(vals)) {//没有值使用预设值
XxlJobHelper.log("畜禽历史数据没有{}值,使用预设值{}",rule.getFields(),rule.getStandard()); XxlJobHelper.log("畜禽历史数据没有{}值,使用预设值{}",rule.getFields(),rule.getStandard());
vals = rule.getStandard(); vals = rule.getStandard();
} else if (StringUtils.isNotBlank(vals)) {//有值但是为负数同样使用默认值
if(vals.contains("-")||"0".equals(vals)) {
XxlJobHelper.log("畜禽历史数据有{}值,但是为负数,使用预设值{}", rule.getFields(), vals, rule.getStandard());
vals = rule.getStandard();
}
} }
BigDecimal fixedRange = new BigDecimal(rule.getFactor()); BigDecimal fixedRange = new BigDecimal(rule.getFactor());
int scale = rule.getScale();//小数位 int scale = rule.getScale();//小数位

View File

@ -333,6 +333,11 @@ public class SurvHisdataOrientwaterServiceImpl extends ServiceImpl<SurvHisdataOr
if (StringUtils.isBlank(vals)) {//没有值使用预设值 if (StringUtils.isBlank(vals)) {//没有值使用预设值
XxlJobHelper.log("面源历史数据没有{}值,使用预设值{}",rule.getFields(),rule.getStandard()); XxlJobHelper.log("面源历史数据没有{}值,使用预设值{}",rule.getFields(),rule.getStandard());
vals = rule.getStandard(); vals = rule.getStandard();
}else if (StringUtils.isNotBlank(vals)) {//有值但是为负数同样使用默认值
if(vals.contains("-")||"0".equals(vals)) {
XxlJobHelper.log("面源历史数据有{}值,但是为负数,使用预设值{}", rule.getFields(), vals, rule.getStandard());
vals = rule.getStandard();
}
} }
BigDecimal fixedRange = new BigDecimal(rule.getFactor()); BigDecimal fixedRange = new BigDecimal(rule.getFactor());
int scale = rule.getScale();//小数位 int scale = rule.getScale();//小数位