diff --git a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java index f51842c6014f11476cfdcc71e9461cf2f7c80328..b8a5bd356458b8bfa9d290a6fda10025044ec6fc 100644 --- a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java +++ b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java @@ -112,29 +112,38 @@ public class ProcessTaskFormAttributeCondition extends ProcessTaskConditionBase IFormAttributeDataConversionHandler formAttributeHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttribute.getHandler()); if (formAttributeHandler != null) { - AttributeDataVo attributeDataVo = new AttributeDataVo(); - attributeDataVo.setAttributeUuid(attributeUuid); - if (value instanceof String) { - attributeDataVo.setData((String) value); - } else if (value instanceof JSONArray) { - attributeDataVo.setData(JSON.toJSONString(value)); - } - Object text = formAttributeHandler.valueConversionText(attributeDataVo, - JSON.parseObject(formAttribute.getConfig())); - if (text instanceof String) { - return text; - } else if (text instanceof List) { - List textList = JSON.parseArray(JSON.toJSONString(text), String.class); - if ("formdate".equals(formAttribute.getHandler()) - || "formtime".equals(formAttribute.getHandler())) { + if (Objects.equal(formAttribute.getHandler(), FormHandler.FORMDATE.getHandler()) + || Objects.equal(formAttribute.getHandler(), FormHandler.FORMTIME.getHandler())) { + if (value instanceof String) { + return value; + } else if (value instanceof JSONArray) { + List textList = ((JSONArray) value).toJavaList(String.class); return String.join("-", textList); - } else if ("formcascadelist".equals(formAttribute.getHandler())) { - return String.join("/", textList); - } else { - return String.join("、", textList); } + } else { + AttributeDataVo attributeDataVo = new AttributeDataVo(); + attributeDataVo.setAttributeUuid(attributeUuid); + attributeDataVo.setType(formAttribute.getHandler()); + if (value instanceof String) { + attributeDataVo.setData((String) value); + } else if (value instanceof JSONArray) { + attributeDataVo.setData(JSON.toJSONString(value)); + } + + Object text = formAttributeHandler.valueConversionText(attributeDataVo, + JSON.parseObject(formAttribute.getConfig())); + if (text instanceof String) { + return text; + } else if (text instanceof List) { + List textList = JSON.parseArray(JSON.toJSONString(text), String.class); + if (FormHandler.FORMCASCADER.getHandler().equals(formAttribute.getHandler())) { + return String.join("/", textList); + } else { + return String.join("、", textList); + } + } + return text; } - return text; } } } diff --git a/src/main/java/neatlogic/module/process/stephandler/component/ConditionProcessComponent.java b/src/main/java/neatlogic/module/process/stephandler/component/ConditionProcessComponent.java index db75750ffde6192bcfa5860453fa872077052d60..269bae37c7355d8d87c5120e1db31f4003d8ae1d 100644 --- a/src/main/java/neatlogic/module/process/stephandler/component/ConditionProcessComponent.java +++ b/src/main/java/neatlogic/module/process/stephandler/component/ConditionProcessComponent.java @@ -16,6 +16,9 @@ package neatlogic.module.process.stephandler.component; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONPath; import neatlogic.framework.asynchronization.threadlocal.ConditionParamContext; import neatlogic.framework.asynchronization.threadlocal.UserContext; import neatlogic.framework.common.constvalue.SystemUser; @@ -30,10 +33,6 @@ import neatlogic.framework.process.exception.processtask.ProcessTaskException; import neatlogic.framework.process.stephandler.core.ProcessStepHandlerBase; import neatlogic.framework.util.RunScriptUtil; import neatlogic.framework.util.javascript.JavascriptUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSONPath; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -133,24 +132,20 @@ public class ConditionProcessComponent extends ProcessStepHandlerBase { JSONArray conditionGroupList = moveonConfig.getJSONArray("conditionGroupList"); if (CollectionUtils.isNotEmpty(conditionGroupList)) { JSONObject conditionParamData = ProcessTaskConditionFactory.getConditionParamData(conditionProcessTaskOptions, currentProcessTaskStepVo); -// ProcessTaskVo processTaskVo = processTaskService.getProcessTaskDetailById(currentProcessTaskStepVo.getProcessTaskId()); -// processTaskVo.setStartProcessTaskStep(processTaskService.getStartProcessTaskStepByProcessTaskId(processTaskVo.getId())); -// processTaskVo.setCurrentProcessTaskStep(currentProcessTaskStepVo); -// JSONObject conditionParamData = ProcessTaskUtil.getProcessFieldData(processTaskVo, true); + ConditionConfigVo conditionConfigVo = null; try { -// ConditionParamContext.init(conditionParamData).setFormConfig(processTaskVo.getFormConfig()).setTranslate(true); ConditionParamContext.init(conditionParamData).setTranslate(true); - ConditionConfigVo conditionConfigVo = new ConditionConfigVo(moveonConfig); + conditionConfigVo = new ConditionConfigVo(moveonConfig); String script = conditionConfigVo.buildScript(); // ((false || true) || (true && false) || (true || false)) - // System.out.println(JSON.toJSONString(conditionConfigVo)); canRun = RunScriptUtil.runScript(script); - ruleObj.putAll(JSON.parseObject(JSON.toJSONString(conditionConfigVo))); ruleObj.put("result", canRun); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { ConditionParamContext.get().release(); + ruleObj.put("conditionGroupList", conditionConfigVo.getConditionGroupList()); + ruleObj.put("conditionGroupRelList", conditionConfigVo.getConditionGroupRelList()); } } } else {