diff --git a/src/main/java/neatlogic/framework/process/condition/core/IProcessTaskCondition.java b/src/main/java/neatlogic/framework/process/condition/core/IProcessTaskCondition.java index 021a4b04bfd574d805dcd1aac33ea33e0c8f2ec3..2225ce1d6d5372d0b63a4dfc386e4f0b1e879464 100644 --- a/src/main/java/neatlogic/framework/process/condition/core/IProcessTaskCondition.java +++ b/src/main/java/neatlogic/framework/process/condition/core/IProcessTaskCondition.java @@ -51,4 +51,22 @@ public interface IProcessTaskCondition extends IConditionHandler { return getConditionParamData(processTaskStepVo); } + /** + * 获取条件分流需要判断的数据 + * + * @return 数据 + */ + default Object getConditionParamDataNew(ProcessTaskStepVo processTaskStepVo, String formTag) { + return getConditionParamData(processTaskStepVo); + } + + /** + * 获取条件分流需要判断的数据,人性化数据,拥有javascript判断 + * + * @return 数据 + */ + default Object getConditionParamDataForHumanizationNew(ProcessTaskStepVo processTaskStepVo, String formTag) { + return getConditionParamDataNew(processTaskStepVo, formTag); + } + } diff --git a/src/main/java/neatlogic/framework/process/condition/core/ProcessTaskConditionFactory.java b/src/main/java/neatlogic/framework/process/condition/core/ProcessTaskConditionFactory.java index 15b24080885ec24085dd636d2547e7f2b9410af7..06bfc65465cc82cc7e02e4e1f7b6575b97d1fa93 100644 --- a/src/main/java/neatlogic/framework/process/condition/core/ProcessTaskConditionFactory.java +++ b/src/main/java/neatlogic/framework/process/condition/core/ProcessTaskConditionFactory.java @@ -90,6 +90,35 @@ public class ProcessTaskConditionFactory extends ModuleInitializedListenerBase { } return resultObj; } + + public static JSONObject getConditionParamData(ConditionProcessTaskOptions[] options, ProcessTaskStepVo processTaskStepVo, String formTag) { + JSONObject resultObj = new JSONObject(); + for (ConditionProcessTaskOptions option : options) { + IProcessTaskCondition handler = conditionComponentMap.get(option.getValue()); + if (handler != null) { + Object object = handler.getConditionParamDataNew(processTaskStepVo, formTag); + if (object != null) { + resultObj.put(option.getValue(), object); + resultObj.put(option.getText(), handler.getConditionParamDataForHumanizationNew(processTaskStepVo, formTag)); + } + } + } + IProcessTaskCondition handler = conditionComponentMap.get(ProcessFieldType.FORM.getValue()); + if (handler != null) { + Object formObj = handler.getConditionParamDataNew(processTaskStepVo, formTag); + if (formObj != null) { + if (formObj instanceof JSONObject) { + resultObj.putAll((JSONObject) formObj); + } + Object formObjForHumanization = handler.getConditionParamDataForHumanizationNew(processTaskStepVo, formTag); + if (formObjForHumanization instanceof JSONObject) { + resultObj.putAll((JSONObject) formObjForHumanization); + } + } + } + return resultObj; + } + @Override public void onInitialized(NeatLogicWebApplicationContext context) { Map myMap = context.getBeansOfType(IProcessTaskCondition.class); diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverService.java b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverService.java index 8f3f9c2aeebef434deebd9f78d40344832b0f6a3..f09d4282beff28763a4829c5db03794188f6a5bb 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverService.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverService.java @@ -131,6 +131,14 @@ public interface IProcessTaskCrossoverService extends ICrossoverService { */ List getFormAttributeListByProcessTaskIdAngTag(Long processTaskId, String tag); + /** + * 根据工单id获取工单绑定的表单信息 + * @param processTaskId 工单ID + * @param tag 标签 + * @return + */ + List getFormAttributeListByProcessTaskIdAngTagNew(Long processTaskId, String tag); + /** * 根据工单id获取表单属性数据列表 * @param processTaskId 工单id @@ -145,5 +153,13 @@ public interface IProcessTaskCrossoverService extends ICrossoverService { * @return */ List getProcessTaskFormAttributeDataListByProcessTaskIdAndTag(Long processTaskId, String tag); + + /** + * 根据工单id获取表单属性数据列表 + * @param processTaskId 工单id + * @param tag 标签 + * @return + */ + List getProcessTaskFormAttributeDataListByProcessTaskIdAndTagNew(Long processTaskId, String tag); }