fuliqi
2025-02-10 064dca48da397af000ccfe7b9968f051ded8dcd7
Merge remote-tracking branch 'origin/master'
5个文件已修改
1个文件已添加
82 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProjectProcessController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/form/TaskJumpForm.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/event/listener/ProcessLogEventListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectProcessService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/ycl/common/enums/business/ProcessLogEventTypeEnum.java 1 ●●●● 补丁 | 查看 | 原始文档 | 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", "跳过"),
    ;