Bläddra i källkod

[task-3837]新增员工建议调查表推送定时任务

szjbdgzl 1 år sedan
förälder
incheckning
08007aecf1

+ 3 - 1
ibps-provider-base-root/modules/provider-bpmn-api/src/main/java/com/lc/ibps/bpmn/api/IBpmInstService.java

@@ -255,7 +255,9 @@ public interface IBpmInstService {
 			@NotBlank(message = "{com.lc.ibps.form.formKey}")
 			@RequestParam(name = "formKey", required = true) String formKey,
 			@NotBlank(message = "{com.lc.ibps.bpmn.provider.public.defKey}")
-			@RequestParam(name = "defKey", required = true) String defKey);
+			@RequestParam(name = "defKey", required = true) String defKey,
+			@NotBlank(message = "{com.lc.ibps.bpmn.provider.public.ignoreSkipFirstNode}")
+			@RequestParam(name = "ignoreSkipFirstNode", required = false) String ignoreSkipFirstNode);
 	
 	/**
 	 * 

+ 6 - 1
ibps-provider-root/modules/provider-bpmn/src/main/java/com/lc/ibps/bpmn/provider/BpmInstProvider.java

@@ -1356,7 +1356,9 @@ public class BpmInstProvider extends GenericProvider implements IBpmInstService,
 			@ApiParam(name = "formKey", value = "表单标识", required = true)
 			@RequestParam(name="formKey",required = true) String formKey, 
 			@ApiParam(name = "defKey", value = "流程定义标识", required = true)
-			@RequestParam(name="defKey",required = true)  String defKey) {
+			@RequestParam(name="defKey",required = true)  String defKey,
+			@ApiParam(name = "是否跳过第一步标识")
+			@RequestParam(name = "ignoreSkipFirstNode", required = false) String ignoreSkipFirstNode) {
 		APIResult<String> result = new APIResult<>();
 		try {
 			String saveType = DataSaveMode.TABLE;
@@ -1384,6 +1386,9 @@ public class BpmInstProvider extends GenericProvider implements IBpmInstService,
 						throw new BaseException(boResult.getCause());
 					}
 					cmd = getStartCmd(defKey, "", dataObject.getData(), id);
+					if (BeanUtils.isNotEmpty(ignoreSkipFirstNode)){
+						cmd.addVariable("ignoreSkipFirstNode", StringPool.TRUE);
+					}
 					bpmProcInstService.startProcInst(cmd,null,null,null);
 				}
 				result.setMessage(I18nUtil.getMessage("com.lc.ibps.bpmn.provider.BpmInstProvider.success"));

+ 2 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/sysdata/services/impl/UpdateDataTableImpl.java

@@ -292,7 +292,7 @@ public class UpdateDataTableImpl extends GenericProvider implements UpdateDataTa
 
             int i1 = updateDataTableDao.addDataTable(tableName, dataWhere, dataCond);
             if (i1 > 0) { //保存成功后 、添加流程
-                APIResult<String> stringAPIResult = iBpmInstService.startFlowFromList((String[]) linkedList.get(2), formKey, defKey);
+                APIResult<String> stringAPIResult = iBpmInstService.startFlowFromList((String[]) linkedList.get(2), formKey, defKey,"");
                 if(stringAPIResult.getState()==200){
                     return dataWhere;
                 }else{
@@ -307,7 +307,7 @@ public class UpdateDataTableImpl extends GenericProvider implements UpdateDataTa
     public List addDataContextTable(String tableName, List<LinkedHashMap> paramWhere,String defKey,String formKey,Object type) {
         LinkedList linkedList = serialConfig.addObject(paramWhere);
         List<LinkedHashMap> dataWhere = (List<LinkedHashMap>) linkedList.get(0);
-            APIResult<String> stringAPIResult = iBpmInstService.startFlowFromList((String[]) linkedList.get(2), formKey, defKey);
+            APIResult<String> stringAPIResult = iBpmInstService.startFlowFromList((String[]) linkedList.get(2), formKey, defKey,"");
             if(stringAPIResult.getState()==200){
             return dataWhere;
         }

+ 2 - 2
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/AbstractJob.java

@@ -89,7 +89,7 @@ public abstract class AbstractJob  extends BaseJob2 {
         return ids;
     }
 
-    protected void startWorkflow(String tableName, String formKey, String defKey) {
+    protected void startWorkflow(String tableName, String formKey, String defKey,String ignoreSkipFirstNode) {
         String fetchSql = "SELECT id_ FROM %s WHERE shi_fou_guo_shen_ IS NULL";
         fetchSql = String.format(fetchSql,tableName);
         List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(fetchSql);
@@ -102,7 +102,7 @@ public abstract class AbstractJob  extends BaseJob2 {
         }
         for (Map<String, Object> objectMap : list) {
 
-            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String) objectMap.get("id_")}, formKey, defKey);
+            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String) objectMap.get("id_")}, formKey, defKey, ignoreSkipFirstNode);
             result.getState();
         }
 

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

@@ -169,7 +169,7 @@ public class BinXiangJob extends AbstractJob {
             ContextUtil.setCurrentAccessToken(accessToken);
         }
         for (Map<String, Object> objectMap : list) {
-            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String)objectMap.get("id_")}, "sshjskycljlb", "Process_19ckgrn");
+            APIResult<String> result = bpmInstService.startFlowFromList(new String[]{(String)objectMap.get("id_")}, "sshjskycljlb", "Process_19ckgrn","");
             result.getState();
         }
 

+ 1 - 1
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/EquipmentMaintenancePlanJob.java

@@ -163,7 +163,7 @@ public class EquipmentMaintenancePlanJob  extends AbstractJob {
         insertRecordsFromTemplate("sbjdjzjl");
 
         // 检定/校准计划与实施记录表_子表
-        startWorkflow("t_mjsbjdxzjhzb","jdxzjlb","Process_1drpy0r");
+        startWorkflow("t_mjsbjdxzjhzb","jdxzjlb","Process_1drpy0r","");
     }
 
     // 设备档案增加使用年限字段,并且到期提前1年提醒设备保管人到期,需要进行报废的消息

+ 1 - 1
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/ExternalFileUpdJob.java

@@ -118,7 +118,7 @@ public class ExternalFileUpdJob extends AbstractJob{
         }
 
         // 文件修订流程
-        startWorkflow("t_wjxdzb","wjplxd","Process_1ek5omy_2");
+        startWorkflow("t_wjxdzb","wjplxd","Process_1ek5omy_2","");
 
         String sql2 = "SELECT a.id_ from t_wjxxgxb a, t_wjxxb b ,t_wjxzxdjlb c WHERE a.ji_lu_id_=b.id_ and b.shu_ju_lai_yuan_=c.id_ and  a.shi_fou_guo_shen_ is null";
         List<Map<String, Object>> update = (List<Map<String, Object>>) commonDao.query(sql2);

+ 2 - 2
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/RiskIdentificationJob.java

@@ -28,14 +28,14 @@ public class RiskIdentificationJob extends AbstractJob {
         //step4. update status to 改进中
         updateStatusToGaijingStep();
         //step5. start flow by djbzb id
-        startWorkflow("t_bmfxgjjl","bmfxgjjl", "Process_0jl7e02");
+        startWorkflow("t_bmfxgjjl","bmfxgjjl", "Process_0jl7e02","");
 
         //step 6 创建风险报告
         insertRecordsFromTemplate("fxkz_step6");
         //step 7 update status to 报告编制中
         updateStatusToBaogaoStep();
         //step 8 启动风险报告流程
-        startWorkflow("t_fxkzbg","fxbg", "Process_0mrlsj7");
+        startWorkflow("t_fxkzbg","fxbg", "Process_0mrlsj7","");
 
         //step 9 update status to 已完成
         updateStatusToWanchengStep();

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

@@ -0,0 +1,89 @@
+package com.lc.ibps.platform.plan.job;
+
+import com.lc.ibps.api.base.model.User;
+import com.lc.ibps.base.core.constants.StringPool;
+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.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.bpmn.api.IBpmInstService;
+import com.lc.ibps.cloud.entity.APIResult;
+import com.lc.ibps.org.party.persistence.entity.DefaultPartyUserPo;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class TenMinutesJob extends AbstractJob{
+
+    private static final Logger logger = LoggerFactory.getLogger(TenMinutesJob.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()));
+
+        // 开启 员工建议调查表 流程
+        startYgjydcbFlow();
+
+    }
+
+    private void startYgjydcbFlow() throws Exception {
+        String fetchSql = "SELECT *from t_ygjydcbz WHERE shi_fou_guo_shen_='未开始' and DATE_FORMAT(diao_cha_shi_jian,'%Y-%m-%d')=CURRENT_DATE";
+        List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(fetchSql);
+        if (BeanUtils.isEmpty(list)) return;
+        IBpmInstService bpmInstService = AppUtil.getBean(IBpmInstService.class);
+        for (Map<String, Object> map : list) {
+            if (BeanUtils.isEmpty(map.get("diao_cha_ren_yuan")))continue;
+            String[] ids = map.get("diao_cha_ren_yuan").toString().split(",");
+            for (String bian_zhi_ren_ : ids) {
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                String formattedNow = LocalDateTime.now().format(formatter);
+                Map<String, Object> data = new HashMap<>();
+                String id = UniqueIdUtil.getId();
+                data.put("id_", id);
+                data.put("parent_id_",map.get("id_"));
+                data.put("di_dian_",map.get("di_dian_"));
+                data.put("bian_zhi_bu_men_",map.get("bian_zhi_bu_men_"));
+                data.put("bian_zhi_ren_",bian_zhi_ren_);
+                data.put("create_by_",bian_zhi_ren_);
+                data.put("bian_zhi_shi_jian", formattedNow);
+                commonDao.execute(buildInsertSql(data,"t_ygjydcb"));
+
+                if (StringUtils.isBlank(ContextUtil.getCurrentAccessToken())) {
+                    ITenantTokenService tenantTokenService = AppUtil.getBean(ITenantTokenService.class);
+                    String accessToken = tenantTokenService.getAccessToken();
+                    ContextUtil.setCurrentAccessToken(accessToken);
+                }
+                APIResult<String> result = bpmInstService.startFlowFromList(new String[]{id}, "ygjydcb","Process_1kegx84", StringPool.TRUE);
+                if (result.getState()==200){
+                    String updSql = "update t_ygjydcbz set shi_fou_guo_shen_='调查中' where id_ ='"+id+"'";
+                    commonDao.execute(updSql);
+                }
+            }
+        }
+        String idString = list.stream()
+                .map(map -> map.get("id_"))
+                .filter(Objects::nonNull)
+                .map(Object::toString)
+                .collect(Collectors.joining(","));
+        String updSql = "update t_ygjydcbz set shi_fou_guo_shen_='调查中' where id_ in ("+idString+")";
+        commonDao.execute(updSql);
+    }
+
+}