business/src/main/java/com/ycl/controller/ProjectProcessController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/form/TaskJumpForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/ProjectProcessService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 = "分页") business/src/main/java/com/ycl/domain/form/TaskJumpForm.java
New file @@ -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:xp * @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; } 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:xp * @date:2025/1/16 15:14 @@ -33,7 +35,9 @@ log.setProjectId(event.getProjectId()); log.setTaskId(event.getTaskId()); log.setUserId(SecurityUtils.getUserId()); if (Objects.nonNull(event.getOtherData())) { log.setEventDataJson(JSON.toJSONString(event.getOtherData())); } processLogService.save(log); } 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); } 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("操作成功"); } /** * 查询待办任务 * 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", "跳过"), ;