update 工作中心 加签,解决加签,转签

This commit is contained in:
lijiarao
2023-10-20 18:11:29 +08:00
parent cf5a67954a
commit 406c6687a2
15 changed files with 322 additions and 58 deletions
@@ -6,12 +6,12 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.DictPoint; import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils; import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.service.*; import com.jero.modules.activiti.service.*;
import com.jero.modules.laws.common.constant.ResultCommon; import com.jero.modules.laws.common.constant.ResultCommon;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@@ -155,11 +155,11 @@ public class ActivitiController {
}else if ("其他起草人线下填写,上传".equals(taskName)){ }else if ("其他起草人线下填写,上传".equals(taskName)){
} }
//更新审批表为完成,填充数据 //更新审批表为完成,填充数据
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getByTaskId(taskId); ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
approvalRecord.setCommitFlag(commitFlag); approvalRecord.setCommitFlag(commitFlag);
approvalRecord.setCommitText(commitText); approvalRecord.setCommitText(commitText);
approvalRecord.setCommitFile(commitFile); approvalRecord.setCommitFile(commitFile);
approvalRecord.setFinishFlag(YesOrNoEnum.YES.getInteger()); approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
approvalRecord.setEndTime(new Date()); approvalRecord.setEndTime(new Date());
processApprovalRecordService.updateById(approvalRecord); processApprovalRecordService.updateById(approvalRecord);
//审批节点 //审批节点
@@ -7,7 +7,11 @@ import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.vo.DelegateTaskParam;
import com.jero.modules.activiti.vo.ResolveTaskParam;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -38,6 +42,8 @@ public class WorkCenterController {
@Resource @Resource
private ProcessAllService processAllService; private ProcessAllService processAllService;
@Resource
private ProcessDraftService processDraftService;
@ApiOperation(value = "查询待办流程列表") @ApiOperation(value = "查询待办流程列表")
@GetMapping("/getTodoList") @GetMapping("/getTodoList")
@@ -102,6 +108,24 @@ public class WorkCenterController {
return Result.OK(sentList); return Result.OK(sentList);
} }
@ApiOperation(value = "查询草稿")
@GetMapping("/getDraftList")
public Result<?> getDraftList(ProcessDraft processDraft,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessDraft> queryWrapper = new QueryWrapper<>();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("create_by",userId);
Integer prcType = processDraft.getPrcType();
queryWrapper.eq(prcType != null, "prc_type", prcType);
Page<ProcessDraft> page = new Page<>(pageNo, pageSize);
IPage<ProcessDraft> sentList = processDraftService.page(page, queryWrapper);
return Result.OK(sentList);
}
@NotNull @NotNull
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) { private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {
String prcName = processAll.getPrcName(); String prcName = processAll.getPrcName();
@@ -126,4 +150,33 @@ public class WorkCenterController {
processAllService.delete(processInstanceId); processAllService.delete(processInstanceId);
return Result.OK(); return Result.OK();
} }
/**
* 加签
*/
@ApiOperation(value="加签")
@PostMapping("/delegateTask")
public Result<Object> delegateTask(@RequestBody DelegateTaskParam param) {
processAllService.delegateTask(param);
return Result.OK();
}
@ApiOperation(value="解决加签")
@PostMapping("/resolveTask")
public Result<Object> resolveTask(@RequestBody ResolveTaskParam param) {
processAllService.resolveTask(param);
return Result.OK();
}
/**
* 转签
*/
@ApiOperation(value="转签")
@PostMapping("/transferTask")
public Result<Object> transferTask(@RequestBody DelegateTaskParam param) {
processAllService.transferTask(param);
return Result.OK();
}
} }
@@ -4,22 +4,17 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/** /**
* *流程审批记录表
*@author liJiaRao *@author liJiaRao
*@date 2023-10-16 15:49 *@date 2023-10-20 16:42
*/ */
/** @ApiModel(description = "流程审批记录表")
* 流程审批记录表
*/
@ApiModel(description="流程审批记录表")
@Data @Data
@TableName(value = "process_approval_record") @TableName(value = "process_approval_record")
public class ProcessApprovalRecord { public class ProcessApprovalRecord {
@@ -27,115 +22,139 @@ public class ProcessApprovalRecord {
* 主键 * 主键
*/ */
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键") @ApiModelProperty(value = "主键")
private String id; private String id;
/** /**
* 任务id * 任务id
*/ */
@ApiModelProperty(value="任务id") @TableField(value = "task_id")
@ApiModelProperty(value = "任务id")
private String taskId; private String taskId;
/** /**
* 任务名称 * 任务名称
*/ */
@ApiModelProperty(value="任务名称") @TableField(value = "task_name")
@ApiModelProperty(value = "任务名称")
private String taskName; private String taskName;
/** /**
* 流程实例id * 流程实例id
*/ */
@ApiModelProperty(value="流程实例id") @TableField(value = "process_instance_id")
@ApiModelProperty(value = "流程实例id")
private String processInstanceId; private String processInstanceId;
/** /**
* 资源类型 * 资源类型
*/ */
@ApiModelProperty(value="资源类型") @TableField(value = "msg_type")
@ApiModelProperty(value = "资源类型")
private String msgType; private String msgType;
/** /**
* 处理人id * 处理人id
*/ */
@ApiModelProperty(value="处理人id") @TableField(value = "user_id")
@ApiModelProperty(value = "处理人id")
private String userId; private String userId;
/** /**
* 信息 * 信息
*/ */
@ApiModelProperty(value="信息") @TableField(value = "mesg")
@ApiModelProperty(value = "信息")
private String mesg; private String mesg;
/** /**
* 完成注记(0未完成,1完成) * 完成注记(0未完成,1完成)
*/ */
@ApiModelProperty(value="完成注记(0未完成,1完成,2暂停)") @TableField(value = "finish_flag")
@ApiModelProperty(value = "完成注记(0未完成,1完成)")
private Integer finishFlag; private Integer finishFlag;
/** /**
* 项目id * 项目id
*/ */
@ApiModelProperty(value="项目id") @TableField(value = "project_id")
@ApiModelProperty(value = "项目id")
private String projectId; private String projectId;
/** /**
* 审批意见(0同意,1不同意) * 审批意见(0同意,1不同意)
*/ */
@ApiModelProperty(value="审批意见(0同意,1不同意)") @TableField(value = "commit_flag")
@ApiModelProperty(value = "审批意见(0同意,1不同意)")
private Integer commitFlag; private Integer commitFlag;
/** /**
* 审批内容 * 审批内容
*/ */
@ApiModelProperty(value="审批内容") @TableField(value = "commit_text")
@ApiModelProperty(value = "审批内容")
private String commitText; private String commitText;
/** /**
* 附件 * 审批附件
*/ */
@ApiModelProperty(value="附件") @TableField(value = "commit_file")
@ApiModelProperty(value = "审批附件")
private String commitFile; private String commitFile;
/**
* 是否派发过加签任务
*/
@ApiModelProperty(value="是否派发过加签任务")
private Integer hasDelegateTask;
/**
* 是否加签任务
*/
@ApiModelProperty(value="是否加签任务")
private Integer isDelegateTask;
/** /**
* 流程名称 * 流程名称
*/ */
@ApiModelProperty(value="流程名称") @TableField(value = "prc_name")
@ApiModelProperty(value = "流程名称")
private String prcName; private String prcName;
/** /**
* 创建时间 * 创建时间
*/ */
@ApiModelProperty(value="创建时间") @TableField(value = "create_time")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@ApiModelProperty(value="更新时间") @TableField(value = "update_time")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
/** /**
* 完成时间 * 完成时间
*/ */
@ApiModelProperty(value="完成时间") @TableField(value = "end_time")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "完成时间")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endTime; private Date endTime;
/**
* 是否派发过加签任务
*/
@TableField(value = "has_delegate_task")
@ApiModelProperty(value = "是否派发过加签任务")
private Integer hasDelegateTask;
/**
* 是否加签任务
*/
@TableField(value = "is_delegate_task")
@ApiModelProperty(value = "是否加签任务")
private Integer isDelegateTask;
/**
* 加签人
*/
@TableField(value = "delegate_by")
@ApiModelProperty(value = "加签人")
private String delegateBy;
/**
* 转办人
*/
@TableField(value = "transfer_by")
@ApiModelProperty(value = "转办人")
private String transferBy;
} }
@@ -0,0 +1,41 @@
package com.jero.modules.activiti.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author liJiaRao
* @date 2023-10-20 16:34
*/
@Getter
@AllArgsConstructor
public enum FinishFlagEnum {
/**
* A
*/
INCOMPLETE("未完成", 0),
COMPLETE("完成", 1),
SUSPEND("暂停", 2),
;
private String name;
private Integer value;
public static String getNameByValue(Integer value) {
for (FinishFlagEnum enumObject : values()) {
if (enumObject.getValue().equals(value)) {
return enumObject.getName();
}
}
return null;
}
public static Integer getValueByName(String name) {
for (FinishFlagEnum enumObject : values()) {
if (enumObject.getName().equals(name)) {
return enumObject.getValue();
}
}
return null;
}
}
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
@@ -15,7 +16,7 @@ import org.activiti.engine.delegate.TaskListener;
public class CompleteListener implements TaskListener { public class CompleteListener implements TaskListener {
@Override @Override
public void notify(DelegateTask delegateTask) { public void notify(DelegateTask delegateTask) {
//流程审批信息 //流程审批信息转办
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
String taskId = delegateTask.getId(); String taskId = delegateTask.getId();
@@ -25,7 +26,7 @@ public class CompleteListener implements TaskListener {
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
wrapper.eq(ProcessApprovalRecord::getUserId,assignee); wrapper.eq(ProcessApprovalRecord::getUserId,assignee);
ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper); ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper);
approvalRecord.setFinishFlag(YesOrNoEnum.YES.getInteger()); approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
recordService.updateById(approvalRecord); recordService.updateById(approvalRecord);
System.out.println(taskId); System.out.println(taskId);
@@ -1,6 +1,7 @@
package com.jero.modules.activiti.listener; package com.jero.modules.activiti.listener;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.util.SpringContextUtil;
@@ -40,7 +41,7 @@ public class CreateListener implements TaskListener {
approvalRecord.setTaskName(name); approvalRecord.setTaskName(name);
approvalRecord.setProcessInstanceId(processInstanceId); approvalRecord.setProcessInstanceId(processInstanceId);
approvalRecord.setUserId(assignee); approvalRecord.setUserId(assignee);
approvalRecord.setFinishFlag(0); approvalRecord.setFinishFlag(FinishFlagEnum.INCOMPLETE.getValue());
approvalRecord.setCreateTime(createTime); approvalRecord.setCreateTime(createTime);
recordService.save(approvalRecord); recordService.save(approvalRecord);
// todo 对接统一平台生成待办任务 // todo 对接统一平台生成待办任务
@@ -18,7 +18,7 @@ public class ProcessDraft implements Serializable {
/** /**
* 主键ID * 主键ID
*/ */
@TableId @TableId(type = IdType.ASSIGN_ID)
private String id; private String id;
/** /**
@@ -61,6 +61,21 @@ public class ProcessDraft implements Serializable {
*/ */
private String processKey; private String processKey;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 项目类型
*/
private Integer prcType;
/**
* 项目id
*/
private String projectId;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
@@ -2,15 +2,29 @@ package com.jero.modules.activiti.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper;
import com.jero.modules.activiti.vo.DelegateTaskParam;
import com.jero.modules.activiti.vo.ResolveTaskParam;
import com.jero.modules.laws.common.constant.ResultCommon;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.activiti.mapper.ProcessAllMapper; import com.jero.modules.activiti.mapper.ProcessAllMapper;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
@@ -24,9 +38,11 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
@Resource @Resource
private ProcessAllMapper processAllMapper; private ProcessAllMapper processAllMapper;
@Resource @Resource
private ProcessApprovalRecordMapper processApprovalRecordMapper; private ProcessApprovalRecordService approvalRecordService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource
private TaskService taskService;
public ProcessAll getByProcessInstanceId(String processInstanceId){ public ProcessAll getByProcessInstanceId(String processInstanceId){
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
@@ -56,7 +72,7 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
//删除审批表 //删除审批表
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
processApprovalRecordMapper.delete(wrapper1); approvalRecordService.remove(wrapper1);
//业务表修改为草稿 //业务表修改为草稿
Integer prcType = processAll.getPrcType(); Integer prcType = processAll.getPrcType();
WorkCenterService classByValue = null; WorkCenterService classByValue = null;
@@ -72,4 +88,79 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
public IPage<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) { public IPage<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
return processAllMapper.getAllList(page,queryWrapper); return processAllMapper.getAllList(page,queryWrapper);
} }
public void delegateTask(DelegateTaskParam param) {
String taskId = param.getTaskId();
String userId = param.getUserId();
taskService.delegateTask(taskId, userId);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
String processInstanceId = task.getProcessInstanceId();
//暂停之前的审批(未完成的任务id是之前的)
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessApprovalRecord::getTaskId, taskId);
updateWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
updateWrapper.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.SUSPEND.getValue());
updateWrapper.set(ProcessApprovalRecord::getHasDelegateTask, YesOrNoEnum.YES.getValue());
approvalRecordService.update(updateWrapper);
//新增待审批记录
ProcessApprovalRecord approvalRecord = new ProcessApprovalRecord();
approvalRecord.setTaskId(taskId);
approvalRecord.setTaskName(taskName);
approvalRecord.setProcessInstanceId(processInstanceId);
approvalRecord.setUserId(userId);
approvalRecord.setFinishFlag(FinishFlagEnum.INCOMPLETE.getValue());
approvalRecord.setCreateTime(new Date());
approvalRecord.setIsDelegateTask(YesOrNoEnum.YES.getInteger());
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
approvalRecord.setDelegateBy(loginUser.getId());
approvalRecordService.save(approvalRecord);
}
public void resolveTask(ResolveTaskParam param) {
String taskId = param.getTaskId();
String commitText = param.getCommitText();
String commitFile = param.getCommitFile();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
taskService.resolveTask(taskId);
//完成之前的审批(未完成的任务id是之前的)
ProcessApprovalRecord approvalRecord = approvalRecordService.getToDoByTaskId(taskId);
String userId = approvalRecord.getUserId();
if (!Objects.equals(userId,loginUser.getId())){
throw new JeroBootException(ResultCommon.TASK_HANDLER_ERROR);
}
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessApprovalRecord::getId, approvalRecord.getId());
updateWrapper.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue());
updateWrapper.set(ProcessApprovalRecord::getCommitText, commitText);
updateWrapper.set(ProcessApprovalRecord::getCommitFile, commitFile);
approvalRecordService.update(updateWrapper);
// 启动暂停的任务
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper1 = new LambdaUpdateWrapper<>();
updateWrapper1.eq(ProcessApprovalRecord::getTaskId, taskId);
updateWrapper1.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.SUSPEND.getValue());
updateWrapper1.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
approvalRecordService.update(updateWrapper1);
}
public void transferTask(DelegateTaskParam param) {
String taskId = param.getTaskId();
String userId = param.getUserId();
//获取审批(未完成的任务id是之前的)
ProcessApprovalRecord approvalRecord = approvalRecordService.getToDoByTaskId(taskId);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessApprovalRecord::getId, approvalRecord.getId());
updateWrapper.set(ProcessApprovalRecord::getTransferBy,loginUser.getId());
updateWrapper.set(ProcessApprovalRecord::getUserId,userId);
approvalRecordService.update(updateWrapper);
}
} }
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
@@ -16,10 +17,10 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
@Service @Service
public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRecordMapper, ProcessApprovalRecord> { public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRecordMapper, ProcessApprovalRecord> {
public ProcessApprovalRecord getByTaskId(String taskId){ public ProcessApprovalRecord getToDoByTaskId(String taskId){
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
wrapper.eq(ProcessApprovalRecord::getIsDelegateTask, YesOrNoEnum.NO.getInteger()); wrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
return this.getOne(wrapper); return this.getOne(wrapper);
} }
} }
@@ -0,0 +1,17 @@
package com.jero.modules.activiti.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author liJiaRao
* @date 2023-10-20 16:52
*/
@Data
public class DelegateTaskParam {
@ApiModelProperty(value = "任务id")
String taskId;
@ApiModelProperty(value = "用户id")
String userId;
}
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liJiaRao
* @date 2023-10-20 16:52
*/
@Data
public class ResolveTaskParam {
@ApiModelProperty(value = "任务id")
String taskId;
@ApiModelProperty(value = "审批内容")
String commitText;
@ApiModelProperty(value = "审批附件")
String commitFile;
}
@@ -58,4 +58,8 @@ public class ResultCommon {
public static final String IMPORT_ERROR = "import.error"; // 导入ZIP压缩包失败 public static final String IMPORT_ERROR = "import.error"; // 导入ZIP压缩包失败
public static final String PLEASE_UPLOAD_ZIP = "please.upload.zip.archive"; // 请上传Zip压缩包 public static final String PLEASE_UPLOAD_ZIP = "please.upload.zip.archive"; // 请上传Zip压缩包
public static final String TASK_HANDLER_ERROR = "task.handler.error"; // 只有处理人可以操作
} }
@@ -44,4 +44,5 @@ horizontal.transgression=\u6C34\u5E73\u8D8A\u6743
select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0B\u4F53\u7CFB select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0B\u4F53\u7CFB
export.error=\u5BFC\u51FA\u9519\u8BEF export.error=\u5BFC\u51FA\u9519\u8BEF
import.error=\u5BFC\u5165\u9519\u8BEF import.error=\u5BFC\u5165\u9519\u8BEF
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305 please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C
@@ -47,4 +47,5 @@ horizontal.transgression=Horizontal overstepping of authority
select.level.two.tree.node=Please select a level 2 or lower system first select.level.two.tree.node=Please select a level 2 or lower system first
export.error=Export error export.error=Export error
import.error=Import error import.error=Import error
please.upload.zip.archive=Data import failed, please upload zip archive please.upload.zip.archive=Data import failed, please upload zip archive
task.handler.error=Only the handler can operate
@@ -46,4 +46,5 @@ horizontal.transgression=\u6C34\u5E73\u8D8A\u6743
select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0B\u4F53\u7CFB` select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0B\u4F53\u7CFB`
export.zip.archive.error=\u5BFC\u51FA\u9519\u8BEF export.zip.archive.error=\u5BFC\u51FA\u9519\u8BEF
import.zip.archive.error=\u5BFC\u5165\u9519\u8BEF import.zip.archive.error=\u5BFC\u5165\u9519\u8BEF
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305 please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C