|
|
@@ -19,8 +19,6 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
@@ -41,7 +39,7 @@ public class BinXiangJob extends AbstractJob {
|
|
|
Map<String, Object> objectMap = buildQueryParam(context);
|
|
|
|
|
|
//检查失控数据
|
|
|
- checkUncontrolBx((String)objectMap.get(UNCONTROL_TIMES),(String)objectMap.get(START_TIME));
|
|
|
+ checkUncontrolBx((String)objectMap.get(UNCONTROL_TIMES),(String)objectMap.get(START_TIME),(String)objectMap.get(ENABLE_DAILY));
|
|
|
|
|
|
if ("1".equals(objectMap.get(ENABLE_DAILY))) {
|
|
|
//创建日记录
|
|
|
@@ -49,96 +47,86 @@ public class BinXiangJob extends AbstractJob {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void checkUncontrolBx(String uncontrolTimes,String startTime) throws Exception {
|
|
|
- String sql ="SELECT bing_xiang_id_,COUNT(id_) total FROM t_dsfbxwdjl " +
|
|
|
- " WHERE (CONVERT(wen_du_,SIGNED) > CONVERT(wen_du_shang_xian,SIGNED) OR CONVERT(wen_du_,SIGNED) < CONVERT(wen_du_xia_xian_,SIGNED) )" +
|
|
|
- " AND DATE(cai_ji_shi_jian_)= CURDATE() GROUP BY bing_xiang_id_ HAVING total >='%s'";
|
|
|
- if ("16".equals(startTime)){
|
|
|
- sql = "SELECT bing_xiang_id_,COUNT(id_) total FROM t_dsfbxwdjl " +
|
|
|
- " WHERE (CONVERT(wen_du_,SIGNED) > CONVERT(wen_du_shang_xian,SIGNED) OR CONVERT(wen_du_,SIGNED) < CONVERT(wen_du_xia_xian_,SIGNED) ) " +
|
|
|
- " AND DATE(cai_ji_shi_jian_)=DATE_SUB(CURDATE(),INTERVAL 1 DAY) GROUP BY bing_xiang_id_ HAVING total >='%s'";
|
|
|
- // 凌晨更新失控数据
|
|
|
- addNoCollectData();
|
|
|
+ private void checkUncontrolBx(String uncontrolTimes,String startTime,String enable) throws Exception {
|
|
|
+ String baseSql = "SELECT bing_xiang_id_,cai_ji_shi_jian_,COUNT(id_) total FROM t_dsfbxwdjl " +
|
|
|
+ "WHERE ( (CONVERT(wen_du_,SIGNED) > CONVERT(wen_du_shang_xian,SIGNED) OR CONVERT(wen_du_,SIGNED) < CONVERT(wen_du_xia_xian_,SIGNED)) " +
|
|
|
+ "and wen_du_ is not null and wen_du_shang_xian is not null and wen_du_xia_xian_ is not null ) " +
|
|
|
+ "OR ( (CONVERT(shi_du_,SIGNED) > CONVERT(shi_du_shang_xian,SIGNED) OR CONVERT(shi_du_,SIGNED) < CONVERT(shi_du_xia_xian_,SIGNED) ) " +
|
|
|
+ "and shi_du_ is not null and shi_du_shang_xian is not null and shi_du_xia_xian_ is not null ) ";
|
|
|
+ String sql = " AND DATE(cai_ji_shi_jian_)=CURDATE() GROUP BY bing_xiang_id_ HAVING total >='%s' ";
|
|
|
+ sql = String.format(baseSql+sql,uncontrolTimes);
|
|
|
+ if (BeanUtils.isNotEmpty(startTime)){
|
|
|
+ sql = "AND DATE(cai_ji_shi_jian_)=CURDATE() and HOUR(cai_ji_shi_jian_)>='%s' GROUP BY bing_xiang_id_ HAVING total >='%s'";
|
|
|
+ sql = String.format(baseSql+sql, startTime, uncontrolTimes);
|
|
|
+ }
|
|
|
+ if (BeanUtils.isNotEmpty(enable)){
|
|
|
+ sql = " AND DATE(cai_ji_shi_jian_)=DATE_SUB(CURDATE(),INTERVAL 1 DAY) and HOUR(cai_ji_shi_jian_)>='%s' GROUP BY bing_xiang_id_ HAVING total >='%s'";
|
|
|
+ sql = String.format(baseSql+sql, startTime, uncontrolTimes);
|
|
|
}
|
|
|
- sql = String.format(sql,uncontrolTimes);
|
|
|
- logger.warn("checkUncontrolSql: {}",sql);
|
|
|
List<Map<String, Object>> bx = (List<Map<String, Object>>) commonDao.query(sql);
|
|
|
if (BeanUtils.isNotEmpty(bx)){
|
|
|
for (Map<String,Object> bxMap : bx){
|
|
|
- //根据返回的冰箱ID,再去查当天温度记录,确定是否有连续4个点失控。
|
|
|
- outOfControlJudge(bxMap, uncontrolTimes,startTime);
|
|
|
+ outOfControlJudge(bxMap);
|
|
|
}
|
|
|
// 开启失控流程
|
|
|
startFlowStep();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void outOfControlJudge(Map<String,Object> bxMap,String uncontrolTimes,String startTime) throws Exception {
|
|
|
- String bxSql = "select a.*,e.she_bei_bian_hao_,e.dept_id_ from (select *from t_dsfbxwdjl where bing_xiang_id_='%s' " +
|
|
|
- " and DATE(cai_ji_shi_jian_)=CURRENT_DATE AND HOUR(cai_ji_shi_jian_)>='%s' ORDER BY cai_ji_shi_jian_)a, " +
|
|
|
- " equip_relation e where a.cai_ji_qi_ming_ch=e.bx_bian_hao_";
|
|
|
- if ("16".equals(startTime)){
|
|
|
- bxSql = "select a.*,e.she_bei_bian_hao_,e.dept_id_ from (select *from t_dsfbxwdjl where bing_xiang_id_='%s' " +
|
|
|
- " and DATE(cai_ji_shi_jian_)=DATE_SUB(CURDATE(),INTERVAL 1 DAY) AND HOUR(cai_ji_shi_jian_)>='%s' ORDER BY cai_ji_shi_jian_)a, " +
|
|
|
- " equip_relation e where a.cai_ji_qi_ming_ch=e.bx_bian_hao_";
|
|
|
- }
|
|
|
- bxSql = String.format(bxSql,bxMap.get("bing_xiang_id_"),startTime);
|
|
|
- logger.warn("outOfControlJudgeSql: {}",bxSql);
|
|
|
+ private void outOfControlJudge(Map<String,Object> bxMap) throws Exception {
|
|
|
+ String bxSql ="SELECT *from t_dsfbxwdjl WHERE bing_xiang_id_='%s' AND DATE(cai_ji_shi_jian_)=DATE('%s') and HOUR(cai_ji_shi_jian_)=HOUR('%s')";
|
|
|
+ bxSql = String.format(bxSql,bxMap.get("bing_xiang_id_"),bxMap.get("cai_ji_shi_jian_"),bxMap.get("cai_ji_shi_jian_"));
|
|
|
List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(bxSql);
|
|
|
if (BeanUtils.isNotEmpty(list)){
|
|
|
- int control = 0;
|
|
|
+ int wdTimes = 0;int sdTimes=0;
|
|
|
StringBuilder beiZhu = new StringBuilder();
|
|
|
for (Map<String,Object> map : list){
|
|
|
- double wenDu = Double.parseDouble(map.get("wen_du_").toString());
|
|
|
- double max = Double.parseDouble(map.get("wen_du_shang_xian").toString());
|
|
|
- double min = Double.parseDouble(map.get("wen_du_xia_xian_").toString());
|
|
|
- if (wenDu>max || wenDu<min){
|
|
|
- control=control+1;
|
|
|
- beiZhu.append("采集时间:").append(map.get("cai_ji_shi_jian_")).append(",温度:").append(wenDu).
|
|
|
- append("℃,").append("温度范围:").append(min).append("~").append(max).append("℃;\n");
|
|
|
- }else {
|
|
|
- control=0;
|
|
|
+ if (BeanUtils.isNotEmpty(map.get("wen_du_")) && BeanUtils.isNotEmpty(map.get("wen_du_shang_xian")) && BeanUtils.isNotEmpty(map.get("wen_du_xia_xian_"))){
|
|
|
+ double wenDu = Double.parseDouble(map.get("wen_du_").toString());
|
|
|
+ double max = Double.parseDouble(map.get("wen_du_shang_xian").toString());
|
|
|
+ double min = Double.parseDouble(map.get("wen_du_xia_xian_").toString());
|
|
|
+ if (wenDu>max || wenDu<min){
|
|
|
+ wdTimes=wdTimes+1;
|
|
|
+ beiZhu.append("采集时间:").append(map.get("cai_ji_shi_jian_")).append(",温度:").append(wenDu).
|
|
|
+ append("℃,").append("温度范围:").append(min).append("~").append(max).append("℃;\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (BeanUtils.isNotEmpty(map.get("shi_du_shang_xian")) && BeanUtils.isNotEmpty(map.get("shi_du_xia_xian_")) && BeanUtils.isNotEmpty(map.get("shi_du_"))){
|
|
|
+ double humMax = Double.parseDouble(map.get("shi_du_shang_xian").toString());
|
|
|
+ double humMin = Double.parseDouble(map.get("shi_du_xia_xian_").toString());
|
|
|
+ double hum = Double.parseDouble(map.get("shi_du_").toString());
|
|
|
+ if (hum>humMax || hum<humMin){
|
|
|
+ sdTimes=sdTimes+1;
|
|
|
+ beiZhu.append("采集时间:").append(map.get("cai_ji_shi_jian_")).append(",湿度:").append(hum).
|
|
|
+ append("%,").append("温度范围:").append(humMin).append("~").append(humMax).append("%;\n");
|
|
|
+ }
|
|
|
}
|
|
|
- if (control==Integer.parseInt(uncontrolTimes)){
|
|
|
- //如果有,走温度失控流程。 设施环境处理--设施环境监控--设施环境失控与处理
|
|
|
- String caiJiShiJian = StringUtil.defaultString(map.get("cai_ji_shi_jian_").toString(),"");
|
|
|
- String sheBeiBianHao = StringUtil.defaultString(map.get("she_bei_bian_hao_").toString(),"");
|
|
|
- String deptId = StringUtil.defaultString(map.get("dept_id_").toString(),"");
|
|
|
- addWenDuSkData( sheBeiBianHao , deptId , beiZhu.toString() , uncontrolTimes , caiJiShiJian);
|
|
|
- break;
|
|
|
+ if (wdTimes== list.size() || sdTimes==list.size()){
|
|
|
+ addWenDuSkData( map ,beiZhu.toString() );
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void addWenDuSkData(String sheBeiBianHao,String deptId , String beiZhu , String uncontrolTimes , String caiJiShiJian) throws Exception {
|
|
|
- Map<String,Object> map = commonDao.queryOne("select location FROM v_facs where type='02-冰箱温度监控' LIMIT 1");
|
|
|
- String diDian = StringUtil.defaultString(map.get("location").toString(),"");
|
|
|
- String roomSql = " select v.deviceNo1,v.location,v.area,v.roomName,v.roomId FROM v_facs v where v.type='02-冰箱温度监控' and v.deviceNo1='%s' limit 1";
|
|
|
- roomSql = String.format(roomSql,sheBeiBianHao);
|
|
|
- Map<String,Object> room = commonDao.queryOne(roomSql);
|
|
|
+ private void addWenDuSkData(Map<String,Object> map,String beiZhu) throws Exception {
|
|
|
Map<String,Object> data = new HashMap<>();
|
|
|
data.put("id_", UniqueIdUtil.getId());
|
|
|
data.put("create_time_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
data.put("bian_zhi_shi_jian", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
- data.put("fa_xian_shi_jian_", caiJiShiJian);
|
|
|
- data.put("bian_zhi_bu_men_", deptId);
|
|
|
- if (BeanUtils.isNotEmpty(room)){
|
|
|
- data.put("fa_sheng_qu_yu_", room.get("area"));
|
|
|
- data.put("fang_jian_id_", room.get("roomId"));
|
|
|
- data.put("fang_jian_", room.get("roomName"));
|
|
|
- }
|
|
|
- data.put("di_dian_", diDian);
|
|
|
+ data.put("fa_xian_shi_jian_", map.get("cai_ji_shi_jian_"));
|
|
|
+ data.put("bian_zhi_bu_men_", map.get("shi_yan_zu_id_"));
|
|
|
+ data.put("fa_sheng_qu_yu_", map.get("area_"));
|
|
|
+ data.put("di_dian_", map.get("di_dian_"));
|
|
|
+ data.put("fang_jian_id_", "");
|
|
|
+ data.put("fang_jian_", "");
|
|
|
data.put("jie_guo_", "是");
|
|
|
- data.put("qing_kuang_", "原设备编号为:"+sheBeiBianHao+"的设备连续"+uncontrolTimes+"个时间点温度失控,\n失控记录:\n"+beiZhu);
|
|
|
+ data.put("qing_kuang_", "设备号为:"+map.get("bing_xiang_id_")+"的设备在一小时内温湿度连续超出限定范围,\n失控记录:\n"+beiZhu);
|
|
|
data.put("shi_fou_guo_shen_", "待分析处理");
|
|
|
commonDao.execute(this.buildInsertSql(data,"t_sshjskycljlb"));
|
|
|
}
|
|
|
|
|
|
|
|
|
private void addNoCollectData() throws Exception {
|
|
|
- Map<String,Object> map = commonDao.queryOne("select location FROM v_facs where type='02-冰箱温度监控' LIMIT 1");
|
|
|
- String diDian = StringUtil.defaultString(map.get("location").toString(),"");
|
|
|
String Sql = " select *from equip_relation where bx_bian_hao_ not in (select cai_ji_qi_ming_ch from t_dsfbxwdjl " +
|
|
|
" where date(cai_ji_shi_jian_)=date_sub(curdate(),interval 1 day) group by cai_ji_qi_ming_ch) ";
|
|
|
List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(Sql);
|
|
|
@@ -152,7 +140,7 @@ public class BinXiangJob extends AbstractJob {
|
|
|
data.put("id_", UniqueIdUtil.getId());
|
|
|
data.put("create_time_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
data.put("bian_zhi_shi_jian", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
- data.put("di_dian_", diDian);
|
|
|
+ data.put("di_dian_", "");
|
|
|
data.put("jie_guo_", "是");
|
|
|
data.put("qing_kuang_", beiZhu + "\n 请检查采集器配置或采集数据!");
|
|
|
data.put("shi_fou_guo_shen_", "待分析处理");
|
|
|
@@ -183,98 +171,137 @@ public class BinXiangJob extends AbstractJob {
|
|
|
private void createDailyRecord(String[] planTime) throws Exception {
|
|
|
// 日常开记录 冰箱温度监控记录
|
|
|
for (String time : planTime){
|
|
|
- String sql = "SELECT * FROM t_dsfbxwdjl a,equip_relation e,(SELECT bing_xiang_id_,MAX(cai_ji_shi_jian_) cai_ji_shi_jian_ " +
|
|
|
- " FROM t_dsfbxwdjl WHERE DATE(cai_ji_shi_jian_)=CURDATE() AND HOUR(cai_ji_shi_jian_)="+time+" GROUP BY bing_xiang_id_) b" +
|
|
|
- " WHERE a.bing_xiang_id_=b.bing_xiang_id_ AND a.cai_ji_shi_jian_ = b.cai_ji_shi_jian_ and e.bx_bian_hao_=a.cai_ji_qi_ming_ch";
|
|
|
- // 主表--温度监控批量处理表--bxwdjk_batch 子表--冰箱温度监控记录表--bxwdjkjlb
|
|
|
- logger.warn("createDailyRecordSql: {}",sql);
|
|
|
- List<Map<String, Object>> bxList = (List<Map<String, Object>>) commonDao.query(sql);
|
|
|
- if (BeanUtils.isNotEmpty(bxList)){
|
|
|
- addBxData(bxList);
|
|
|
+ String sql = "SELECT * FROM t_dsfbxwdjl WHERE DATE(cai_ji_shi_jian_)=CURDATE() AND HOUR(cai_ji_shi_jian_)=%s GROUP BY bing_xiang_id_";
|
|
|
+ sql = String.format(sql,time);
|
|
|
+ // 室内温湿度--t_snwsdjkjlb 冰箱温度--t_bxwdjkjlb 温浴箱(培养箱)温湿度--t_wyxwdjkywhjlb
|
|
|
+ List<Map<String, Object>> wsdList = (List<Map<String, Object>>) commonDao.query(sql);
|
|
|
+ if (BeanUtils.isNotEmpty(wsdList)){
|
|
|
+ addWsdData(wsdList);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void addBxData(List<Map<String, Object>> bxList) throws Exception {
|
|
|
- boolean main = false;
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ private void addWsdData(List<Map<String, Object>> bxList) throws Exception {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
for (Map<String,Object> map : bxList){
|
|
|
- String pId = UniqueIdUtil.getId();
|
|
|
- String sheBeiId = map.get("she_bei_bian_hao_")==null?"":map.get("she_bei_bian_hao_").toString();
|
|
|
- String deptId = map.get("dept_id_")==null?"":map.get("dept_id_").toString();
|
|
|
-
|
|
|
- String eqSql = " select v.subId,v.position,v.deviceNo1,v.deviceName1,v.location,v.area,v.roomName,v.roomId " +
|
|
|
- " FROM v_facs v where v.type='02-冰箱温度监控' and v.deviceNo1='%s' LIMIT 1 ";
|
|
|
- eqSql = String.format(eqSql,sheBeiId);
|
|
|
- Map<String,Object> eqMap = commonDao.queryOne(eqSql);
|
|
|
- String diDian="";String quYuMingCheng="";String sheBeiMingCheng="";String fangJian="";String gangWei="";String subId="";
|
|
|
- if (BeanUtils.isNotEmpty(eqMap)){
|
|
|
- diDian = eqMap.get("location")==null?"":eqMap.get("location").toString();
|
|
|
- quYuMingCheng = eqMap.get("area")==null?"":eqMap.get("area").toString();
|
|
|
- sheBeiMingCheng = eqMap.get("deviceName1")==null?"":eqMap.get("deviceName1").toString();
|
|
|
- fangJian = eqMap.get("roomName")==null?"":eqMap.get("roomName").toString();
|
|
|
- gangWei = eqMap.get("position")==null?"":eqMap.get("position").toString();
|
|
|
- subId = eqMap.get("subId")==null?"":eqMap.get("subId").toString();
|
|
|
- }
|
|
|
+ String deptId = map.get("shi_yan_zu_id_")==null?"":map.get("shi_yan_zu_id_").toString();
|
|
|
Map<String,Object> data = new HashMap<>();
|
|
|
- data.put("id_", pId);
|
|
|
- data.put("create_time_", formatter.format(LocalDate.now()));
|
|
|
- data.put("bian_zhi_shi_jian", formatter.format(LocalDate.now()));
|
|
|
- data.put("bian_zhi_bu_men_", deptId);
|
|
|
- data.put("di_dian_", diDian);
|
|
|
- if (!main){
|
|
|
- // 添加主表数据
|
|
|
- commonDao.execute(buildInsertSql(data,"t_bxwdjk_batch"));
|
|
|
- main = true;
|
|
|
- }
|
|
|
- // 添加子表数据
|
|
|
- double max = Double.parseDouble(map.get("wen_du_shang_xian").toString());
|
|
|
- double min = Double.parseDouble(map.get("wen_du_xia_xian_").toString());
|
|
|
- double wenDu = Double.parseDouble(map.get("wen_du_").toString());
|
|
|
- if (max>0){
|
|
|
- data.put("leng_cang_wen_du_", wenDu);
|
|
|
- data.put("cang_wen_xiu_", wenDu);
|
|
|
- }else if (max<0){
|
|
|
- data.put("leng_dong_wen_du_", wenDu);
|
|
|
- data.put("dong_wen_xiu_", wenDu);
|
|
|
- }
|
|
|
- String shi_kong_zhuang_t = wenDu > max || wenDu < min ? "失控" : "正常";
|
|
|
data.put("id_", UniqueIdUtil.getId());
|
|
|
- data.put("wai_jian_", pId);
|
|
|
- data.put("bu_men_", deptId);
|
|
|
- data.put("bing_xiang_bian_h", sheBeiId+" "+sheBeiMingCheng);
|
|
|
- data.put("qu_yu_ming_cheng_", quYuMingCheng);
|
|
|
- data.put("fang_jian_", fangJian);
|
|
|
+ data.put("create_time_", sdf.format(new Date()));
|
|
|
+ data.put("bian_zhi_bu_men_", deptId);
|
|
|
data.put("shi_fou_guo_shen_", "已完成");
|
|
|
- data.put("wen_kong_zhi_fan_", min + "~" + max + "℃");
|
|
|
- data.put("shi_ji_shi_jian_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.get("cai_ji_shi_jian_")));
|
|
|
- data.put("bian_zhi_shi_jian", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.get("cai_ji_shi_jian_")));
|
|
|
- data.put("gang_wei_", gangWei);
|
|
|
data.put("bian_zhi_ren_", "1");
|
|
|
- //data.put("bei_zhu_", sheBeiId + sheBeiMingCheng+",采集时间:"+ caiJiShiJian + ",温度:"+ wenDu + "℃");
|
|
|
- data.put("config_id_", subId);
|
|
|
- data.put("yue_ri_qi_", new SimpleDateFormat("yyyy-MM-dd").format(map.get("cai_ji_shi_jian_")));
|
|
|
- data.put("shi_jian_shi_fen_", new SimpleDateFormat("HH:mm").format(map.get("cai_ji_shi_jian_")));
|
|
|
- data.put("shi_kong_zhuang_t",shi_kong_zhuang_t);
|
|
|
- data.put("jian_ce_zhou_qi_","每日");
|
|
|
- data.put("jian_ce_ri_qi_","每天");
|
|
|
- data.put("ri_qi_lie_biao_","1,2,3,4,5,6,7");
|
|
|
- JSONArray params = new JSONArray();
|
|
|
- JSONObject param = new JSONObject();
|
|
|
- param.put("label","温湿度");
|
|
|
- JSONArray range = new JSONArray();
|
|
|
- range.add(min);range.add(max);
|
|
|
- param.put("range",range);
|
|
|
- param.put("fixValue","");
|
|
|
- param.put("value",wenDu);
|
|
|
- param.put("result",wenDu);
|
|
|
- param.put("status",shi_kong_zhuang_t);
|
|
|
- param.put("unit","℃/%");
|
|
|
- param.put("rate","每天");
|
|
|
- params.add(param);
|
|
|
- data.put("lie_biao_shu_ju_",params);
|
|
|
- commonDao.execute(buildInsertSql(data,"t_bxwdjkjlb"));
|
|
|
+ data.put("di_dian_", map.get("di_dian_"));
|
|
|
+ data.put("bian_zhi_shi_jian", sdf.format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("bu_men_", deptId);
|
|
|
+ data.put("qu_yu_ming_cheng_", map.get("area_"));
|
|
|
+
|
|
|
+ double humMax = 0;double humMin = 0;double hum = 0;String humStatus="";String humLimit="";
|
|
|
+ if (BeanUtils.isNotEmpty(map.get("shi_du_shang_xian")) && BeanUtils.isNotEmpty(map.get("shi_du_xia_xian_")) && BeanUtils.isNotEmpty(map.get("shi_du_"))){
|
|
|
+ humMax = Double.parseDouble(map.get("shi_du_shang_xian").toString());
|
|
|
+ humMin = Double.parseDouble(map.get("shi_du_xia_xian_").toString());
|
|
|
+ hum = Double.parseDouble(map.get("shi_du_").toString());
|
|
|
+ humStatus = hum > humMax || hum < humMin ? "失控" : "正常";
|
|
|
+ humLimit = humMin + "~" + humMax + "%";
|
|
|
+ }
|
|
|
+
|
|
|
+ double tempMax = 0;double tempMin = 0;double temp = 0;String tempStatus="";String tempLimit="";
|
|
|
+ if (BeanUtils.isNotEmpty(map.get("wen_du_shang_xian")) && BeanUtils.isNotEmpty(map.get("wen_du_xia_xian_")) && BeanUtils.isNotEmpty(map.get("wen_du_"))){
|
|
|
+ tempMax = Double.parseDouble(map.get("wen_du_shang_xian").toString());
|
|
|
+ tempMin = Double.parseDouble(map.get("wen_du_xia_xian_").toString());
|
|
|
+ temp = Double.parseDouble(map.get("wen_du_").toString());
|
|
|
+ tempStatus = temp > tempMax || temp < tempMin ? "失控" : "正常";
|
|
|
+ tempLimit = tempMin + "~" + tempMax + "℃";
|
|
|
+ }
|
|
|
+ if (map.get("type_").equals("冰箱")){
|
|
|
+ // 冰箱 t_bxwdjkjlb
|
|
|
+ addBxData(data,map,tempLimit,tempStatus,tempMax,tempMin,temp);
|
|
|
+ }
|
|
|
+ if (map.get("type_").equals("环境")){
|
|
|
+ // 室内温湿度 t_snwsdjkjlb
|
|
|
+ addSnwsdData(data,map,tempLimit,humLimit,humStatus,tempStatus,tempMax,tempMin,temp,humMax,humMin,hum);
|
|
|
+ }
|
|
|
+ if (map.get("type_").equals("培养箱")){
|
|
|
+ // 温浴箱(培养箱)温湿度 t_wyxwdjkywhjlb
|
|
|
+ addPyxData(data,map,tempLimit,humLimit,humStatus,tempStatus,tempMax,tempMin,temp,humMax,humMin,hum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addPyxData(Map<String, Object> data,Map<String, Object> map,String tempLimit,String humLimit,String humStatus,
|
|
|
+ String tempStatus,double tempMax,double tempMin,double temp,double humMax,double humMin,double hum) throws Exception {
|
|
|
+ data.put("she_bei_ming_chen",map.get("bing_xiang_ming_c"));
|
|
|
+ data.put("she_bei_bian_hao_",map.get("bing_xiang_id_"));
|
|
|
+ data.put("config_id_", map.get("id_"));
|
|
|
+ data.put("jian_ce_zhou_qi_","每日");
|
|
|
+ data.put("ri_qi_lie_biao_","1,2,3,4,5,6,7");
|
|
|
+ data.put("shi_ji_shi_jian_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("wen_kong_zhi_fan_", "温度:"+tempLimit+",湿度:"+humLimit);
|
|
|
+ data.put("shi_kong_zhuang_t",(humStatus.equals("失控")||tempStatus.equals("失控"))?"失控":"正常");
|
|
|
+
|
|
|
+ JSONArray params = new JSONArray();
|
|
|
+ if (BeanUtils.isNotEmpty(temp)){
|
|
|
+ params.add(setJsonList("temp",tempStatus,tempMax,tempMin,temp));
|
|
|
+ }
|
|
|
+ if (BeanUtils.isNotEmpty(hum)){
|
|
|
+ params.add(setJsonList("hum",humStatus,humMax,humMin,hum));
|
|
|
+ }
|
|
|
+ data.put("lie_biao_shu_ju_",params);
|
|
|
+ commonDao.execute(buildInsertSql(data,"t_wyxwdjkywhjlb"));
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addSnwsdData(Map<String, Object> data,Map<String, Object> map,String tempLimit,String humLimit,String humStatus,
|
|
|
+ String tempStatus,double tempMax,double tempMin,double temp,double humMax,double humMin,double hum) throws Exception {
|
|
|
+ data.put("wai_jian_", map.get("id_"));
|
|
|
+ data.put("jian_ce_zhou_qi_","每日");
|
|
|
+ data.put("jian_ce_ri_qi_","每天");
|
|
|
+ data.put("ri_qi_lie_biao_","1,2,3,4,5,6,7");
|
|
|
+ data.put("shi_ji_cao_zuo_sh", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("wen_shi_du_kong_z", "温度:"+tempLimit+",湿度:"+humLimit);
|
|
|
+ data.put("shi_kong_zhuang_t",(humStatus.equals("失控")||tempStatus.equals("失控"))?"失控":"正常");
|
|
|
+
|
|
|
+ JSONArray params = new JSONArray();
|
|
|
+ if (BeanUtils.isNotEmpty(temp)){
|
|
|
+ params.add(setJsonList("temp",tempStatus,tempMax,tempMin,temp));
|
|
|
+ }
|
|
|
+ if (BeanUtils.isNotEmpty(hum)){
|
|
|
+ params.add(setJsonList("hum",humStatus,humMax,humMin,hum));
|
|
|
}
|
|
|
+ data.put("lie_biao_shu_ju_",params);
|
|
|
+ commonDao.execute(buildInsertSql(data,"t_snwsdjkjlb"));
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addBxData(Map<String, Object> data,Map<String, Object> map,String limits,String status,double tempMax,double tempMin,double temp) throws Exception {
|
|
|
+ data.put("config_id_", map.get("id_"));
|
|
|
+ data.put("bing_xiang_bian_h", map.get("bing_xiang_id_")+" "+map.get("bing_xiang_ming_c"));
|
|
|
+ data.put("wen_kong_zhi_fan_", limits);
|
|
|
+ data.put("shi_ji_shi_jian_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("yue_ri_qi_", new SimpleDateFormat("yyyy-MM-dd").format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("shi_jian_shi_fen_", new SimpleDateFormat("HH:mm").format(map.get("cai_ji_shi_jian_")));
|
|
|
+ data.put("shi_kong_zhuang_t",status);
|
|
|
+ data.put("jian_ce_zhou_qi_","每日");
|
|
|
+ data.put("jian_ce_ri_qi_","每周1,2,3,4,5,6,7");
|
|
|
+ data.put("ri_qi_lie_biao_","1,2,3,4,5,6,7");
|
|
|
+ JSONArray params = new JSONArray();
|
|
|
+ params.add(setJsonList("temp",status,tempMax,tempMin,temp));
|
|
|
+ data.put("lie_biao_shu_ju_",params);
|
|
|
+ commonDao.execute(buildInsertSql(data,"t_bxwdjkjlb"));
|
|
|
+ }
|
|
|
+
|
|
|
+ private JSONObject setJsonList(String type,String status,double max,double min,double value){
|
|
|
+ JSONObject tempObj = new JSONObject();
|
|
|
+ JSONArray tempRange = new JSONArray();
|
|
|
+ tempRange.add(min);
|
|
|
+ tempRange.add(max);
|
|
|
+ tempObj.put("range",tempRange);
|
|
|
+ tempObj.put("fixValue","");
|
|
|
+ tempObj.put("value",value);
|
|
|
+ tempObj.put("result",value);
|
|
|
+ tempObj.put("status",status);
|
|
|
+ tempObj.put("unit",type.equals("temp")?"℃":"%");
|
|
|
+ tempObj.put("label",type.equals("temp")?"温度":"湿度");
|
|
|
+ tempObj.put("rate","每天");
|
|
|
+ return tempObj;
|
|
|
}
|
|
|
|
|
|
private Map<String,Object> buildQueryParam(JobExecutionContext context) {
|
|
|
@@ -289,7 +316,7 @@ public class BinXiangJob extends AbstractJob {
|
|
|
if(StringUtil.isNotBlank(planDateParam)){
|
|
|
planTime = planDateParam.split(",");
|
|
|
}
|
|
|
- String uncontrolTimes = "4";
|
|
|
+ String uncontrolTimes = "1";
|
|
|
if(StringUtil.isNotBlank(dataMap.getString(UNCONTROL_TIMES))){
|
|
|
uncontrolTimes = dataMap.getString(UNCONTROL_TIMES);
|
|
|
}
|