From e43693db1eab8dbd8cf16f51cea79d1168b37585 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 15 Nov 2024 16:45:18 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E8=87=AA=E5=8A=A8=E5=8C=96=E8=8A=82?= =?UTF-8?q?=E7=82=B9-=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85-=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=8F=82=E6=95=B0=E8=B5=8B=E5=80=BC=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1287550214307840]流程管理-自动化节点-作业详情-作业参数赋值新增选项 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1287550214307840 --- ...ocessTaskOwnerDepartmentPathCondition.java | 142 ++++++++++++++++++ .../handler/ProcessTaskStepNameCondition.java | 21 ++- 2 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 src/main/java/neatlogic/module/process/condition/handler/ProcessTaskOwnerDepartmentPathCondition.java diff --git a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskOwnerDepartmentPathCondition.java b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskOwnerDepartmentPathCondition.java new file mode 100644 index 000000000..64ede34ec --- /dev/null +++ b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskOwnerDepartmentPathCondition.java @@ -0,0 +1,142 @@ +/*Copyright (C) $today.year 深圳极向量科技有限公司 All Rights Reserved. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see .*/ + +package neatlogic.module.process.condition.handler; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.common.constvalue.FormHandlerType; +import neatlogic.framework.common.constvalue.ParamType; +import neatlogic.framework.common.constvalue.TeamLevel; +import neatlogic.framework.dao.mapper.TeamMapper; +import neatlogic.framework.dto.TeamVo; +import neatlogic.framework.form.constvalue.FormConditionModel; +import neatlogic.framework.process.condition.core.IProcessTaskCondition; +import neatlogic.framework.process.condition.core.ProcessTaskConditionBase; +import neatlogic.framework.process.constvalue.ConditionConfigType; +import neatlogic.framework.process.constvalue.ProcessFieldType; +import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskVo; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +@Component +public class ProcessTaskOwnerDepartmentPathCondition extends ProcessTaskConditionBase implements IProcessTaskCondition { + + @Resource + private ProcessTaskMapper processTaskMapper; + + @Resource + private TeamMapper teamMapper; + + @Override + public String getName() { + return "ownerdepartmentpath"; + } + + @Override + public String getDisplayName() { + return "上报人部门(完整)"; + } + + @Override + public String getHandler(FormConditionModel processWorkcenterConditionType) { + return FormHandlerType.SELECT.toString(); + } + + @Override + public String getType() { + return ProcessFieldType.COMMON.getValue(); + } + + @Override + public JSONObject getConfig(ConditionConfigType type) { + JSONObject config = new JSONObject(); + config.put("type", FormHandlerType.SELECT.toString()); + config.put("search", true); + config.put("dynamicUrl", "/api/rest/team/list/forselect?level=department"); + config.put("rootName", "tbodyList"); + config.put("valueName", "uuid"); + config.put("textName", "name"); + config.put("multiple", true); + config.put("value", ""); + config.put("defaultValue", ""); + /** 以下代码是为了兼容旧数据结构,前端有些地方还在用 **/ + config.put("isMultiple", true); + JSONObject mappingObj = new JSONObject(); + mappingObj.put("value", "uuid"); + mappingObj.put("text", "name"); + config.put("mapping", mappingObj); + return config; + } + + @Override + public Integer getSort() { + return 11; + } + + @Override + public ParamType getParamType() { + return ParamType.ARRAY; + } + + @Override + public Object valueConversionText(Object value, JSONObject config) { + if (value != null) { + if (value instanceof List) { + List valueList = JSON.parseArray(JSON.toJSONString(value), String.class); + return String.join("、", valueList); + } + } + return value; + } + + @Override + public Object getConditionParamData(ProcessTaskStepVo processTaskStepVo) { + ProcessTaskVo processTaskVo = processTaskMapper.getProcessTaskById(processTaskStepVo.getProcessTaskId()); + if (processTaskVo == null) { + return null; + } + List teamUuidList = teamMapper.getTeamUuidListByUserUuid(processTaskVo.getOwner()); + if (CollectionUtils.isNotEmpty(teamUuidList)) { + Set upwardUuidSet = new HashSet<>(); + List teamList = teamMapper.getTeamByUuidList(teamUuidList); + for (TeamVo teamVo : teamList) { + String upwardUuidPath = teamVo.getUpwardUuidPath(); + if (StringUtils.isNotBlank(upwardUuidPath)) { + String[] upwardUuidArray = upwardUuidPath.split(","); + Collections.addAll(upwardUuidSet, upwardUuidArray); + } + } + if (CollectionUtils.isNotEmpty(upwardUuidSet)) { + JSONArray departmentPathList = new JSONArray(); + List upwardTeamList = teamMapper.getTeamByUuidList(new ArrayList<>(upwardUuidSet)); + for (TeamVo teamVo : upwardTeamList) { + if (TeamLevel.DEPARTMENT.getValue().equals(teamVo.getLevel())) { + departmentPathList.add(teamVo.getUpwardNamePath()); + } + } + return departmentPathList; + } + } + return null; + } +} diff --git a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskStepNameCondition.java b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskStepNameCondition.java index 64588bf63..e8aff5c4f 100644 --- a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskStepNameCondition.java +++ b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskStepNameCondition.java @@ -10,19 +10,25 @@ import neatlogic.framework.process.condition.core.ProcessTaskConditionBase; import neatlogic.framework.process.constvalue.ConditionConfigType; import neatlogic.framework.process.constvalue.ProcessFieldType; import neatlogic.framework.process.constvalue.ProcessTaskConditionType; +import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.SqlDecoratorVo; import neatlogic.framework.process.workcenter.dto.JoinOnVo; import neatlogic.framework.process.workcenter.dto.JoinTableColumnVo; import neatlogic.framework.process.workcenter.table.ProcessTaskSqlTable; import neatlogic.framework.process.workcenter.table.ProcessTaskStepSqlTable; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Objects; @Component public class ProcessTaskStepNameCondition extends ProcessTaskConditionBase implements IProcessTaskCondition { + @Resource + private ProcessTaskMapper processTaskMapper; @Override public String getName() { @@ -81,7 +87,7 @@ public class ProcessTaskStepNameCondition extends ProcessTaskConditionBase imple @Override public Object valueConversionText(Object value, JSONObject config) { - return null; + return value; } @Override @@ -104,4 +110,17 @@ public class ProcessTaskStepNameCondition extends ProcessTaskConditionBase imple public boolean isShow(JSONObject object, String type) { return !Objects.equals(type, ProcessTaskConditionType.WORKCENTER.getValue()); } + + @Override + public Object getConditionParamData(ProcessTaskStepVo processTaskStepVo) { + String stepName = processTaskStepVo.getName(); + if (StringUtils.isBlank(stepName) && processTaskStepVo.getId() != null) { + ProcessTaskStepVo stepVo = processTaskMapper.getProcessTaskStepBaseInfoById(processTaskStepVo.getId()); + if (stepVo != null) { + stepName = stepVo.getName(); + processTaskStepVo.setName(stepName); + } + } + return stepName; + } } -- Gitee