Merge remote-tracking branch 'base-version/main' into test
# Conflicts: # zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java # zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/auth/AdminAuthServiceImpl.java
This commit is contained in:
@@ -1,19 +1,36 @@
|
||||
package com.zt.plat.module.bpm.api.task;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.zt.plat.framework.business.core.util.DeptUtil;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.util.json.JsonUtils;
|
||||
import com.zt.plat.framework.common.util.number.NumberUtils;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskApproveReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRejectReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||
import com.zt.plat.module.bpm.controller.admin.task.vo.instance.*;
|
||||
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
|
||||
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRejectReqVO;
|
||||
import com.zt.plat.module.bpm.convert.task.BpmProcessInstanceConvert;
|
||||
import com.zt.plat.module.bpm.convert.task.BpmProcessInstanceDTOConvert;
|
||||
import com.zt.plat.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
|
||||
import com.zt.plat.module.bpm.service.definition.BpmProcessDefinitionService;
|
||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||
import com.zt.plat.module.bpm.service.task.BpmTaskService;
|
||||
import com.zt.plat.module.system.api.dept.DeptApi;
|
||||
import com.zt.plat.module.system.api.dept.dto.DeptRespDTO;
|
||||
import com.zt.plat.module.system.api.user.AdminUserApi;
|
||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
|
||||
|
||||
@@ -33,11 +50,92 @@ public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
|
||||
@Resource
|
||||
private BpmTaskService taskService;
|
||||
|
||||
@Resource
|
||||
private BpmProcessDefinitionService processDefinitionService;
|
||||
|
||||
@Resource
|
||||
private AdminUserApi adminUserApi;
|
||||
|
||||
@Resource
|
||||
private DeptApi deptApi;
|
||||
|
||||
@Override
|
||||
public CommonResult<String> createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO) {
|
||||
public CommonResult<String> createProcessInstance(Long userId, @Valid @RequestBody BpmProcessInstanceCreateReqDTO reqDTO) {
|
||||
return success(processInstanceService.createProcessInstance(userId, reqDTO));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult<BpmProcessInstanceRespDTO> getProcessInstance(String id) {
|
||||
HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(id);
|
||||
if (processInstance == null) {
|
||||
return success(null);
|
||||
}
|
||||
|
||||
// 拼接返回
|
||||
ProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(
|
||||
processInstance.getProcessDefinitionId());
|
||||
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(
|
||||
processInstance.getProcessDefinitionId());
|
||||
AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId())).getCheckedData();
|
||||
DeptRespDTO dept = null;
|
||||
if (startUser != null) {
|
||||
Long deptId = DeptUtil.getDeptId(startUser);
|
||||
if (deptId > 0) {
|
||||
dept = deptApi.getDept(deptId).getCheckedData();
|
||||
}
|
||||
}
|
||||
BpmProcessInstanceRespVO vo = BpmProcessInstanceConvert.INSTANCE.buildProcessInstance(processInstance,
|
||||
processDefinition, processDefinitionInfo, startUser, dept);
|
||||
return success(BpmProcessInstanceDTOConvert.INSTANCE.convert(vo));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> cancelProcessInstanceByStartUser(
|
||||
Long userId, @Valid @RequestBody BpmProcessInstanceCancelReqDTO cancelReqDTO) {
|
||||
BpmProcessInstanceCancelReqVO cancelReqVO = BpmProcessInstanceDTOConvert.INSTANCE.convertVO(cancelReqDTO);
|
||||
processInstanceService.cancelProcessInstanceByStartUser(userId, cancelReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> cancelProcessInstanceByAdmin(
|
||||
Long userId, @Valid @RequestBody BpmProcessInstanceCancelReqDTO cancelReqDTO) {
|
||||
BpmProcessInstanceCancelReqVO cancelReqVO = BpmProcessInstanceDTOConvert.INSTANCE.convertVO(cancelReqDTO);
|
||||
processInstanceService.cancelProcessInstanceByAdmin(userId, cancelReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public CommonResult<BpmApprovalDetailRespDTO> getApprovalDetail(Long userId,
|
||||
@Valid @RequestBody BpmApprovalDetailReqDTO reqDTO) {
|
||||
BpmApprovalDetailReqVO reqVO = BpmProcessInstanceDTOConvert.INSTANCE.convertVO(reqDTO);
|
||||
if (StrUtil.isNotEmpty(reqDTO.getProcessVariablesStr())) {
|
||||
reqVO.setProcessVariables(JsonUtils.parseObject(reqDTO.getProcessVariablesStr(), Map.class));
|
||||
}
|
||||
BpmApprovalDetailRespVO respVO = processInstanceService.getApprovalDetail(userId, reqVO);
|
||||
return success(BpmProcessInstanceDTOConvert.INSTANCE.convert(respVO));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public CommonResult<List<BpmApprovalDetailRespDTO.ActivityNode>> getNextApprovalNodes(Long userId,
|
||||
@Valid @RequestBody BpmApprovalDetailReqDTO reqDTO) {
|
||||
BpmApprovalDetailReqVO reqVO = BpmProcessInstanceDTOConvert.INSTANCE.convertVO(reqDTO);
|
||||
if (StrUtil.isNotEmpty(reqDTO.getProcessVariablesStr())) {
|
||||
reqVO.setProcessVariables(JsonUtils.parseObject(reqDTO.getProcessVariablesStr(), Map.class));
|
||||
}
|
||||
List<BpmApprovalDetailRespVO.ActivityNode> nodes = processInstanceService.getNextApprovalNodes(userId, reqVO);
|
||||
return success(BpmProcessInstanceDTOConvert.INSTANCE.convertActivityNodes(nodes));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<BpmProcessInstanceBpmnModelViewRespDTO> getProcessInstanceBpmnModelView(String id) {
|
||||
BpmProcessInstanceBpmnModelViewRespVO respVO = processInstanceService.getProcessInstanceBpmnModelView(id);
|
||||
return success(BpmProcessInstanceDTOConvert.INSTANCE.convert(respVO));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> approveTask(BpmTaskApproveReqDTO reqVO) {
|
||||
taskService.approveTask(getLoginUserId(), BeanUtils.toBean(reqVO, BpmTaskApproveReqVO.class));
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.zt.plat.module.bpm.convert.task;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||
import com.zt.plat.module.bpm.controller.admin.task.vo.instance.*;
|
||||
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
|
||||
import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
|
||||
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Named;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程实例 DTO 转换器
|
||||
*
|
||||
* @author ZT
|
||||
*/
|
||||
@Mapper
|
||||
public interface BpmProcessInstanceDTOConvert {
|
||||
|
||||
BpmProcessInstanceDTOConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceDTOConvert.class);
|
||||
|
||||
// VO to DTO
|
||||
BpmProcessInstancePageReqDTO convert(BpmProcessInstancePageReqVO bean);
|
||||
BpmProcessInstanceCancelReqDTO convert(BpmProcessInstanceCancelReqVO bean);
|
||||
BpmApprovalDetailReqDTO convert(BpmApprovalDetailReqVO bean);
|
||||
|
||||
// DTO to VO
|
||||
BpmProcessInstancePageReqVO convertVO(BpmProcessInstancePageReqDTO bean);
|
||||
BpmProcessInstanceCancelReqVO convertVO(BpmProcessInstanceCancelReqDTO bean);
|
||||
BpmApprovalDetailReqVO convertVO(BpmApprovalDetailReqDTO bean);
|
||||
|
||||
PageResult<BpmProcessInstanceRespDTO> convertPage(PageResult<BpmProcessInstanceRespVO> pageResult);
|
||||
BpmProcessInstanceRespDTO convert(BpmProcessInstanceRespVO bean);
|
||||
BpmApprovalDetailRespDTO convert(BpmApprovalDetailRespVO bean);
|
||||
BpmProcessInstanceBpmnModelViewRespDTO convert(BpmProcessInstanceBpmnModelViewRespVO bean);
|
||||
|
||||
List<BpmApprovalDetailRespDTO.ActivityNode> convertActivityNodes(List<BpmApprovalDetailRespVO.ActivityNode> nodes);
|
||||
|
||||
// 内部类转换
|
||||
BpmProcessInstanceRespDTO.Task convert(BpmProcessInstanceRespVO.Task task);
|
||||
BpmApprovalDetailRespDTO.ActivityNode convert(BpmApprovalDetailRespVO.ActivityNode node);
|
||||
BpmApprovalDetailRespDTO.ActivityNodeTask convert(BpmApprovalDetailRespVO.ActivityNodeTask task);
|
||||
|
||||
// 用户信息转换
|
||||
UserSimpleDTO convertUser(UserSimpleBaseVO user);
|
||||
BpmProcessDefinitionRespDTO convert(BpmProcessDefinitionRespVO definition);
|
||||
|
||||
@Mapping(target = "childNode", source = "childNode", qualifiedByName = "mapChildNode")
|
||||
BpmSimpleModelNodeDTO convert(BpmSimpleModelNodeVO simpleModel);
|
||||
|
||||
/**
|
||||
* 将BpmSimpleModelNodeVO的childNode转换为List<BpmSimpleModelNodeDTO>
|
||||
*/
|
||||
@Named("mapChildNode")
|
||||
default List<BpmSimpleModelNodeDTO> mapChildNode(BpmSimpleModelNodeVO childNode) {
|
||||
if (childNode == null) {
|
||||
return null;
|
||||
}
|
||||
return List.of(convert(childNode));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user