Ver código fonte

[task-3522]温控对接-导入模式的功能开发

szjbdgzl 1 ano atrás
pai
commit
b8c608f8ba

+ 229 - 8
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/thirtyparty/service/impl/NanShaWsdServiceImpl.java

@@ -1,5 +1,7 @@
 package com.lc.ibps.business.thirtyparty.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.lc.ibps.api.base.constants.StateEnum;
 import com.lc.ibps.base.core.util.BeanUtils;
 import com.lc.ibps.base.core.util.Collections;
@@ -36,7 +38,7 @@ public class NanShaWsdServiceImpl extends WsdBaseServiceImpl implements NanShaWs
             ImportParams params = new ImportParams();
             params.setHeadRows(1);
             List<Map<String,Object>> excelList = ExcelImportUtil.importExcel(file.getInputStream(), Map.class, params);
-            String sql = "select di_dian_,bu_men_,she_bei_ming_chen,cai_ji_qi_id_,she_bei_lei_xing_,qu_yu_,fang_jian_,gang_wei_ from `t_wsdcjpzb` where shi_fou_qi_yong_='是'; ";
+            String sql = "select * from `t_wsdcjpzb` where shi_fou_qi_yong_='是'; ";
             List<Map<String,Object>> configList = (List<Map<String, Object>>) commonDao.query(sql);
             if(Collections.isEmpty(excelList) || Collections.isEmpty(configList)){
                 return null;
@@ -63,7 +65,7 @@ public class NanShaWsdServiceImpl extends WsdBaseServiceImpl implements NanShaWs
             }
 
             // 处理数据到具体业务表
-            createDailyRecord(parentId);
+            createDailyRecord();
             log.warn("处理数据到具体业务表完成");
 
             // 处理失控开启失控流程
@@ -94,6 +96,7 @@ public class NanShaWsdServiceImpl extends WsdBaseServiceImpl implements NanShaWs
                             String value = StrUtil.str(excel.get(clcrm));
                             if (value.equals("—"))continue;
                             String timeNum = clcrm.substring(0,clcrm.lastIndexOf("点"));
+                            data.put("shi_ke_",timeNum);
                             if (Integer.parseInt(timeNum)<10){
                                 timeNum = "0"+timeNum;
                             }
@@ -111,6 +114,7 @@ public class NanShaWsdServiceImpl extends WsdBaseServiceImpl implements NanShaWs
                             data.put("gang_wei_", StrUtil.str(config.get("gang_wei_")));
                             data.put("di_dian_", StrUtil.str(config.get("di_dian_")));
                             data.put("parent_id_",parentId);
+                            data.put("yuan_she_bei_bian",StrUtil.str(config.get("she_bei_bian_hao_")));
 
                             String type = StrUtil.str(excel.get("采集类型"));
                             if ("温湿度(℃/%RH)".equals(type)){
@@ -200,12 +204,229 @@ public class NanShaWsdServiceImpl extends WsdBaseServiceImpl implements NanShaWs
     }
 
 
