Explorar el Código

[task-6326] 第三方对接定时任务启动流程时增加UNDO_FLAG来区分同一张表启动不同流程

huangws hace 4 días
padre
commit
a918ceadbb

+ 27 - 11
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/ThirdPartyWorkflowJob.java

@@ -22,6 +22,7 @@ public class ThirdPartyWorkflowJob extends AbstractJob{
     public static final String FORM_KEY = "FORM_KEY";
     public static final String DEF_KEY = "DEF_KEY";
     public static final String NODE_NUM = "NODE_NUM";
+    public static final String UNDO_FLAG = "UNDO_FLAG";
 
     private static final Logger logger = LoggerFactory.getLogger(QualityIndicatorJob.class);
     @Override
@@ -32,12 +33,18 @@ public class ThirdPartyWorkflowJob extends AbstractJob{
                 context.getJobDetail().getKey().getName(),
                 context.getTrigger().getKey().getName());
         logger.warn("jobDataMap=is {}.", JacksonUtil.toJsonString(dataMap.getWrappedMap()));
-        String[] tableNameAry  = dataMap.getString(TABLE_NAME).split(";");
-        String[] formKeyAry = dataMap.getString(FORM_KEY).split(";");
-        String[] defKeyAry = dataMap.getString(DEF_KEY).split(";");
-        String[] nodeNumAry = dataMap.getString(NODE_NUM).split(";");
-        splitAry(tableNameAry,formKeyAry, defKeyAry,nodeNumAry);
 
+        String tableNameStr = dataMap.getString(TABLE_NAME);
+        String[] tableNameAry = (tableNameStr != null) ? tableNameStr.split(";") : null;
+        String formKeyStr = dataMap.getString(FORM_KEY);
+        String[] formKeyAry = (formKeyStr != null) ? formKeyStr.split(";") : null;
+        String defKeyStr = dataMap.getString(DEF_KEY);
+        String[] defKeyAry = (defKeyStr != null) ? defKeyStr.split(";") : null;
+        String nodeNumStr = dataMap.getString(NODE_NUM);
+        String[] nodeNumAry = (nodeNumStr != null) ? nodeNumStr.split(";") : null;
+        String undoFlagStr = dataMap.getString(UNDO_FLAG);
+        String[] undoFlagAry = (undoFlagStr != null) ? undoFlagStr.split(";") : null;
+        splitAry(tableNameAry,formKeyAry, defKeyAry,nodeNumAry,undoFlagAry);
     }
 
     /**
@@ -46,30 +53,39 @@ public class ThirdPartyWorkflowJob extends AbstractJob{
      * TABLE_NAME:t_dlxmsnzkyfx;t_fjbbjlb
      * FORM_KEY:dlxmsnzkyfxzjbg;fjbbjlb
      * DEF_KEY:Process_1cauof8;Process_0mg6v16
+     * NODE_NUM:
+     * UNDO_FLAG:
      *
      * @param tableNameAry
      * @param formKeyAry
      * @param defKeyAry
+     * @param nodeNumAry
+     * @param undoFlagAry
      */
-    private void splitAry(String[] tableNameAry, String[] formKeyAry, String[] defKeyAry, String[] nodeNumAry) {
+    private void splitAry(String[] tableNameAry, String[] formKeyAry, String[] defKeyAry, String[] nodeNumAry, String[] undoFlagAry) {
         for (int i = 0; i < tableNameAry.length; i++) {
             String tableName = tableNameAry[i];
             String formKey = formKeyAry[i];
             String defKey = defKeyAry[i];
             String nodeNum = nodeNumAry[i];
+            String undoFlag = "待处理";
+            if (undoFlagAry != null && i < undoFlagAry.length) {
+                undoFlag = undoFlagAry[i];
+            }
             if(tableName != null && !tableName.isEmpty() &&
                     formKey != null && !formKey.isEmpty() &&
                     defKey != null && !defKey.isEmpty()&&
-                    nodeNum != null && !nodeNum.isEmpty()) {
-                logger.warn("Ready Start Workflow:tableName={},formKey={},defKey={},nodeNum={}", tableName, formKey, defKey, nodeNum);
-                startWorkflow(tableName,formKey,defKey, Integer.parseInt(nodeNum));
+                    nodeNum != null && !nodeNum.isEmpty()&&
+                    undoFlag != null && !undoFlag.isEmpty()) {
+                logger.warn("Ready Start Workflow:tableName={},formKey={},defKey={},nodeNum={},undoFlag={}", tableName, formKey, defKey, nodeNum, undoFlag);
+                startWorkflow(tableName,formKey,defKey, Integer.parseInt(nodeNum), undoFlag);
             }
         }
 
     }
 
-    protected void startWorkflow(String tableName, String formKey, String defKey, Integer nodeNum) {
-        String fetchSql = "SELECT id_ FROM %s WHERE shi_fou_guo_shen_='待推送'";
+    protected void startWorkflow(String tableName, String formKey, String defKey, Integer nodeNum, String undoFlag) {
+        String fetchSql = "SELECT id_ FROM %s WHERE shi_fou_guo_shen_='"+undoFlag+"'";
         fetchSql = String.format(fetchSql,tableName);
         List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(fetchSql);
         if (BeanUtils.isEmpty(list)) return;