Просмотр исходного кода

[task-4095]质量指标数据推送功能修改

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

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

@@ -3,9 +3,15 @@ package com.lc.ibps.platform.plan.job;
 import com.alibaba.fastjson.JSON;
 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 com.lc.ibps.components.quartz.BaseJob2;
 import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,8 +24,19 @@ import java.util.List;
 import java.util.Map;
 
 public class QualityIndicatorJob extends AbstractJob {
+
+    public static final String START_FLOW = "start_flow";
+
+    private static final Logger logger = LoggerFactory.getLogger(QualityIndicatorJob.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()));
 //        String sql = "SELECT id_,di_dian_,cha_xun_yu_ju_ FROM t_zlzbpzb WHERE shi_fou_ji_huo_ = 'Y'";
         List<Map<String, Object>> list = fetchRecords("zlzb1");
         if (BeanUtils.isNotEmpty(list)) {
@@ -34,6 +51,11 @@ public class QualityIndicatorJob extends AbstractJob {
                 createRecords(diDian,id,"每年",parameter.checkYear());
             }
         }
+        String flow = dataMap.getString(START_FLOW);
+        if ("true".equals(flow)){
+            startWorkflow("t_zlzbpjb","zlzbpjb","Process_127a1r4");
+            startWorkflow("t_zlzbpjzb","zlzbsjlr","Process_06mxvc4");
+        }
     }
 
     private void createRecords(String diDian,String id,String rate, String periodNum) {
@@ -54,6 +76,24 @@ public class QualityIndicatorJob extends AbstractJob {
         }
 
     }
+
+    protected void startWorkflow(String tableName, String formKey, String defKey) {
+        String fetchSql = "SELECT id_ FROM %s WHERE shi_fou_guo_shen_='待处理' ";
+        fetchSql = String.format(fetchSql,tableName);
+        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_")}, formKey, defKey);
+            result.getState();
+        }
+    }
+
 }