szjbdgzl 1 год назад
Родитель
Сommit
624d0f58c4

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

@@ -1,16 +1,25 @@
 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")
@@ -21,10 +30,35 @@ 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();
         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_")+"'");
+            }
+        }
+    }
 }

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

@@ -2,21 +2,19 @@ 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.*;
 import com.lc.ibps.base.core.util.Collections;
 import com.lc.ibps.base.framework.id.UniqueIdUtil;
 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.base.web.util.AppFileUtil;
-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.components.poi.excel.ExcelImportUtil;
 import com.lc.ibps.components.poi.excel.entity.ImportParams;
 import com.lc.ibps.untils.SqlUtil;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
@@ -26,6 +24,8 @@ import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import static com.lc.ibps.cloud.utils.ResultUtil.setExceptionResult;
+
 @Log4j2
 @Service
 public class HumitureServiceImpl implements HumitureService {
@@ -86,7 +86,7 @@ public class HumitureServiceImpl implements HumitureService {
             result.setMessage("导入成功!");
         } catch (Exception e) {
             result.setMessage("导入失败!");
-            log.error(e);
+            setExceptionResult(result, StateEnum.ERROR.getCode(), I18nUtil.getMessage(StateEnum.ERROR.getCode() + ""), e);
         } finally {
             try {
                 File dir = new File(unZipFilePath);
@@ -215,7 +215,7 @@ public class HumitureServiceImpl implements HumitureService {
             for (Map<String,Object> bxMap : bx){
                 outOfControlJudge(parentId,bxMap.get("cai_ji_qi_id_").toString(),bxMap.get("shu_ju_lei_xing_").toString());
             }
-            startFlowStep();
+            //startFlowStep();  改成发在控制层执行,否则同一个事务里面读不到数据
         }
     }
 
@@ -239,7 +239,7 @@ public class HumitureServiceImpl implements HumitureService {
                     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(",").append(limits).append(min).append("~").append(max).append(unit).append("\n");
+                            append(unit).append(",").append(limits).append(min).append("~").append(max).append(unit).append("\n");
                 }else {
                     control=0;
                 }
@@ -264,32 +264,22 @@ public class HumitureServiceImpl implements HumitureService {
             data.put("fang_jian_", map.get("fang_jian_"));
             data.put("jie_guo_", "是");
             data.put("qing_kuang_", "设备号为:"+map.get("cai_ji_qi_id_")+"-"+map.get("cai_ji_qi_ming_ch")+" 的设备在一小时内温湿度连续超出限定范围,\n失控记录:\n"+beiZhu);
-            data.put("shi_fou_guo_shen_", "待处理");
+            //data.put("shi_fou_guo_shen_", "1");
             data.put("create_by_","1");
             data.put("bian_zhi_ren_","1");
             data.put("yuan_shu_ju_id_",idStr);
+//            String qing_kuang_ = "设备号为:"+map.get("cai_ji_qi_id_")+"-"+map.get("cai_ji_qi_ming_ch")+" 的设备在一小时内温湿度连续超出限定范围,\n失控记录:\n"+beiZhu;
+//            String sql = "INSERT INTO t_sshjskycljlb (id_,create_time_,bian_zhi_shi_jian,fa_xian_shi_jian_,bian_zhi_bu_men_," +
+//                    "fa_sheng_qu_yu_,di_dian_,fang_jian_,jie_guo_,qing_kuang_,shi_fou_guo_shen_,create_by_,bian_zhi_ren_,yuan_shu_ju_id_) " +
+//                    "VALUES (#{p0}, #{p1},#{p2}, #{p3},#{p4}, #{p5},#{p6}, #{p7},#{p8}, #{p9},#{p10}, #{p11},#{p12}, #{p13})";
+//            List<Object[]> params = new ArrayList<>();
+//            params.add(new Object[]{UniqueIdUtil.getId(), shijian.format(new Date()),shijian.format(new Date()),map.get("cai_ji_shi_jian_"),
+//                    map.get("bu_men_id_"),map.get("qu_yu_"),map.get("di_dian_"),map.get("fang_jian_"),"是",qing_kuang_,"待处理","1","1",idStr});
+//            commonDao.execute(sql,params);
             commonDao.execute(SqlUtil.buildInsertSql(data,SKJLB));
         }
     }
 
-    private void startFlowStep() {
-        String fetchSql = "SELECT id_ FROM t_sshjskycljlb WHERE shi_fou_guo_shen_ ='待处理' and DATE_FORMAT(create_time_,'%Y-%m-%d %H')=DATE_FORMAT(CURRENT_TIME,'%Y-%m-%d %H')";
-        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");
-            result.getState();
-        }
-    }
-
     private void createDailyRecord(String parentId) throws Exception {
         String sql = "SELECT cai_ji_qi_id_,cai_ji_ri_qi_,di_dian_ from t_dsfwsdjlb WHERE parent_id_='%s' GROUP BY cai_ji_ri_qi_,cai_ji_qi_id_";
         sql = String.format(sql,parentId);