Merge branch 'feature/REQ-4586' into dev
This commit is contained in:
commit
8f451a5a2a
@ -5,6 +5,7 @@ import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.dto.SignFileDTO;
|
||||
import cn.axzo.workflow.common.model.dto.SimpleDocDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BeforeProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
|
||||
@ -27,6 +28,7 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceAd
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ExtProcessLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.NodesByModelVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ProcessNodeDetailVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.doc.DocPendingVO;
|
||||
@ -329,4 +331,16 @@ public interface ProcessInstanceApi {
|
||||
@GetMapping("/api/process/instance/final/docs")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<SignFileDTO>> getProcessInstanceFinalDocs(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = false) String processInstanceId);
|
||||
|
||||
/**
|
||||
* 查询 ExtAxProcessLog 表中审批人的冗余信息
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询 ExtAxProcessLog 表中审批人的冗余信息")
|
||||
@GetMapping("/api/process/instance/log/approve/ext")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<ExtProcessLogVO>> getProcessLogByInstanceIdAndPersonId(@Validated @RequestBody LogApproveSearchDTO dto);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package cn.axzo.workflow.client.feign.bpmn;
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO;
|
||||
@ -108,6 +109,7 @@ public interface ProcessTaskApi {
|
||||
|
||||
/**
|
||||
* 用于系统内部操作,跳转到指定节点
|
||||
*
|
||||
* @param dto 请求参数
|
||||
* @return 是否成功
|
||||
*/
|
||||
@ -177,7 +179,7 @@ public interface ProcessTaskApi {
|
||||
@PostMapping("/api/process/task/countersign")
|
||||
CommonResponse<Boolean> countersignTask(@Validated @RequestBody BpmnTaskCountersignDTO dto);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 重置节点审批人(提级审批)
|
||||
*
|
||||
* @param dto
|
||||
|
||||
@ -32,6 +32,7 @@ public enum BpmnInstanceRespCode implements IModuleRespCode {
|
||||
PROCESS_DOC_ID_NOT_IN_MODEL("017", "当前流程中,不存在指定文档"),
|
||||
PROCESS_SIGN_DATA_NOT_EXISTS("018", "签署业务审批未获取到初始模板复制数据"),
|
||||
PROCESS_INSTANCE_CANT_REMIND("019", "流程实例【{}】不存在, 不能评论"),
|
||||
PROCESS_EXT_LOG_PARAM_ERROR("020", "查询流程日志的审批人PersonId参数不合法"),
|
||||
;
|
||||
private final String code;
|
||||
private final String message;
|
||||
|
||||
@ -7,7 +7,6 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 审批人员的组织架构信息
|
||||
@ -29,12 +28,12 @@ public class OrgStructureSnapshotInfo implements Serializable {
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
* 头像(仅为审批任务被接受那一刻的电话,不可作为对外展示数据)
|
||||
*/
|
||||
private String avatarUrl;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
* 手机号(仅为审批任务被接受那一刻的电话,不可作为对外展示数据)
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
@ -49,7 +48,7 @@ public class OrgStructureSnapshotInfo implements Serializable {
|
||||
private int workspaceType;
|
||||
|
||||
/**
|
||||
* 项目快照信息
|
||||
* 组织快照信息
|
||||
*/
|
||||
private OrgSnapshotInfo snapshotInfo;
|
||||
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.log;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 用于查询审批日志的人的模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-07-07 19:40
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class LogApproveSearchDTO {
|
||||
|
||||
@NotBlank(message = "流程实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
@NotBlank(message = "审批人 personId 不能为空")
|
||||
private String personId;
|
||||
|
||||
@NotBlank(message = "审批人 tenantId 不能为空")
|
||||
private String tenantId;
|
||||
|
||||
@NotBlank(message = "审批人 ouId 不能为空")
|
||||
private String ouId;
|
||||
|
||||
@ApiModelProperty("指定状态,如果为空,默认指定审批中状态的数据")
|
||||
private BpmnProcessInstanceResultEnum status;
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package cn.axzo.workflow.common.model.response.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.model.dto.OrgStructureSnapshotInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 审批扩展日志表的响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-07-08 10:09
|
||||
*/
|
||||
@ApiModel("流程实例日志表响应模型")
|
||||
@Data
|
||||
public class ExtProcessLogVO {
|
||||
@ApiModelProperty("日志表主键 ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("流程实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty("流程归属的租户 ID(工作台 ID)")
|
||||
private String processTenantId;
|
||||
|
||||
@ApiModelProperty("审批节点 ID")
|
||||
private String activityId;
|
||||
|
||||
@ApiModelProperty("审批节点名称")
|
||||
private String activityName;
|
||||
|
||||
@ApiModelProperty("审批任务 ID")
|
||||
private String taskId;
|
||||
|
||||
@ApiModelProperty("审批人自然人 ID")
|
||||
private String assigneePersonId;
|
||||
|
||||
@ApiModelProperty("审批人租户 ID(工作台 ID)")
|
||||
private String assigneeTenantId;
|
||||
|
||||
@ApiModelProperty("审批人姓名")
|
||||
private String assigneeName;
|
||||
|
||||
@ApiModelProperty("审批人单位 ID")
|
||||
private String assigneeOuId;
|
||||
|
||||
@ApiModelProperty("日志的处理状态")
|
||||
private BpmnProcessInstanceResultEnum status;
|
||||
|
||||
@ApiModelProperty("审批人在接受到审批任务时的组织快照信息")
|
||||
private OrgStructureSnapshotInfo orgStructureSnapshotInfo;
|
||||
}
|
||||
@ -114,6 +114,10 @@ public class ExtAxProcessLogServiceImpl implements ExtAxProcessLogService {
|
||||
.eq(StringUtils.hasText(log.getActivityName()), ExtAxProcessLog::getActivityName, log.getActivityName())
|
||||
.eq(StringUtils.hasText(log.getTaskId()), ExtAxProcessLog::getTaskId, log.getTaskId())
|
||||
.eq(StringUtils.hasText(log.getTenantId()), ExtAxProcessLog::getTenantId, log.getTenantId())
|
||||
.eq(StringUtils.hasText(log.getStatus()), ExtAxProcessLog::getStatus, log.getStatus())
|
||||
.eq(Objects.nonNull(log.getAssigneeId()), ExtAxProcessLog::getAssigneeId, log.getAssigneeId())
|
||||
.eq(StringUtils.hasText(log.getAssigneeTenantId()), ExtAxProcessLog::getAssigneeTenantId, log.getAssigneeTenantId())
|
||||
.eq(StringUtils.hasText(log.getAssigneeOuId()), ExtAxProcessLog::getAssigneeOuId, log.getAssigneeOuId())
|
||||
.eq(ExtAxProcessLog::getIsDelete, log.getIsDelete());
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,9 +5,11 @@ import cn.axzo.oss.http.api.ServerFileServiceApi;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse;
|
||||
import cn.axzo.workflow.client.feign.bpmn.ProcessInstanceApi;
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.common.model.dto.SignFileDTO;
|
||||
import cn.axzo.workflow.common.model.dto.SimpleDocDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BeforeProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
|
||||
@ -33,6 +35,7 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceAd
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ExtProcessLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.HistoricProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.NodesByModelVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ProcessNodeDetailVO;
|
||||
@ -41,9 +44,11 @@ import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceLogVO;
|
||||
import cn.axzo.workflow.common.valid.group.ValidGroup;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomGetModelDocsCmd;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxProcessLog;
|
||||
import cn.axzo.workflow.core.repository.mapper.ExtAxModelDocMapper;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessTaskService;
|
||||
import cn.axzo.workflow.core.service.ExtAxProcessLogService;
|
||||
import cn.axzo.workflow.core.service.ExtAxProcessSignService;
|
||||
import cn.axzo.workflow.core.service.ExtAxReModelService;
|
||||
import cn.axzo.workflow.core.service.ExtAxReadRecordService;
|
||||
@ -52,6 +57,7 @@ import cn.axzo.workflow.server.common.annotation.RepeatSubmit;
|
||||
import cn.axzo.workflow.server.common.util.RpcExternalUtil;
|
||||
import cn.axzo.workflow.server.controller.web.BasicPopulateAvatarController;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -86,6 +92,7 @@ import java.util.stream.Stream;
|
||||
|
||||
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_DOC_ID_NOT_IN_MODEL;
|
||||
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_DOC_READ_PARAM_ERROR;
|
||||
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_EXT_LOG_PARAM_ERROR;
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
/**
|
||||
@ -116,6 +123,8 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
|
||||
private ExtAxProcessSignService extAxProcessSignService;
|
||||
@Resource
|
||||
private ExtAxReModelService extAxReModelService;
|
||||
@Resource
|
||||
private ExtAxProcessLogService extAxProcessLogService;
|
||||
|
||||
/**
|
||||
* 超管查询所有流程实例
|
||||
@ -527,4 +536,42 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
|
||||
public CommonResponse<List<SignFileDTO>> getProcessInstanceFinalDocs(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = false) String processInstanceId) {
|
||||
return success(extAxProcessSignService.findByProcessInstanceId(processInstanceId).getFileArchive());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询 ExtAxProcessLog 表中审批人的冗余信息
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询 ExtAxProcessLog 表中审批人的冗余信息")
|
||||
@GetMapping("/log/approve/ext")
|
||||
@Override
|
||||
public CommonResponse<List<ExtProcessLogVO>> getProcessLogByInstanceIdAndPersonId(@Validated @RequestBody LogApproveSearchDTO dto) {
|
||||
if (NumberUtil.isLong(dto.getPersonId())) {
|
||||
throw new WorkflowEngineException(PROCESS_EXT_LOG_PARAM_ERROR);
|
||||
}
|
||||
ExtAxProcessLog query = new ExtAxProcessLog();
|
||||
query.setProcessInstanceId(dto.getProcessInstanceId());
|
||||
query.setAssigneeId(Long.valueOf(dto.getPersonId()));
|
||||
query.setAssigneeTenantId(dto.getTenantId());
|
||||
query.setAssigneeOuId(dto.getOuId());
|
||||
query.setStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
|
||||
List<ExtAxProcessLog> extAxProcessLogs = extAxProcessLogService.genericQuery(query);
|
||||
return success(ListUtils.emptyIfNull(extAxProcessLogs).stream().map(i -> {
|
||||
ExtProcessLogVO logVO = new ExtProcessLogVO();
|
||||
logVO.setId(i.getId());
|
||||
logVO.setProcessInstanceId(i.getProcessInstanceId());
|
||||
logVO.setProcessTenantId(i.getTenantId());
|
||||
logVO.setActivityId(i.getActivityId());
|
||||
logVO.setActivityName(i.getActivityName());
|
||||
logVO.setTaskId(i.getTaskId());
|
||||
logVO.setAssigneePersonId(String.valueOf(i.getAssigneeId()));
|
||||
logVO.setAssigneeTenantId(i.getAssigneeTenantId());
|
||||
logVO.setAssigneeName(i.getAssigneeName());
|
||||
logVO.setAssigneeOuId(i.getAssigneeOuId());
|
||||
logVO.setStatus(BpmnProcessInstanceResultEnum.valueOfStatus(i.getStatus()));
|
||||
logVO.setOrgStructureSnapshotInfo(i.getExtra());
|
||||
return logVO;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package cn.axzo.workflow.server.controller.web.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.feign.bpmn.ProcessTaskApi;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.*;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
|
||||
@ -30,6 +33,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user