From 064dca48da397af000ccfe7b9968f051ded8dcd7 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 10 二月 2025 09:23:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- business/src/main/java/com/ycl/domain/form/TaskJumpForm.java | 32 ++++++++++++++++ business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java | 6 ++ business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 29 ++++++++++++++ business/src/main/java/com/ycl/controller/ProjectProcessController.java | 7 +++ business/src/main/java/com/ycl/service/ProjectProcessService.java | 9 ++++ common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java | 1 6 files changed, 83 insertions(+), 1 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectProcessController.java b/business/src/main/java/com/ycl/controller/ProjectProcessController.java index cfc9775..ac00f25 100644 --- a/business/src/main/java/com/ycl/controller/ProjectProcessController.java +++ b/business/src/main/java/com/ycl/controller/ProjectProcessController.java @@ -4,6 +4,7 @@ import com.ycl.common.group.Add; import com.ycl.domain.form.RejectTaskForm; import com.ycl.domain.form.TaskDelegationForm; +import com.ycl.domain.form.TaskJumpForm; import com.ycl.domain.query.TaskQuery; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; @@ -90,6 +91,12 @@ return projectProcessService.taskDelegation(form); } + @PostMapping("/detail/task/jump") + @ApiOperation(value = "璺宠繃浠诲姟", notes = "璺宠繃浠诲姟锛屼笉甯﹁〃鍗曟暟鎹殑瀹屾垚浠诲姟") +// @PreAuthorize("@ss.hasPermi('projectProcess:detail')") + public Result taskJump(@RequestBody TaskJumpForm form) { + return projectProcessService.taskJump(form); + } @GetMapping("/to_do_task") @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") diff --git a/business/src/main/java/com/ycl/domain/form/TaskJumpForm.java b/business/src/main/java/com/ycl/domain/form/TaskJumpForm.java new file mode 100644 index 0000000..7546c9e --- /dev/null +++ b/business/src/main/java/com/ycl/domain/form/TaskJumpForm.java @@ -0,0 +1,32 @@ +package com.ycl.domain.form; + +import com.ycl.common.enums.business.HandlerTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 浠诲姟璺宠繃/缂虹渷 + * + * @author锛歺p + * @date锛�2024/12/13 13:51 + */ +@Data +@ApiModel("浠诲姟璺宠繃/缂虹渷琛ㄥ崟") +public class TaskJumpForm { + + /** + * 褰撳墠浠诲姟id + * + */ + @NotBlank(message = "浠诲姟id涓嶈兘涓虹┖") + private String taskId; + + @ApiModelProperty("椤圭洰id锛岀敤浜庝繚瀛樻棩蹇�") + private Long projectId; + + @ApiModelProperty("娴佺▼瀹炰緥id锛岀敤浜庝繚瀛樻棩蹇�") + private String processInsId; +} diff --git a/business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java b/business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java index 39736e6..28531eb 100644 --- a/business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java +++ b/business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java @@ -10,6 +10,8 @@ import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; +import java.util.Objects; + /** * @author锛歺p * @date锛�2025/1/16 15:14 @@ -33,7 +35,9 @@ log.setProjectId(event.getProjectId()); log.setTaskId(event.getTaskId()); log.setUserId(SecurityUtils.getUserId()); - log.setEventDataJson(JSON.toJSONString(event.getOtherData())); + if (Objects.nonNull(event.getOtherData())) { + log.setEventDataJson(JSON.toJSONString(event.getOtherData())); + } processLogService.save(log); } diff --git a/business/src/main/java/com/ycl/service/ProjectProcessService.java b/business/src/main/java/com/ycl/service/ProjectProcessService.java index 89da7d5..18c0eb6 100644 --- a/business/src/main/java/com/ycl/service/ProjectProcessService.java +++ b/business/src/main/java/com/ycl/service/ProjectProcessService.java @@ -6,6 +6,7 @@ import com.ycl.domain.form.ProjectProcessForm; import com.ycl.domain.form.RejectTaskForm; import com.ycl.domain.form.TaskDelegationForm; +import com.ycl.domain.form.TaskJumpForm; import com.ycl.domain.query.ProjectProcessQuery; import com.ycl.domain.query.TaskQuery; import com.ycl.domain.vo.CustomerTaskVO; @@ -98,4 +99,12 @@ * @return */ Result taskDelegation(TaskDelegationForm form); + + /** + * 璺宠繃浠诲姟 + * + * @param form + * @return + */ + Result taskJump(TaskJumpForm form); } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java index 7591ebb..b420892 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -1,6 +1,7 @@ package com.ycl.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; @@ -15,7 +16,9 @@ import com.ycl.constant.TaskTypeConstant; import com.ycl.domain.entity.ProjectInfo; import com.ycl.domain.entity.ProjectProcess; +import com.ycl.domain.entity.SysForm; import com.ycl.domain.form.TaskDelegationForm; +import com.ycl.domain.form.TaskJumpForm; import com.ycl.domain.json.DelegateData; import com.ycl.domain.vo.CustomerTaskVO; import com.ycl.domain.vo.IndexCustomerTaskVO; @@ -23,6 +26,8 @@ import com.ycl.event.event.TaskLogEvent; import com.ycl.mapper.ProjectInfoMapper; import com.ycl.mapper.ProjectProcessMapper; +import com.ycl.service.IFlowTaskService; +import com.ycl.service.ISysFormService; import com.ycl.service.ProjectProcessService; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -79,6 +84,8 @@ private final ISysRoleService sysRoleService; private final ISysDeptService sysDeptService; private final TaskCommonService taskCommonService; + private final IFlowTaskService flowTaskService; + private final ISysFormService formService; private final ApplicationEventPublisher publisher; /** @@ -568,6 +575,28 @@ return Result.ok("杞姙鎴愬姛"); } + @Override + @Transactional(rollbackFor = Exception.class) + public Result taskJump(TaskJumpForm form) { + Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult(); + if (Objects.nonNull(task)) { + // 娣诲姞璺宠繃鏃ュ織 + publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.JUMP, null)); + // 鏌ュ嚭璇ヤ换鍔$粦瀹氱殑琛ㄥ崟 + + Map<String, Object> data = new HashMap<>(1); + if (StringUtils.isNotBlank(task.getFormKey())) { + SysForm sysForm = formService.selectSysFormById(Long.parseLong(task.getFormKey())); + if (Objects.nonNull(sysForm)) { + data.put(ProcessConstants.TASK_FORM_KEY, JSONObject.parseObject(sysForm.getFormContent())); + } + } + // 瀹屾垚浠诲姟 + flowTaskService.completeSubmitForm(form.getTaskId(), data); + } + return Result.ok("鎿嶄綔鎴愬姛"); + } + /** * 鏌ヨ寰呭姙浠诲姟 * diff --git a/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java index 8e7bc79..28957be 100644 --- a/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java +++ b/common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java @@ -16,6 +16,7 @@ DELEGATE("DELEGATE", "杞姙"), FINISHED("FINISHED", "瀹屾垚"), TEAM_WORK("TEAM_WORK", "鍗忓悓鍔炵悊"), + JUMP("JUMP", "璺宠繃"), ; -- Gitblit v1.8.0