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