Переглянути джерело

[task-2813]深圳三院-温控对接

szjbdgzl 1 рік тому
батько
коміт
f3134e2b70

+ 173 - 146
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/BinXiangJob.java

@@ -19,8 +19,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -41,7 +39,7 @@ public class BinXiangJob extends AbstractJob {
         Map<String, Object> objectMap = buildQueryParam(context);
         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))) {
         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);
         List<Map<String, Object>> bx = (List<Map<String, Object>>) commonDao.query(sql);
         if (BeanUtils.isNotEmpty(bx)){
         if (BeanUtils.isNotEmpty(bx)){
             for (Map<String,Object> bxMap : bx){
             for (Map<String,Object> bxMap : bx){
-                //根据返回的冰箱ID,再去查当天温度记录,确定是否有连续4个点失控。
-                outOfControlJudge(bxMap, uncontrolTimes,startTime);
+                outOfControlJudge(bxMap);
             }
             }
             // 开启失控流程
             // 开启失控流程
             startFlowStep();
             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);
         List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(bxSql);
         if (BeanUtils.isNotEmpty(list)){
         if (BeanUtils.isNotEmpty(list)){
-            int control = 0;
+            int wdTimes = 0;int sdTimes=0;
             StringBuilder beiZhu = new StringBuilder();
             StringBuilder beiZhu = new StringBuilder();
             for (Map<String,Object> map : list){
             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<>();
         Map<String,Object> data = new HashMap<>();
         data.put("id_", UniqueIdUtil.getId());
         data.put("id_", UniqueIdUtil.getId());
         data.put("create_time_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
         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("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("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_", "待分析处理");
         data.put("shi_fou_guo_shen_", "待分析处理");
         commonDao.execute(this.buildInsertSql(data,"t_sshjskycljlb"));
         commonDao.execute(this.buildInsertSql(data,"t_sshjskycljlb"));
     }
     }
 
 
 
 
     private void addNoCollectData() throws Exception {
     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 " +
         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) ";
                 " 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);
         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("id_", UniqueIdUtil.getId());
             data.put("create_time_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
             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("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("jie_guo_", "是");
             data.put("qing_kuang_", beiZhu + "\n 请检查采集器配置或采集数据!");
             data.put("qing_kuang_", beiZhu + "\n 请检查采集器配置或采集数据!");
             data.put("shi_fou_guo_shen_", "待分析处理");
             data.put("shi_fou_guo_shen_", "待分析处理");
@@ -183,98 +171,137 @@ public class BinXiangJob extends AbstractJob {
     private void createDailyRecord(String[] planTime) throws Exception {
     private void createDailyRecord(String[] planTime) throws Exception {
         // 日常开记录  冰箱温度监控记录
         // 日常开记录  冰箱温度监控记录
         for (String time : planTime){
         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){
         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<>();
             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("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("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("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) {
     private Map<String,Object> buildQueryParam(JobExecutionContext context) {
@@ -289,7 +316,7 @@ public class BinXiangJob extends AbstractJob {
         if(StringUtil.isNotBlank(planDateParam)){
         if(StringUtil.isNotBlank(planDateParam)){
             planTime = planDateParam.split(",");
             planTime = planDateParam.split(",");
         }
         }
-        String uncontrolTimes = "4";
+        String uncontrolTimes = "1";
         if(StringUtil.isNotBlank(dataMap.getString(UNCONTROL_TIMES))){
         if(StringUtil.isNotBlank(dataMap.getString(UNCONTROL_TIMES))){
             uncontrolTimes = dataMap.getString(UNCONTROL_TIMES);
             uncontrolTimes = dataMap.getString(UNCONTROL_TIMES);
         }
         }