Bläddra i källkod

[task-3156]温控系统对接

szjbdgzl 1 år sedan
förälder
incheckning
c34bda8a75

+ 1 - 33
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/thirtyparty/controller/HumitureController.java

@@ -1,25 +1,16 @@
 package com.lc.ibps.business.thirtyparty.controller;
 
 
-import com.lc.ibps.base.core.util.AppUtil;
-import com.lc.ibps.base.core.util.BeanUtils;
-import com.lc.ibps.base.framework.table.ICommonDao;
-import com.lc.ibps.base.saas.token.ITenantTokenService;
-import com.lc.ibps.base.web.context.ContextUtil;
-import com.lc.ibps.bpmn.api.IBpmInstService;
 import com.lc.ibps.business.thirtyparty.service.HumitureService;
 import com.lc.ibps.cloud.entity.APIResult;
 import com.lc.ibps.cloud.provider.GenericProvider;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
 
 @Api(tags = "导入第三方温控数据")
 @RequestMapping(value = "/thirtyparty/humiture")
@@ -30,35 +21,12 @@ public class HumitureController extends GenericProvider {
     @Resource
     private HumitureService humitureService;
 
-    @Resource
-    private ICommonDao<?> commonDao;
-
     @ApiOperation("导入Excel 压缩包 温湿度数据")
     @RequestMapping(value = "/importHumiture", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     APIResult importHumiture(@RequestPart(name = "file", required = true) MultipartFile file){
         APIResult result = humitureService.importHumiture(file);
-        startFlowStep();
+        logger.warn("温湿度数据处理结束 result =={}",result);
         return result;
     }
 
-    private void startFlowStep() {
-        String fetchSql = "SELECT id_ FROM t_sshjskycljlb WHERE shi_fou_guo_shen_ is null ";
-        List<Map<String, Object>> list =  (List<Map<String, Object>>) commonDao.query(fetchSql);
-        if (BeanUtils.isEmpty(list)) {
-            return;
-        }
-        IBpmInstService bpmInstService = AppUtil.getBean(IBpmInstService.class);
-        if (StringUtils.isBlank(ContextUtil.getCurrentAccessToken())) {
-            ITenantTokenService tenantTokenService = AppUtil.getBean(ITenantTokenService.class);
-            String accessToken = tenantTokenService.getAccessToken();
-            ContextUtil.setCurrentAccessToken(accessToken);
-        }
-        for (Map<String, Object> objectMap : list) {
-            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String)objectMap.get("id_")}, "sshjskycljlb", "Process_19ckgrn");
-            logger.warn("startFlowFromList==>>result =={}",result);
-            if (result.getState()==200){
-                commonDao.execute("update t_sshjskycljlb set shi_fou_guo_shen_='待处理' where id_='"+objectMap.get("id_")+"'");
-            }
-        }
-    }
 }

+ 14 - 22
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/thirtyparty/service/impl/HumitureServiceImpl.java

@@ -205,49 +205,41 @@ public class HumitureServiceImpl implements HumitureService {
     }
 
     private void checkUncontrolBx(String parentId) throws Exception {
-        String sql = "SELECT cai_ji_qi_id_,shu_ju_lei_xing_,COUNT(id_) total FROM t_dsfwsdjlb  \n" +
+        String sql = "SELECT cai_ji_qi_id_,DATE(cai_ji_shi_jian_) as ri_qi_,shu_ju_lei_xing_,COUNT(id_) total FROM t_dsfwsdjlb  \n" +
                 "WHERE ((CONVERT(wen_shi_du_zhi_,SIGNED) > CONVERT(zui_da_zhi_,SIGNED) OR CONVERT(wen_shi_du_zhi_,SIGNED) < CONVERT(zui_xiao_zhi_,SIGNED)) \n" +
                 "and (wen_shi_du_zhi_<>'' and zui_da_zhi_ <>'' and zui_xiao_zhi_ <>'')) \n" +
-                "AND parent_id_='%s' GROUP BY cai_ji_qi_id_ HAVING total >='2' ";
+                "AND parent_id_='%s' GROUP BY cai_ji_qi_id_,ri_qi_ HAVING total >='2' ORDER BY ri_qi_ ";
         sql = String.format(sql,parentId);
         List<Map<String, Object>> bx = (List<Map<String, Object>>) commonDao.query(sql);
         if (BeanUtils.isNotEmpty(bx)){
             for (Map<String,Object> bxMap : bx){
-                outOfControlJudge(parentId,bxMap.get("cai_ji_qi_id_").toString(),bxMap.get("shu_ju_lei_xing_").toString());
+                outOfControlJudge(parentId,bxMap.get("cai_ji_qi_id_").toString(),bxMap.get("shu_ju_lei_xing_").toString(),bxMap.get("ri_qi_").toString());
             }
             //startFlowStep();  改成发在控制层执行,否则同一个事务里面读不到数据
         }
     }
 
