diff --git a/src/main/java/neatlogic/module/process/api/process/ProcessNotifyPolicyParamList.java b/src/main/java/neatlogic/module/process/api/process/ProcessNotifyPolicyParamList.java deleted file mode 100644 index 772d27480d5ab0e880dbb9db66da3c92b31c8716..0000000000000000000000000000000000000000 --- a/src/main/java/neatlogic/module/process/api/process/ProcessNotifyPolicyParamList.java +++ /dev/null @@ -1,86 +0,0 @@ -package neatlogic.module.process.api.process; - -import com.alibaba.fastjson.JSONObject; -import neatlogic.framework.auth.core.AuthAction; -import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.dto.ConditionParamVo; -import neatlogic.framework.notify.core.INotifyPolicyHandler; -import neatlogic.framework.notify.core.NotifyPolicyHandlerFactory; -import neatlogic.framework.notify.exception.NotifyPolicyHandlerNotFoundException; -import neatlogic.framework.process.auth.PROCESS; -import neatlogic.framework.restful.annotation.*; -import neatlogic.framework.restful.constvalue.OperationTypeEnum; -import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -@Service -@AuthAction(action = PROCESS.class) -@OperationType(type = OperationTypeEnum.SEARCH) -public class ProcessNotifyPolicyParamList extends PrivateApiComponentBase { - - - @Override - public String getToken() { - return "process/notify/policy/param/list"; - } - - @Override - public String getName() { - return "流程通知策略参数列表接口"; - } - - @Override - public String getConfig() { - return null; - } - - @Input({ - @Param(name = "notifyPolicyHandler", type = ApiParamType.STRING, isRequired = true, desc = "通知策略处理器"), -// @Param(name = "formUuid", type = ApiParamType.STRING, desc = "流程绑定表单的uuid") - }) - @Output({ - @Param(name = "tbodyList", explode = ConditionParamVo[].class, desc = "流程通知策略参数列表") - }) - @Description(desc = "流程通知策略参数列表接口") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - String notifyPolicyHandler = jsonObj.getString("notifyPolicyHandler"); - INotifyPolicyHandler handler = NotifyPolicyHandlerFactory.getHandler(notifyPolicyHandler); - if (handler == null) { - throw new NotifyPolicyHandlerNotFoundException(notifyPolicyHandler); - } - List systemParamList = handler.getSystemParamList(); - systemParamList.sort((e1, e2) -> e1.getName().compareToIgnoreCase(e2.getName())); - List paramList = new ArrayList<>(systemParamList); - // 表单条件 -// String formUuid = jsonObj.getString("formUuid"); -// if (StringUtils.isNotBlank(formUuid)) { -// List formAttrList = formMapper.getFormAttributeList(new FormAttributeVo(formUuid)); -// for (FormAttributeVo formAttributeVo : formAttrList) { -// IFormAttributeHandler formHandler = FormAttributeHandlerFactory.getHandler(formAttributeVo.getHandler()); -// if (formHandler == null) { -// continue; -// } -// if (formHandler.isConditionable()) { -// ConditionParamVo conditionParamVo = new ConditionParamVo(); -// conditionParamVo.setName(formAttributeVo.getUuid()); -// conditionParamVo.setLabel(formAttributeVo.getLabel()); -// if (formHandler.getParamType() != null) { -// conditionParamVo.setParamType(formHandler.getParamType().getName()); -// conditionParamVo.setParamTypeName(formHandler.getParamType().getText()); -// } -// conditionParamVo.setIsEditable(0); -// conditionParamVo.setType("form"); -// paramList.add(conditionParamVo); -// } -// } -// } - JSONObject resultObj = new JSONObject(); - resultObj.put("tbodyList", paramList); - return resultObj; - } - -} diff --git a/src/main/java/neatlogic/module/process/api/processtask/manualintervention/ActiveProcessTaskStepApi.java b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/ActiveProcessTaskStepApi.java new file mode 100644 index 0000000000000000000000000000000000000000..6cf7fd31a43f17c698e7eb85a74ed88c8f6b4d47 --- /dev/null +++ b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/ActiveProcessTaskStepApi.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2024 深圳极向量科技有限公司 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.api.processtask.manualintervention; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.process.auth.PROCESSTASK_MODIFY; +import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskVo; +import neatlogic.framework.process.stephandler.core.IProcessStepHandler; +import neatlogic.framework.process.stephandler.core.ProcessStepHandlerFactory; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.process.service.ProcessTaskService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@OperationType(type = OperationTypeEnum.UPDATE) +@AuthAction(action = PROCESSTASK_MODIFY.class) +public class ActiveProcessTaskStepApi extends PrivateApiComponentBase { + + @Resource + private ProcessTaskService processTaskService; + + @Override + public String getName() { + return "nmpapm.activeprocesstaskstepapi.getname"; + } + + @Input({ + @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskid"), + @Param(name = "processTaskStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskstepid"), + }) + @Output({}) + @Description(desc = "nmpapm.activeprocesstaskstepapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long processTaskId = paramObj.getLong("processTaskId"); + Long processTaskStepId = paramObj.getLong("processTaskStepId"); + ProcessTaskVo processTaskVo = processTaskService.checkProcessTaskParamsIsLegal(processTaskId, processTaskStepId); + ProcessTaskStepVo currentProcessTaskStep = processTaskVo.getCurrentProcessTaskStep(); + IProcessStepHandler processStepHandler = ProcessStepHandlerFactory.getHandler(currentProcessTaskStep.getHandler()); + processStepHandler.active(currentProcessTaskStep); + return null; + } + + @Override + public String getToken() { + return "manualintervention/processtask/step/active"; + } +} diff --git a/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java new file mode 100644 index 0000000000000000000000000000000000000000..03d254e9c9aacc3992ded8f6e5eeffa43fe13aa6 --- /dev/null +++ b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2024 深圳极向量科技有限公司 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.api.processtask.manualintervention; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.process.auth.PROCESSTASK_MODIFY; +import neatlogic.framework.process.dto.*; +import neatlogic.framework.process.exception.process.ProcessNotFoundException; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.process.dao.mapper.process.ProcessMapper; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import neatlogic.module.process.service.ProcessTaskService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.DigestUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +@OperationType(type = OperationTypeEnum.UPDATE) +@AuthAction(action = PROCESSTASK_MODIFY.class) +public class UpdateProcessTaskConfigApi extends PrivateApiComponentBase { + + @Resource + private ProcessTaskService processTaskService; + + @Resource + private ProcessMapper processMapper; + + @Resource + private ProcessTaskMapper processTaskMapper; + + @Override + public String getName() { + return "nmpapm.updateprocesstaskconfigapi.getname"; + } + + @Input({ + @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskid"), + @Param(name = "processUuid", type = ApiParamType.LONG, desc = "term.itsm.processuuid"), + }) + @Output({}) + @Description(desc = "nmpapm.updateprocesstaskconfigapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long processTaskId = paramObj.getLong("processTaskId"); + ProcessTaskVo processTaskVo = processTaskService.checkProcessTaskParamsIsLegal(processTaskId); + String processUuid = paramObj.getString("processUuid"); + if (StringUtils.isBlank(processUuid)) { + processUuid = processTaskVo.getProcessUuid(); + } + ProcessVo processVo = processMapper.getProcessByUuid(processUuid); + if (processVo == null) { + throw new ProcessNotFoundException(processUuid); + } + String configStr = processVo.getConfigStr(); + String configHash = DigestUtils.md5DigestAsHex(configStr.getBytes()); + ProcessTaskConfigVo processTaskConfigVo = new ProcessTaskConfigVo(); + processTaskConfigVo.setConfig(configStr); + processTaskConfigVo.setHash(configHash); + processTaskMapper.insertIgnoreProcessTaskConfig(processTaskConfigVo); + processTaskMapper.updateProcessTaskConfigHashById(processTaskId, configHash); + List processTaskStepList = processTaskMapper.getProcessTaskStepListByProcessTaskId(processTaskId); + Map processStepUuid2IdMap = processTaskStepList.stream().collect(Collectors.toMap(ProcessTaskStepVo::getProcessStepUuid, ProcessTaskStepVo::getId)); + JSONObject config = JSONObject.parseObject(configStr); + JSONObject process = config.getJSONObject("process"); + JSONArray stepList = process.getJSONArray("stepList"); + if (CollectionUtils.isNotEmpty(stepList)) { + for (int i = 0; i < stepList.size(); i++) { + JSONObject stepObj = stepList.getJSONObject(i); + if (MapUtils.isNotEmpty(stepObj)) { + String uuid = stepObj.getString("uuid"); + Long processTaskStepId = processStepUuid2IdMap.get(uuid); + if (processTaskStepId == null) { + continue; + } + JSONObject stepConfigObj = stepObj.getJSONObject("stepConfig"); + String stepConfig = stepConfigObj.toJSONString(); + String stepConfigHash = DigestUtils.md5DigestAsHex(stepConfig.getBytes()); + processTaskMapper.insertIgnoreProcessTaskStepConfig(new ProcessTaskStepConfigVo(stepConfigHash, stepConfig)); + processTaskMapper.updateProcessTaskStepConfigHashByProcessTaskIdAndProcessStepUuid(processTaskId, uuid, stepConfigHash); + processTaskMapper.deleteProcessTaskStepWorkerPolicyByProcessTaskStepId(processTaskStepId); + JSONObject workerPolicyConfig = stepConfigObj.getJSONObject("workerPolicyConfig"); + if (MapUtils.isNotEmpty(workerPolicyConfig)) { + JSONArray policyList = workerPolicyConfig.getJSONArray("policyList"); + if (CollectionUtils.isNotEmpty(policyList)) { + List workerPolicyList = new ArrayList<>(); + for (int k = 0; k < policyList.size(); k++) { + JSONObject policyObj = policyList.getJSONObject(k); + if (!"1".equals(policyObj.getString("isChecked"))) { + continue; + } + ProcessTaskStepWorkerPolicyVo processStepWorkerPolicyVo = new ProcessTaskStepWorkerPolicyVo(); + processStepWorkerPolicyVo.setProcessTaskId(processTaskId); + processStepWorkerPolicyVo.setProcessTaskStepId(processTaskStepId); + processStepWorkerPolicyVo.setProcessStepUuid(uuid); + processStepWorkerPolicyVo.setPolicy(policyObj.getString("type")); + processStepWorkerPolicyVo.setSort(k + 1); + processStepWorkerPolicyVo.setConfig(policyObj.getString("config")); + workerPolicyList.add(processStepWorkerPolicyVo); + } + if (CollectionUtils.isNotEmpty(workerPolicyList)) { + processTaskMapper.insertProcessTaskStepWorkerPolicyList(workerPolicyList); + } + } + } + } + } + } + return null; + } + + @Override + public String getToken() { + return "manualintervention/processtask/config/update"; + } +} diff --git a/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskFormConfigApi.java b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskFormConfigApi.java new file mode 100644 index 0000000000000000000000000000000000000000..51bbc9ed8c74e61d837d201e22de6d2bf761140a --- /dev/null +++ b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskFormConfigApi.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2024 深圳极向量科技有限公司 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.api.processtask.manualintervention; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.form.dao.mapper.FormMapper; +import neatlogic.framework.form.dto.FormVersionVo; +import neatlogic.framework.form.exception.FormActiveVersionNotFoundExcepiton; +import neatlogic.framework.process.auth.PROCESSTASK_MODIFY; +import neatlogic.framework.process.dto.ProcessTaskFormVo; +import neatlogic.framework.process.dto.ProcessTaskVo; +import neatlogic.framework.process.dto.ProcessVo; +import neatlogic.framework.process.exception.process.ProcessNotFoundException; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.process.dao.mapper.process.ProcessMapper; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import neatlogic.module.process.service.ProcessTaskService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.DigestUtils; + +import javax.annotation.Resource; + +@Service +@OperationType(type = OperationTypeEnum.UPDATE) +@AuthAction(action = PROCESSTASK_MODIFY.class) +public class UpdateProcessTaskFormConfigApi extends PrivateApiComponentBase { + + @Resource + private ProcessTaskService processTaskService; + + @Resource + private ProcessMapper processMapper; + + @Resource + private FormMapper formMapper; + + @Resource + private ProcessTaskMapper processTaskMapper; + + @Override + public String getName() { + return "nmpapm.updateprocesstaskformconfigapi.getname"; + } + + @Input({ + @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskid"), + @Param(name = "formUuid", type = ApiParamType.LONG, desc = "term.framework.formuuid"), + }) + @Output({}) + @Description(desc = "nmpapm.updateprocesstaskformconfigapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long processTaskId = paramObj.getLong("processTaskId"); + ProcessTaskVo processTaskVo = processTaskService.checkProcessTaskParamsIsLegal(processTaskId); + String formUuid = paramObj.getString("formUuid"); + if (StringUtils.isBlank(formUuid)) { + ProcessVo processVo = processMapper.getProcessByUuid(processTaskVo.getProcessUuid()); + if (processVo == null) { + throw new ProcessNotFoundException(processTaskVo.getProcessUuid()); + } + formUuid = processVo.getFormUuid(); + } + if (StringUtils.isNotBlank(formUuid)) { + FormVersionVo formVersion = formMapper.getActionFormVersionByFormUuid(formUuid); + if (formVersion == null) { + throw new FormActiveVersionNotFoundExcepiton(formUuid); + } + String formContent = formVersion.getFormConfigStr(); + String formContentHash = DigestUtils.md5DigestAsHex(formContent.getBytes()); + ProcessTaskFormVo processTaskFormVo = new ProcessTaskFormVo(); + processTaskFormVo.setFormContent(formContent); + processTaskFormVo.setFormContentHash(formContentHash); + processTaskMapper.insertIgnoreProcessTaskFormContent(processTaskFormVo); + + processTaskMapper.deleteProcessTaskFormByProcessTaskId(processTaskId); + processTaskFormVo.setProcessTaskId(processTaskId); + processTaskFormVo.setFormUuid(formUuid); + processTaskFormVo.setFormName(formVersion.getFormName()); + processTaskMapper.insertProcessTaskForm(processTaskFormVo); + } + return null; + } + + @Override + public String getToken() { + return "manualintervention/processtask/form/config/update"; + } +} diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepStatusChangeApi.java b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskStepStatusApi.java similarity index 85% rename from src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepStatusChangeApi.java rename to src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskStepStatusApi.java index d27921e79459dc36386f07a2b4d586f7c9d96f48..a0b4fc8c240a2c522c7707faa448375f1baa5fd9 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepStatusChangeApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskStepStatusApi.java @@ -1,37 +1,24 @@ -/*Copyright (C) 2024 深圳极向量科技有限公司 All Rights Reserved. +/* + * Copyright (C) 2024 深圳极向量科技有限公司 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 . + */ -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.api.processtask; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.Consumer; - -import neatlogic.framework.process.constvalue.*; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +package neatlogic.module.process.api.processtask.manualintervention; import com.alibaba.fastjson.JSONObject; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; - import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.constvalue.GroupSearch; @@ -39,30 +26,34 @@ import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.dto.UserVo; import neatlogic.framework.exception.type.ParamNotExistsException; import neatlogic.framework.exception.user.UserNotFoundException; -import neatlogic.framework.process.auth.PROCESS_BASE; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; -import neatlogic.framework.process.dto.ProcessTaskStepRelVo; -import neatlogic.framework.process.dto.ProcessTaskStepUserVo; -import neatlogic.framework.process.dto.ProcessTaskStepVo; -import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; -import neatlogic.framework.process.dto.ProcessTaskVo; -import neatlogic.framework.process.exception.processtask.ProcessTaskNextStepIllegalException; -import neatlogic.framework.process.exception.processtask.ProcessTaskNextStepNameOrIdUnAssignException; -import neatlogic.framework.process.exception.processtask.ProcessTaskStepFoundMultipleException; -import neatlogic.framework.process.exception.processtask.ProcessTaskStepNotFoundException; -import neatlogic.framework.process.exception.processtask.ProcessTaskStepUserUnAssignException; +import neatlogic.framework.process.auth.PROCESSTASK_MODIFY; +import neatlogic.framework.process.constvalue.*; +import neatlogic.framework.process.dto.*; +import neatlogic.framework.process.exception.processtask.*; import neatlogic.framework.restful.annotation.Description; import neatlogic.framework.restful.annotation.Input; import neatlogic.framework.restful.annotation.OperationType; import neatlogic.framework.restful.annotation.Param; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; @Service -@AuthAction(action = PROCESS_BASE.class) +@AuthAction(action = PROCESSTASK_MODIFY.class) @Transactional @OperationType(type = OperationTypeEnum.OPERATE) -public class ProcessTaskStepStatusChangeApi extends PrivateApiComponentBase { +public class UpdateProcessTaskStepStatusApi extends PrivateApiComponentBase {// @Resource private ProcessTaskMapper processTaskMapper; @@ -72,12 +63,12 @@ public class ProcessTaskStepStatusChangeApi extends PrivateApiComponentBase { @Override public String getToken() { - return "processtask/step/status/change"; + return "manualintervention/processtask/step/status/update"; } @Override public String getName() { - return "手动更改工单步骤状态"; + return "nmpapm.updateprocesstaskstepstatusapi.getname"; } @Override @@ -86,15 +77,15 @@ public class ProcessTaskStepStatusChangeApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "processTaskId", type = ApiParamType.LONG, desc = "工单Id"), - @Param(name = "processTaskStepName", type = ApiParamType.STRING, desc = "工单步骤名称"), - @Param(name = "processTaskNextStepName", type = ApiParamType.STRING, desc = "需要激活的下一步骤名称(更改步骤状态为succeed时需要填此参数)"), - @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "工单步骤Id(待更改状态的步骤名称重复时需要填此参数。此参数存在时,无需填processTaskId与processTaskStepName)"), - @Param(name = "processTaskNextStepId", type = ApiParamType.LONG, desc = "下一步工单步骤Id(待激活的下一步骤名称重复时需要填此参数。此参数存在时,无需填processTaskNextStepName)"), - @Param(name = "status", type = ApiParamType.ENUM, rule = "pending,running,succeed,hang", isRequired = true, desc = "工单步骤状态"), - @Param(name = "userId", type = ApiParamType.STRING, desc = "处理人userId"), + @Param(name = "processTaskId", type = ApiParamType.LONG, desc = "term.itsm.processtaskid"), + @Param(name = "processTaskStepName", type = ApiParamType.STRING, desc = "term.itsm.processtaskstepname"), + @Param(name = "processTaskNextStepName", type = ApiParamType.STRING, desc = "term.itsm.processtasknextstepname", help = "更改步骤状态为succeed时需要填此参数"), + @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "term.itsm.processtaskstepid", help = "待更改状态的步骤名称重复时需要填此参数。此参数存在时,无需填processTaskId与processTaskStepName"), + @Param(name = "processTaskNextStepId", type = ApiParamType.LONG, desc = "term.itsm.processtasknextstepid", help = "待激活的下一步骤名称重复时需要填此参数。此参数存在时,无需填processTaskNextStepName"), + @Param(name = "status", type = ApiParamType.ENUM, rule = "pending,running,succeed,hang", isRequired = true, desc = "common.status"), + @Param(name = "userId", type = ApiParamType.STRING, desc = "common.userid"), }) - @Description(desc = "手动更改工单步骤状态") + @Description(desc = "nmpapm.updateprocesstaskstepstatusapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { Long processTaskId = jsonObj.getLong("processTaskId"); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java index e878b0650b9c38b80be9ea091123fd7079ee9708..47ad55a30e024dc57649fb1b33ad1561eed54417 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java @@ -528,6 +528,10 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int updateProcessTaskIsDeletedById(@Param("id") Long id, @Param("isDeleted") Integer isDeleted); + int updateProcessTaskConfigHashById(@Param("id") Long id, @Param("configHash") String configHash); + + int updateProcessTaskStepConfigHashByProcessTaskIdAndProcessStepUuid(@Param("processTaskId") Long processTaskId, @Param("processStepUuid") String processStepUuid, @Param("configHash") String configHash); + int deleteProcessTaskFormAttributeByProcessTaskId(Long processTaskId); int deleteProcessTaskExtendFormAttributeByProcessTaskId(Long processTaskId); @@ -594,4 +598,6 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int deleteProcessTaskTimeCostByProcessTaskId(Long processTaskId); int deleteProcessTaskFormContentByHash(String hash); + + int deleteProcessTaskStepWorkerPolicyByProcessTaskStepId(Long processTaskStepId); } diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml index 7c47db558fa13139e77bfcd221657a70965dff97..8b699077c6eb5642ac0c4911de8e01a4ded9ad0a 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml @@ -3893,6 +3893,21 @@ WHERE `id` = #{id} + + UPDATE `processtask` + SET + `config_hash` = #{configHash} + WHERE `id` = #{id} + + + + UPDATE `processtask_step` + SET + `config_hash` = #{configHash} + WHERE `processtask_id` = #{processTaskId} + AND `process_step_uuid` = #{processStepUuid} + + DELETE FROM `processtask_converge` @@ -4146,4 +4161,10 @@ FROM `processtask_form_content` WHERE `hash` = #{value} + + + DELETE + FROM `processtask_step_worker_policy` + WHERE `processtask_step_id` = #{value} +