-    private void createDailyRecord(String parentId) throws Exception {
-        String sql = "SELECT *from t_dsfwsdjlb WHERE parent_id_='%s' ORDER BY cai_ji_shi_jian_";
-        sql = String.format(sql,parentId);
-        List<Map<String, Object>> wsdList = (List<Map<String, Object>>) commonDao.query(sql);
-        if (BeanUtils.isEmpty(wsdList))return;
-        addWsdData(wsdList);
+    private void createDailyRecord() {
+        // 冰箱  t_bxwdjkjlb
+        addBxData();
+        // 室内温湿度 t_snwsdjkjlb
+        addSnwsdData();
+        // 温浴箱(培养箱)温湿度 t_wyxwdjkywhjlb
+        addPyxData();
+        // 阴凉柜温湿度记录---t_ylgwdjkjlb
+        addYlgData();
+    }
+
+    public void addBxData() {
+        String sql = "SELECT id_,DATE_FORMAT(bian_zhi_shi_jian,'%Y-%m-%d') bian_zhi_shi_jian,bing_xiang_bian_h from t_bxwdjkjlb WHERE shi_fou_guo_shen_='待处理'";
+        List<Map<String, Object>> bxList = (List<Map<String, Object>>) commonDao.query(sql);
+        if (BeanUtils.isEmpty(bxList))return;
+        for (Map<String,Object> map : bxList){
+            String id = StrUtil.str(map.get("id_"));
+            String date = StrUtil.str(map.get("bian_zhi_shi_jian"));
+            String code = StrUtil.str(map.get("bing_xiang_bian_h"));
+            String sql2 = "SELECT *from t_dsfwsdjlb WHERE cai_ji_ri_qi_='"+date+"' and yuan_she_bei_bian='"+code+"' ORDER BY cai_ji_shi_jian_";
+            List<Map<String, Object>> dayList = (List<Map<String, Object>>) commonDao.query(sql2);
+            if (BeanUtils.isEmpty(dayList))continue;
+            String zhuangtai = "正常";
+            String shi_ji_shi_jian_ = "";
+            String wdfw = "";String sdfw = "";
+            JSONArray params = new JSONArray();
+            for (Map<String,Object> day : dayList){
+                double value = Double.parseDouble(StrUtil.str(day.get("wen_shi_du_zhi_")));
+                double max = Double.parseDouble(StrUtil.str(day.get("zui_da_zhi_")));
+                double min = Double.parseDouble(StrUtil.str(day.get("zui_xiao_zhi_")));
+                String type = StrUtil.str(day.get("shu_ju_lei_xing_"));
+                String status = StrUtil.str(day.get("shi_fou_shi_kong_")).equals("是")?"失控":"正常";
+                if (status.equals("失控")){
+                    zhuangtai = "失控";
+                }
+                shi_ji_shi_jian_ = StrUtil.str(day.get("cai_ji_shi_jian_"));
+                if (type.equals("温度")){
+                    wdfw = "温度:"+min+"~"+max+"℃";
+                }else {
+                    sdfw = "湿度:"+min+"~"+max+"%";
+                }
+                String time = StrUtil.str(day.get("shi_ke_"));
+                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("温度")?"℃":"%");
+                tempObj.put("label", time +"点"+ type);
+                tempObj.put("rate","每天");
+                params.add(tempObj);
+            }
+            String userId = ContextUtil.getCurrentUserId();
+            String updSql = "update t_bxwdjkjlb SET bian_zhi_ren_='"+userId+"',update_by_='"+userId+"',update_time_=now(), " +
+                    "shi_fou_guo_shen_='已完成', wen_kong_zhi_fan_='"+wdfw+" "+sdfw+"',shi_kong_zhuang_t='"+zhuangtai+"'," +
+                    "shi_ji_shi_jian_='"+shi_ji_shi_jian_+"',lie_biao_shu_ju_='"+params+"' where id_='"+id+"'";
+            log.warn("name{},id_{}","t_bxwdjkjlb",id);
+            commonDao.execute(updSql);
+        }
+    }
+
+    public void addSnwsdData() {
+        String sql = "SELECT id_,DATE_FORMAT(bian_zhi_shi_jian,'%Y-%m-%d') bian_zhi_shi_jian,wen_du_ji_bian_ha from t_snwsdjkjlb WHERE shi_fou_guo_shen_='待处理'";
+        List<Map<String, Object>> bxList = (List<Map<String, Object>>) commonDao.query(sql);
+        if (BeanUtils.isEmpty(bxList))return;
+        for (Map<String,Object> map : bxList){
+            String id = StrUtil.str(map.get("id_"));
+            String date = StrUtil.str(map.get("bian_zhi_shi_jian"));
+            String code = StrUtil.str(map.get("wen_du_ji_bian_ha"));
+            String sql2 = "SELECT *from t_dsfwsdjlb WHERE cai_ji_ri_qi_='"+date+"' and yuan_she_bei_bian='"+code+"' ORDER BY cai_ji_shi_jian_";
+            List<Map<String, Object>> dayList = (List<Map<String, Object>>) commonDao.query(sql2);
+            if (BeanUtils.isEmpty(dayList))continue;
+            String zhuangtai = "正常";
+            String shi_ji_shi_jian_ = "";
+            String wdfw = "";String sdfw = "";
+            JSONArray params = new JSONArray();
+            for (Map<String,Object> day : dayList){
+                double value = Double.parseDouble(StrUtil.str(day.get("wen_shi_du_zhi_")));
+                double max = Double.parseDouble(StrUtil.str(day.get("zui_da_zhi_")));
+                double min = Double.parseDouble(StrUtil.str(day.get("zui_xiao_zhi_")));
+                String type = StrUtil.str(day.get("shu_ju_lei_xing_"));
+                String status = StrUtil.str(day.get("shi_fou_shi_kong_")).equals("是")?"失控":"正常";
+                if (status.equals("失控")){
+                    zhuangtai = "失控";
+                }
+                shi_ji_shi_jian_ = StrUtil.str(day.get("cai_ji_shi_jian_"));
+                if (type.equals("温度")){
+                    wdfw = "温度:"+min+"~"+max+"℃";
+                }else {
+                    sdfw = "湿度:"+min+"~"+max+"%";
+                }
+                String time = StrUtil.str(day.get("shi_ke_"));
+                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("温度")?"℃":"%");
+                tempObj.put("label", time +"点"+ type);
+                tempObj.put("rate","每天");
+                params.add(tempObj);
+            }
+            String userId = ContextUtil.getCurrentUserId();
+            String updSql = "update t_snwsdjkjlb SET bian_zhi_ren_='"+userId+"',update_by_='"+userId+"',update_time_=now()," +
+                    " shi_fou_guo_shen_='已完成', wen_shi_du_kong_z='"+wdfw+" "+sdfw+"',shi_kong_zhuang_t='"+zhuangtai+"'," +
+                    "shi_ji_cao_zuo_sh='"+shi_ji_shi_jian_+"',lie_biao_shu_ju_='"+params+"' where id_='"+id+"'";
+            log.warn("name{},id_{}","t_bxwdjkjlb",id);
+            commonDao.execute(updSql);
+        }
+    }
+
+    public void addPyxData() {
+        String sql = "SELECT id_,DATE_FORMAT(bian_zhi_shi_jian,'%Y-%m-%d') bian_zhi_shi_jian,she_bei_bian_hao_ from t_wyxwdjkywhjlb WHERE shi_fou_guo_shen_='待处理'";
+        List<Map<String, Object>> bxList = (List<Map<String, Object>>) commonDao.query(sql);
+        if (BeanUtils.isEmpty(bxList))return;
+        for (Map<String,Object> map : bxList){
+            String id = StrUtil.str(map.get("id_"));
+            String date = StrUtil.str(map.get("bian_zhi_shi_jian"));
+            String code = StrUtil.str(map.get("she_bei_bian_hao_"));
+            String sql2 = "SELECT *from t_dsfwsdjlb WHERE cai_ji_ri_qi_='"+date+"' and yuan_she_bei_bian='"+code+"' ORDER BY cai_ji_shi_jian_";
+            List<Map<String, Object>> dayList = (List<Map<String, Object>>) commonDao.query(sql2);
+            if (BeanUtils.isEmpty(dayList))continue;
+            String zhuangtai = "正常";
+            String shi_ji_shi_jian_ = "";
+            String wdfw = "";String sdfw = "";
+            JSONArray params = new JSONArray();
+            for (Map<String,Object> day : dayList){
+                double value = Double.parseDouble(StrUtil.str(day.get("wen_shi_du_zhi_")));
+                double max = Double.parseDouble(StrUtil.str(day.get("zui_da_zhi_")));
+                double min = Double.parseDouble(StrUtil.str(day.get("zui_xiao_zhi_")));
+                String type = StrUtil.str(day.get("shu_ju_lei_xing_"));
+                String status = StrUtil.str(day.get("shi_fou_shi_kong_")).equals("是")?"失控":"正常";
+                if (status.equals("失控")){
+                    zhuangtai = "失控";
+                }
+                shi_ji_shi_jian_ = StrUtil.str(day.get("cai_ji_shi_jian_"));
+                if (type.equals("温度")){
+                    wdfw = "温度:"+min+"~"+max+"℃";
+                }else {
+                    sdfw = "湿度:"+min+"~"+max+"%";
+                }
+                String time = StrUtil.str(day.get("shi_ke_"));
+                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("温度")?"℃":"%");
+                tempObj.put("label", time +"点"+ type);
+                tempObj.put("rate","每天");
+                params.add(tempObj);
+            }
+            String userId = ContextUtil.getCurrentUserId();
+            String updSql = "update t_wyxwdjkywhjlb SET bian_zhi_ren_='"+userId+"',update_by_='"+userId+"',update_time_=now(), " +
+                    "shi_fou_guo_shen_='已完成', wen_kong_zhi_fan_='"+wdfw+" "+sdfw+"',shi_kong_zhuang_t='"+zhuangtai+"'," +
+                    "shi_ji_shi_jian_='"+shi_ji_shi_jian_+"',lie_biao_shu_ju_='"+params+"' where id_='"+id+"'";
+            commonDao.execute(updSql);
+        }
+    }
+
+    public void addYlgData() {
+        String sql = "SELECT id_,DATE_FORMAT(bian_zhi_shi_jian,'%Y-%m-%d') bian_zhi_shi_jian,yin_liang_gui_bia from t_ylgwdjkjlb WHERE shi_fou_guo_shen_='待处理'";
+        List<Map<String, Object>> bxList = (List<Map<String, Object>>) commonDao.query(sql);
+        if (BeanUtils.isEmpty(bxList))return;
+        for (Map<String,Object> map : bxList){
+            String id = StrUtil.str(map.get("id_"));
+            String date = StrUtil.str(map.get("bian_zhi_shi_jian"));
+            String code = StrUtil.str(map.get("yin_liang_gui_bia"));
+            String sql2 = "SELECT *from t_dsfwsdjlb WHERE cai_ji_ri_qi_='"+date+"' and yuan_she_bei_bian='"+code+"' ORDER BY cai_ji_shi_jian_";
+            List<Map<String, Object>> dayList = (List<Map<String, Object>>) commonDao.query(sql2);
+            if (BeanUtils.isEmpty(dayList))continue;
+            String zhuangtai = "正常";
+            String shi_ji_shi_jian_ = "";
+            String wdfw = "";String sdfw = "";
+            JSONArray params = new JSONArray();
+            for (Map<String,Object> day : dayList){
+                double value = Double.parseDouble(StrUtil.str(day.get("wen_shi_du_zhi_")));
+                double max = Double.parseDouble(StrUtil.str(day.get("zui_da_zhi_")));
+                double min = Double.parseDouble(StrUtil.str(day.get("zui_xiao_zhi_")));
+                String type = StrUtil.str(day.get("shu_ju_lei_xing_"));
+                String status = StrUtil.str(day.get("shi_fou_shi_kong_")).equals("是")?"失控":"正常";
+                if (status.equals("失控")){
+                    zhuangtai = "失控";
+                }
+                shi_ji_shi_jian_ = StrUtil.str(day.get("cai_ji_shi_jian_"));
+                if (type.equals("温度")){
+                    wdfw = "温度:"+min+"~"+max+"℃";
+                }else {
+                    sdfw = "湿度:"+min+"~"+max+"%";
+                }
+                String time = StrUtil.str(day.get("shi_ke_"));
+                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("温度")?"℃":"%");
+                tempObj.put("label", time +"点"+ type);
+                tempObj.put("rate","每天");
+                params.add(tempObj);
+            }
+            String userId = ContextUtil.getCurrentUserId();
+            String updSql = "update t_ylgwdjkjlb SET bian_zhi_ren_='"+userId+"',update_by_='"+userId+"',update_time_=now(), " +
+                    "shi_fou_guo_shen_='已完成', wen_du_jian_kong_='"+wdfw+" "+sdfw+"',shi_kong_zhuang_t='"+zhuangtai+"'," +
+                    "shi_ji_shi_jian_='"+shi_ji_shi_jian_+"',lie_biao_shu_ju_='"+params+"' where id_='"+id+"'";
+            commonDao.execute(updSql);
+        }
     }
 
     private void checkUncontrolBx(String parentId) throws Exception {