-    private void outOfControlJudge(String parentId,String deviceId,String type) throws Exception {
-        String sql = "SELECT *from t_dsfwsdjlb WHERE parent_id_='%s' and cai_ji_qi_id_='%s' and shu_ju_lei_xing_ ='%s' " +
+    private void outOfControlJudge(String parentId,String deviceId,String type,String date) throws Exception {
+        String sql = "SELECT *from t_dsfwsdjlb WHERE parent_id_='%s' and cai_ji_qi_id_='%s' and shu_ju_lei_xing_ ='%s' and DATE(cai_ji_shi_jian_)='%s' " +
+                "and (CONVERT(wen_shi_du_zhi_,SIGNED) > CONVERT(zui_da_zhi_,SIGNED) OR CONVERT(wen_shi_du_zhi_,SIGNED) < CONVERT(zui_xiao_zhi_,SIGNED)) " +
                 "and (wen_shi_du_zhi_<>'' and zui_da_zhi_ <>'' and zui_xiao_zhi_ <>'') ORDER BY cai_ji_shi_jian_ desc";
-        sql = String.format(sql,parentId,deviceId,type);
+        sql = String.format(sql,parentId,deviceId,type,date);
         List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         if (BeanUtils.isNotEmpty(list)){
-            int control = 0;
             StringBuilder beiZhu = new StringBuilder();
             StringBuilder idStr = new StringBuilder();
             for (Map<String,Object> map : list){
                 double wenDu = Double.parseDouble(map.get("wen_shi_du_zhi_").toString());
                 double max = Double.parseDouble(map.get("zui_da_zhi_").toString());
                 double min = Double.parseDouble(map.get("zui_xiao_zhi_").toString());
-                if (wenDu>max || wenDu<min){
-                    control=control+1;
-                    idStr.append(map.get("id_")).append("_");
-                    String typeStr = map.get("shu_ju_lei_xing_").toString().equals("温度")?",温度:":",湿度:";
-                    String limits = map.get("shu_ju_lei_xing_").toString().equals("温度")?"温度范围:":"湿度范围:";
-                    String unit = map.get("shu_ju_lei_xing_").toString().equals("温度")?"℃":"%";
-                    beiZhu.append("采集时间:").append(map.get("cai_ji_shi_jian_")).append(typeStr).append(wenDu).
-                            append(unit).append(",").append(limits).append(min).append("~").append(max).append(unit).append("\n");
-                }else {
-                    control=0;
-                }
-                if (control==2){
-                    addWenDuSkData( map ,beiZhu.toString(), idStr.toString());
-                    break;
-                }
+                idStr.append(map.get("id_")).append("_");
+                String typeStr = map.get("shu_ju_lei_xing_").toString().equals("温度")?",温度:":",湿度:";
+                String limits = map.get("shu_ju_lei_xing_").toString().equals("温度")?"温度范围:":"湿度范围:";
+                String unit = map.get("shu_ju_lei_xing_").toString().equals("温度")?"℃":"%";
+                beiZhu.append("采集时间:").append(map.get("cai_ji_shi_jian_")).append(typeStr).append(wenDu).
+                        append(unit).append(",").append(limits).append(min).append("~").append(max).append(unit).append("\n");
             }
+            addWenDuSkData( list.get(0) ,beiZhu.toString(), idStr.toString());
         }
     }
 

+ 58 - 0
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/WsdSkFlowJob.java

@@ -0,0 +1,58 @@
+package com.lc.ibps.platform.plan.job;
+
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.base.core.util.JacksonUtil;
+import com.lc.ibps.base.framework.table.ICommonDao;
+import com.lc.ibps.base.saas.token.ITenantTokenService;
+import com.lc.ibps.base.web.context.ContextUtil;
+import com.lc.ibps.bpmn.api.IBpmInstService;
+import com.lc.ibps.cloud.entity.APIResult;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+import java.util.Map;
+
+public class WsdSkFlowJob extends AbstractJob{
+
+    private static final Logger logger = LoggerFactory.getLogger(WsdSkFlowJob.class);
+    private ICommonDao<?> commonDao = AppUtil.getBean(ICommonDao.class);
+
+    @Override
+    public void executeJob(JobExecutionContext context) throws Exception {
+        JobDataMap dataMap = context.getMergedJobDataMap();
+        logger.warn("group={} job={} trigger={} is running.",
+                context.getJobDetail().getKey().getGroup(),
+                context.getJobDetail().getKey().getName(),
+                context.getTrigger().getKey().getName());
+        logger.warn("jobDataMap=is {}.", JacksonUtil.toJsonString(dataMap.getWrappedMap()));
+        startFlowStep();
+    }
+
+    private void startFlowStep() {
+        String fetchSql = "SELECT id_ FROM t_sshjskycljlb WHERE shi_fou_guo_shen_ is null ";
+        List<Map<String, Object>> list =  (List<Map<String, Object>>) commonDao.query(fetchSql);
+        logger.warn("list =={}",list);
+        if (BeanUtils.isEmpty(list)) {
+            return;
+        }
+        IBpmInstService bpmInstService = AppUtil.getBean(IBpmInstService.class);
+        if (StringUtils.isBlank(ContextUtil.getCurrentAccessToken())) {
+            ITenantTokenService tenantTokenService = AppUtil.getBean(ITenantTokenService.class);
+            String accessToken = tenantTokenService.getAccessToken();
+            ContextUtil.setCurrentAccessToken(accessToken);
+        }
+        for (Map<String, Object> objectMap : list) {
+            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String)objectMap.get("id_")}, "sshjskycljlb", "Process_19ckgrn");
+            logger.warn("startFlowFromList==>>result =={}",result);
+            if (result.getState()==200){
+                commonDao.execute("update t_sshjskycljlb set shi_fou_guo_shen_='待处理' where id_='"+objectMap.get("id_")+"'");
+            }
+        }
+    }
+
+}