新增 流程历史关联表,储存被拒绝的流程的 新老实力编号

新增 重新发起的流程,查看详情可以 查询到历史的流程内容以及审批记录
每个流程追加 通过流程实例编号查询详情借口
This commit is contained in:
furongxin 2024-09-01 09:59:08 +08:00
parent aeaaca5935
commit e363398132
57 changed files with 646 additions and 19 deletions

View File

@ -48,4 +48,16 @@ public class BpmOACashController {
return success(cashService.convertCash(cashDO));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得现金支出申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOACashRespVO> getCashByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOACashDO cashDO = cashService.getByProcessInstanceId(processInstanceId);
return success(cashService.convertCash(cashDO));
}
}

View File

@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContract
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAContractConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAContractDO;
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAContractService;
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -33,6 +35,12 @@ public class BpmOAContractController {
@Resource
private BpmOAContractService contractService;
@Resource
private BpmHistoryProcessInstanceService historyProcessInstanceService;
@Resource
private BpmTaskService taskService;
@PostMapping("/create")
@Operation(summary = "创建请求申请")
public CommonResult<Long> createContract(@Valid @RequestBody BpmOAContractCreateReqVO createReqVO) {
@ -48,4 +56,14 @@ public class BpmOAContractController {
return success(BpmOAContractConvert.INSTANCE.convert(contract));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得合同审批")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAContractRespVO> getContractByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAContractDO contract = contractService.getByProcessInstanceId(processInstanceId);
return success(BpmOAContractConvert.INSTANCE.convert(contract));
}
}

View File

@ -66,6 +66,22 @@ public class BpmOAEntryController {
return success(respVO);
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得入职申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAEntryRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAEntryDO entry = entryService.getEntryByProcessInstanceId(processInstanceId);
BpmOAEntryRespVO respVO = BpmOAEntryConvert.INSTANCE.convert(entry);
// 设备部门名称
respVO.setEntryDeptName(getDept(entry.getEntryDeptId()).getName());
// 设备岗位名称
respVO.setEntryPostName(getPost(entry.getEntryPostId()).getName());
return success(respVO);
}
/**
* 获得部门信息
* @param deptId 部门id

View File

@ -49,4 +49,14 @@ public class BpmOAEvectionController {
return success(BpmOAEvectionConvert.INSTANCE.convert(evection));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得出差申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAEvectionRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAEvectionDO evection = evectionService.getByProcessInstanceId(processInstanceId);
return success(BpmOAEvectionConvert.INSTANCE.convert(evection));
}
}

View File

@ -71,4 +71,14 @@ public class BpmOAImprestController {
return success(BpmOAImprestConvert.INSTANCE.convert(imprest));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得备用金表单")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAImprestRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAImprestDO imprest = imprestService.getByProcessInstanceId(processInstanceId);
return success(BpmOAImprestConvert.INSTANCE.convert(imprest));
}
}

View File

@ -82,4 +82,33 @@ public class BpmOAIncentiveController {
bpmOAIncentiveRespVO.setUserInfo(userInfo);
return success(bpmOAIncentiveRespVO);
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得奖惩申请")
@Parameter(name = "BpmOAIncentiveRespVO", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAIncentiveRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAIncentiveDO incentive = incentiveService.getByProcessInstanceId(processInstanceId);
//获得 用户信息集合
List<AdminUserRespDTO> userRespDTO = userApi.getUserListByDeptIds(incentive.getIncentiveDeptIds()).getCheckedData();
//获得 部门信息集合
Map<Long, DeptRespDTO> deptRespDTOS = deptApi.getDeptMap(incentive.getIncentiveDeptIds());
Map<String, List<String>> userInfo = new HashMap<>();
//遍历 部门map集合
deptRespDTOS.forEach((key, value) -> {
List<String> userName = userRespDTO.stream().filter(user -> user.getDeptId().toString().contains(key.toString())
&& incentive.getIncentiveUserIds().contains(user.getId()))
.map(AdminUserRespDTO::getNickname).collect(Collectors.toList());
userInfo.put(value.getName(), userName);
});
BpmOAIncentiveRespVO bpmOAIncentiveRespVO = BpmOAIncentiveConvert.INSTANCE.convert(incentive);
bpmOAIncentiveRespVO.setUserInfo(userInfo);
return success(bpmOAIncentiveRespVO);
}
}

View File

@ -1,17 +1,16 @@
package cn.iocoder.yudao.module.bpm.controller.admin.oa;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeavePageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.leave.BpmOALeaveRespVO;
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -60,4 +59,12 @@ public class BpmOALeaveController {
return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得请假申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOALeaveRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOALeaveDO leave = leaveService.getByProcessInstanceId(processInstanceId);
return success(BpmOALeaveConvert.INSTANCE.convert(leave));
}
}

View File

@ -49,4 +49,14 @@ public class BpmOAOvertimeController {
return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得加班申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAOvertimeRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAOvertimeDO overtime = overtimeService.getByProcessInstanceId(processInstanceId);
return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime));
}
}

View File

@ -10,7 +10,6 @@ import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcureService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -69,4 +68,13 @@ public class BpmOAProcureController {
return success("操作成功");
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得OA 采购申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAProcureRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAProcureDO oaProcure = bpmOaProcureService.getByProcessInstanceId(processInstanceId);
return success(BpmOAProcureConvert.INSTANCE.convert(oaProcure));
}
}

View File

@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcurePageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcureRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcurePayRespVO;
@ -15,13 +14,11 @@ import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcureService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -86,5 +83,13 @@ public class BpmOAProcurePayController {
return success(BeanUtils.toBean(list, BpmOAProcureRespVO.class));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得采购支付")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAProcurePayRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAProcurePayDO oAProcurePay = oAProcurePayService.getByProcessInstanceId(processInstanceId);
return success(BeanUtils.toBean(oAProcurePay, BpmOAProcurePayRespVO.class));
}
}

View File

@ -49,4 +49,14 @@ public class BpmOARegularController {
return success(BpmOARegularConvert.INSTANCE.convert(regular));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得转正申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOARegularRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOARegularDO regular = regularService.getByProcessInstanceId(processInstanceId);
return success(BpmOARegularConvert.INSTANCE.convert(regular));
}
}

View File

@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementRespVO;
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAReimbursementConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAReimbursementService;
import io.swagger.v3.oas.annotations.Operation;
@ -57,4 +56,13 @@ public class BpmOAReimbursementController {
// return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult));
// }
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得报销申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAReimbursementRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAReimbursementDO reimbursement = service.getByProcessInstanceId(processInstanceId);
return success(service.convert(reimbursement));
}
}

View File

@ -49,4 +49,14 @@ public class BpmOASealController {
return success(BpmOASealConvert.INSTANCE.convert(seal));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得用章申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOASealRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOASealDO seal = sealService.getByProcessInstanceId(processInstanceId);
return success(BpmOASealConvert.INSTANCE.convert(seal));
}
}

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.second.BpmOASecondCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.second.BpmOASecondRespVO;
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOASecondConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASecondDO;
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASecondService;
@ -40,8 +41,17 @@ public class BpmOASecondController {
@GetMapping("/get")
@Operation(summary = "获得借调申请")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<?> getLeave(@RequestParam("id") Long id) {
public CommonResult<BpmOASecondRespVO> getLeave(@RequestParam("id") Long id) {
BpmOASecondDO second = service.getSecond(id);
return success(BpmOASecondConvert.INSTANCE.convert(second));
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得借调申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOASecondRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOASecondDO second = service.getByProcessInstanceId(processInstanceId);
return success(BpmOASecondConvert.INSTANCE.convert(second));
}
}

View File

@ -53,7 +53,7 @@ public class BpmOAShiftjobsController {
}
@GetMapping("/get")
@Operation(summary = "获得用章申请")
@Operation(summary = "获得调岗申请")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<BpmOAShiftjobsRespVO> getShiftjobs(@RequestParam("id") Long id) {
@ -74,6 +74,30 @@ public class BpmOAShiftjobsController {
//设置新负责人昵称
bpmOAShiftjobsRespVO.setNewParentName(userApi.getUser(shiftjobs.getNewParentId()).getCheckedData().getNickname());
return success(bpmOAShiftjobsRespVO);
}
@GetMapping("/getByProcessInstanceId")
@Operation(summary = "获得调岗申请")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<BpmOAShiftjobsRespVO> getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
BpmOAShiftjobsDO shiftjobs = shiftjobsService.getByProcessInstanceId(processInstanceId);
BpmOAShiftjobsRespVO bpmOAShiftjobsRespVO = BpmOAShiftjobsConvert.INSTANCE.convert(shiftjobs);
//设置原部门名称
bpmOAShiftjobsRespVO.setOldDeptName(deptApi.getDept(shiftjobs.getOldDeptId()).getCheckedData().getName());
//设置原岗位名称
bpmOAShiftjobsRespVO.setOldPostName(postApi.getPost(shiftjobs.getOldPostId()).getCheckedData().getName());
//设置原负责人昵称
bpmOAShiftjobsRespVO.setOldParentName(userApi.getUser(shiftjobs.getOldParentId()).getCheckedData().getNickname());
//设置新部门名称
bpmOAShiftjobsRespVO.setNewDeptName(deptApi.getDept(shiftjobs.getNewDeptId()).getCheckedData().getName());
//设置新岗位名称
bpmOAShiftjobsRespVO.setNewPostName(postApi.getPost(shiftjobs.getNewPostId()).getCheckedData().getName());
//设置新负责人昵称
bpmOAShiftjobsRespVO.setNewParentName(userApi.getUser(shiftjobs.getNewParentId()).getCheckedData().getNickname());
return success(bpmOAShiftjobsRespVO);
}

View File

@ -31,6 +31,12 @@ public class BpmOACashCreateReqVO {
@NotNull(message = "报销总金额不能为空")
private BigDecimal totalMoney;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -2,11 +2,9 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract;
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;
@ -45,13 +43,22 @@ public class BpmOAContractCreateReqVO {
@Schema(description = "对方负责人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String oHeadName;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
public BpmOAContractCreateReqVO() {
}
public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate, String mCompanyName, String mHeadName, String oCompanyName, String oHeadName, List<UploadUserFile> fileItems) {
public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate,
String mCompanyName, String mHeadName, String oCompanyName,
String oHeadName, String processInstanceId, List<UploadUserFile> fileItems,
Integer result) {
this.contractName = contractName;
this.contractNumber = contractNumber;
this.signingDate = signingDate;
@ -59,13 +66,31 @@ public class BpmOAContractCreateReqVO {
this.mHeadName = mHeadName;
this.oCompanyName = oCompanyName;
this.oHeadName = oHeadName;
this.processInstanceId = processInstanceId;
this.result = result;
this.fileItems = fileItems;
}
public Integer getResult() {
return result;
}
public void setResult(Integer result) {
this.result = result;
}
public String getContractName() {
return contractName;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public void setContractName(String contractName) {
this.contractName = contractName;
}

View File

@ -20,9 +20,6 @@ import java.util.List;
@Data
public class BpmOAEntryCreateReqVO {
@Schema(description = "入职申请表单主键", example = "1")
private Long id;
@Schema(description = "新入职用户部门编号", example = "10237")
private Long entryDeptId;
@ -56,6 +53,12 @@ public class BpmOAEntryCreateReqVO {
@Schema(description = "薪资情况", example = "27005")
private String salary;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;

View File

@ -51,6 +51,12 @@ public class BpmOAEvectionCreateReqVO {
@NotNull(message = "出差时长不能为空")
private BigDecimal timeLength;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -42,6 +42,12 @@ public class BpmOAImprestCreateReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
private LocalDate date;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -46,6 +46,12 @@ public class BpmOAIncentiveCreateReqVO {
@NotNull(message = "奖惩事由不能为空")
private String reason;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems ;
}

View File

@ -35,6 +35,12 @@ public class BpmOALeaveBaseVO {
@NotNull(message = "原因不能为空")
private String reason;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems ;

View File

@ -43,6 +43,12 @@ public class BpmOAOvertimeCreateReqVO {
@NotNull(message = "加班时长不能为空")
private BigDecimal timeLength;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -40,6 +40,12 @@ public class BpmOARegularCreateReqVO {
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String notes;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -47,6 +47,12 @@ public class BpmOAReimbursementCreateReqVO {
@NotNull(message = "报销发票总数不能为空")
private Integer totalQuantity ;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems ;
}

View File

@ -45,6 +45,12 @@ public class BpmOASealCreateReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
private LocalDate useDate;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -34,6 +34,12 @@ public class BpmOASecondCreateReqVO {
@Schema(description = "押金", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Long deposit;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.REQUIRED)
private List<UploadUserFile> fileItems ;
}

View File

@ -47,6 +47,12 @@ public class BpmOAShiftjobsCreateReqVO {
@Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String notes;
@Schema(description = "流程实例编号")
private String processInstanceId;
@Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer result;
@Schema(description = "上传文件", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private List<UploadUserFile> fileItems;
}

View File

@ -1,11 +1,14 @@
package cn.iocoder.yudao.module.bpm.controller.admin.task;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
@ -41,6 +44,9 @@ public class BpmTaskController {
@Resource
private AdminUserApi userApi;
@Resource
private BpmHistoryProcessInstanceService historyProcessInstanceService;
/**
* add by yaojun 2024.1.3
* 流程审核添加了抄送用户多用户的功能
@ -178,4 +184,19 @@ public class BpmTaskController {
return success(convertList(userIds, id -> userMap.get(Long.valueOf(id))));
}
@GetMapping("/get-history-task")
@Operation(summary = "获得历史审批记录")
@Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024")
public CommonResult<Map<String, List<BpmTaskRespVO>>> getHistoryTask(@RequestParam("processInstanceId") String processInstanceId) {
List<BpmHistoryProcessInstanceDO> historyProcessInstanceDOs = historyProcessInstanceService.getHistoryProcessInstanceDO(processInstanceId);
if (CollectionUtil.isEmpty(historyProcessInstanceDOs)) {
return success(null);
}
List<String> historyProcessInstanceIds = convertList(historyProcessInstanceDOs, BpmHistoryProcessInstanceDO::getHistoryProcessInstanceId);
return success(taskService.getTaskListByProcessInstanceIds(historyProcessInstanceIds));
}
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* Bpm 历史流程实例关联表
* 主要关联 被拒绝的流程实例
*/
@TableName(value = "bpm_history_process_instance", autoResultMap = true)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BpmHistoryProcessInstanceDO extends BaseDO {
/**
* 编号自增
*/
@TableId
private Long id;
/**
* 流程实例的编号
* 关联 ProcessInstance id 属性
*/
private String processInstanceId;
/**
* 历史流程实例的编号组
*/
private String historyProcessInstanceId;
}

View File

@ -0,0 +1,9 @@
package cn.iocoder.yudao.module.bpm.dal.mysql.task;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BpmHistoryProcessInstanceMapper extends BaseMapperX<BpmHistoryProcessInstanceDO> {
}

View File

@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashItemMapper;
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import cn.iocoder.yudao.module.system.api.bank.BankApi;
import cn.iocoder.yudao.module.system.api.bank.dto.BankRespDTO;
@ -86,6 +87,10 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
@Resource
private AdminUserApi userApi;
@Resource
@Lazy // 解决循环依赖
private BpmHistoryProcessInstanceService historyProcessInstanceService;
@Override
public Long createCash(Long userId, BpmOACashCreateReqVO createReqVO) {
@ -109,6 +114,13 @@ public class BpmOACashServiceImpl extends BpmOABaseService implements BpmOACashS
// 将工作流的编号更新到 OA 现金支出单中
cashMapper.updateById(new BpmOACashDO().setId(cash.getId()).setProcessInstanceId(processInstanceId));
// 判断是否为重新发起的流程
if (createReqVO.getProcessInstanceId() != null && createReqVO.getResult() == 3) {
// 将历史流程编号存入关联表中
historyProcessInstanceService.createHistoryProcessInstance(processInstanceId, createReqVO.getProcessInstanceId());
}
List<Long> procureIds = new ArrayList<>();
for (BpmOACashItemDO cashItemDO : bpmOACashItemDOS) {
//报销类别为 采购费时

View File

@ -31,4 +31,11 @@ public interface BpmOAContractService {
* @return 出差申请
*/
BpmOAContractDO getContract(Long id);
/**
* 获得指定出差申请
* @param processInstanceId 流程实例编号
* @return 出差申请
*/
BpmOAContractDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContractCreateReqVO;
@ -87,4 +88,14 @@ public class BpmOAContractServiceImpl extends BpmOABaseService implements BpmOAC
return contractMapper.selectById(id);
}
@Override
public BpmOAContractDO getByProcessInstanceId(String processInstanceId) {
List<BpmOAContractDO> bpmOAContractDOS = contractMapper.selectList(BpmOAContractDO::getProcessInstanceId, processInstanceId);
if (CollectionUtil.isEmpty(bpmOAContractDOS)) {
return null;
}
return bpmOAContractDOS.get(0);
}
}

View File

@ -37,4 +37,5 @@ public interface BpmOAEntryService {
* @return 入职申请信息
*/
BpmOAEntryDO getEntryByProcessInstanceId(String processInstanceId);
}

View File

@ -31,4 +31,11 @@ public interface BpmOAEvectionService {
* @return 出差申请
*/
BpmOAEvectionDO getEvection(Long id);
/**
* 获得指定的出差申请
* @param processInstanceId 流程实例编号
* @return 出差申请
*/
BpmOAEvectionDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -83,4 +83,10 @@ public class BpmOAEvectionServiceImpl extends BpmOABaseService implements BpmOAE
return evectionMapper.selectById(id);
}
@Override
public BpmOAEvectionDO getByProcessInstanceId(String processInstanceId) {
return evectionMapper.selectOne(BpmOAEvectionDO::getProcessInstanceId, processInstanceId);
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOAIncentiveService {
* @return 奖惩申请
*/
BpmOAIncentiveDO getIncentive(Long id);
/**
* 获得指定奖惩流程
* @param processInstanceId 流程实例编号
* @return 奖惩申请
*/
BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.incentive.BpmOAIncentiveCreateReqVO;
@ -83,4 +84,14 @@ public class BpmOAIncentiveServiceImpl extends BpmOABaseService implements BpmOA
return incentiveMapper.selectById(id);
}
@Override
public BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId) {
List<BpmOAIncentiveDO> bpmOAIncentiveDOS = incentiveMapper.selectList(BpmOAIncentiveDO::getProcessInstanceId, processInstanceId);
if (CollectionUtil.isEmpty(bpmOAIncentiveDOS)) {
return null;
}
return bpmOAIncentiveDOS.get(0);
}
}

View File

@ -58,4 +58,11 @@ public interface BpmOALeaveService {
* @return
*/
List<BpmOALeaveRpcVO> getLeaveListByTime(String time);
/**
* 获得指定请假申请
* @param processInstanceId 流程实例编号
* @return 出差申请
*/
BpmOALeaveDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.common.pojo.BpmOALeaveDTO;
@ -143,4 +144,13 @@ public class BpmOALeaveServiceImpl extends BpmOABaseService implements BpmOALeav
return leaveMapper.getLeaveListByTime(time);
}
@Override
public BpmOALeaveDO getByProcessInstanceId(String processInstanceId) {
List<BpmOALeaveDO> list = leaveMapper.selectList(BpmOALeaveDO::getProcessInstanceId, processInstanceId);
if (CollectionUtil.isEmpty(list)) {
return null;
}
return list.get(0);
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOAOvertimeService {
* @return 加班申请
*/
BpmOAOvertimeDO getOvertime(Long id);
/**
* 获得指定的加班申请
* @param processInstanceId 流程实例编号
* @return 加班申请
*/
BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.overtime.BpmOAOvertimeCreateReqVO;
@ -83,4 +84,14 @@ public class BpmOAOvertimeServiceImpl extends BpmOABaseService implements BpmOAO
return overtimeMapper.selectById(id);
}
@Override
public BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId) {
List<BpmOAOvertimeDO> bpmOAOvertimeDOS = overtimeMapper.selectList(BpmOAOvertimeDO::getProcessInstanceId, processInstanceId);
if (!CollectionUtil.isEmpty(bpmOAOvertimeDOS)) {
return bpmOAOvertimeDOS.get(0);
}
return null;
}
}

View File

@ -66,4 +66,11 @@ public interface BpmOAProcureService {
* @param result
*/
void updateEvectionResult(Long id, Integer result);
/**
* 获得指定的采购申请
* @param processInstanceId 流程实例编号
* @return 采购申请
*/
BpmOAProcureDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@ -13,7 +14,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procure.BpmOAProcureSa
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAProcureConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcureDO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAProcureMapper;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
import org.springframework.stereotype.Service;
@ -114,4 +114,14 @@ public class BpmOAProcureServiceImpl extends BpmOABaseService implements BpmOAPr
bpmOaProcureMapper.updateById(new BpmOAProcureDO().setId(id).setResult(result));
}
@Override
public BpmOAProcureDO getByProcessInstanceId(String processInstanceId) {
List<BpmOAProcureDO> list = bpmOaProcureMapper.selectList(BpmOAProcureDO::getProcessInstanceId, processInstanceId);
if (!CollectionUtil.isEmpty(list)) {
return list.get(0);
}
return null;
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOARegularService {
* @return 转正申请
*/
BpmOARegularDO getRegular(Long id);
/**
* 获得指定的转正申请
* @param processInstanceId 流程实例编号
* @return 转正申请
*/
BpmOARegularDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -83,4 +83,10 @@ public class BpmOARegularServiceImpl extends BpmOABaseService implements BpmOARe
return regularMapper.selectById(id);
}
@Override
public BpmOARegularDO getByProcessInstanceId(String processInstanceId) {
return regularMapper.selectOne(BpmOARegularDO::getProcessInstanceId, processInstanceId);
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOASealService {
* @return 用章申请
*/
BpmOASealDO getSeal(Long id);
/**
* 获得指定的用章申请
* @param processInstanceId 流程实例编号
* @return 用章申请
*/
BpmOASealDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -83,4 +83,10 @@ public class BpmOASealServiceImpl extends BpmOABaseService implements BpmOASealS
return sealMapper.selectById(id);
}
@Override
public BpmOASealDO getByProcessInstanceId(String processInstanceId) {
return sealMapper.selectOne(BpmOASealDO::getProcessInstanceId, processInstanceId);
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOASecondService {
* @return 借调申请
*/
BpmOASecondDO getSecond(Long id);
/**
* 获得指定的借调申请
* @param processInstanceId 流程实例编号
* @return 借调申请
*/
BpmOASecondDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -80,4 +80,10 @@ public class BpmOASecondServiceImpl extends BpmOABaseService implements BpmOASec
return secondMapper.selectById(id);
}
@Override
public BpmOASecondDO getByProcessInstanceId(String processInstanceId) {
return secondMapper.selectOne(BpmOASecondDO::getProcessInstanceId, processInstanceId);
}
}

View File

@ -37,4 +37,11 @@ public interface BpmOAShiftjobsService {
* @return 调岗申请
*/
BpmOAShiftjobsDO getShiftjobs(Long id);
/**
* 获得指定的调岗申请
* @param processInstanceId 流程实例编号
* @return 调岗申请
*/
BpmOAShiftjobsDO getByProcessInstanceId(String processInstanceId);
}

View File

@ -83,4 +83,10 @@ public class BpmOAShiftjobsServiceImpl extends BpmOABaseService implements BpmOA
return shiftjobsMapper.selectById(id);
}
@Override
public BpmOAShiftjobsDO getByProcessInstanceId(String processInstanceId) {
return shiftjobsMapper.selectByProcessInstanceId(processInstanceId);
}
}

View File

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.bpm.service.task;
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
import java.util.List;
/**
* 历史流程实例 Service 接口
*/
public interface BpmHistoryProcessInstanceService {
/**
* 创建历史流程关联记录
* @param ProcessInstanceId 流程实例ID
* @param historyProcessInstanceId 历史流程实例ID
*/
void createHistoryProcessInstance(String ProcessInstanceId, String historyProcessInstanceId);
List<BpmHistoryProcessInstanceDO> getHistoryProcessInstanceDO(String processInstanceId);
}

View File

@ -0,0 +1,38 @@
package cn.iocoder.yudao.module.bpm.service.task;
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmHistoryProcessInstanceDO;
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmHistoryProcessInstanceMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
/**
* BPM 历史流程实例 Service 实现类
*/
@Service
@Slf4j
@Validated
public class BpmHistoryProcessInstanceServiceImpl implements BpmHistoryProcessInstanceService{
@Resource
private BpmHistoryProcessInstanceMapper historyProcessInstanceMapper;
@Override
public void createHistoryProcessInstance(String ProcessInstanceId, String historyProcessInstanceId) {
BpmHistoryProcessInstanceDO historyProcessInstanceDO = new BpmHistoryProcessInstanceDO()
.setProcessInstanceId(ProcessInstanceId)
.setHistoryProcessInstanceId(historyProcessInstanceId);
historyProcessInstanceMapper.insert(historyProcessInstanceDO);
}
@Override
public List<BpmHistoryProcessInstanceDO> getHistoryProcessInstanceDO(String processInstanceId) {
return historyProcessInstanceMapper.selectList(BpmHistoryProcessInstanceDO::getProcessInstanceId, processInstanceId);
}
}

View File

@ -89,6 +89,14 @@ public interface BpmTaskService {
*/
List<BpmTaskRespVO> getTaskListByProcessInstanceId(String processInstanceId);
/**
* 获得指令流程实例的流程任务列表包括所有状态的
*
* @param processInstanceIds 流程实例的编号
* @return 流程任务列表
*/
Map<String, List<BpmTaskRespVO>> getTaskListByProcessInstanceIds(List<String> processInstanceIds);
/**
* 通过任务 ID 集合获取任务扩展表信息集合
@ -229,4 +237,6 @@ public interface BpmTaskService {
* @return task
*/
BpmTaskExtDO getTaskByProcessInstanceIdAndResult(String processInstanceId, Integer result);
}

View File

@ -344,6 +344,52 @@ public class BpmTaskServiceImpl implements BpmTaskService {
return BpmTaskConvert.INSTANCE.convertChildrenList(result);
}
@Override
public Map<String, List<BpmTaskRespVO>> getTaskListByProcessInstanceIds(List<String> processInstanceIds) {
Map<String, List<BpmTaskRespVO>> respVOS = new HashMap<>();
// 获得任务列表
List<HistoricTaskInstance> tasks = historyService.createHistoricTaskInstanceQuery()
.processInstanceIdIn(processInstanceIds)
.orderByHistoricTaskInstanceStartTime().desc() // 创建时间倒序
.list();
if (CollUtil.isEmpty(tasks)) {
return null;
}
// 获得任务列表
List<BpmTaskExtDO> bpmTaskExtDOs = taskExtMapper.selectList(BpmTaskExtDO::getProcessInstanceId, processInstanceIds);
/* 剔除自动审批的Task记录 */
bpmTaskExtDOs = bpmTaskExtDOs.stream()
.filter(bpmTaskExtDO -> !BpmConstants.AUTO_APPRAVAL.equals(bpmTaskExtDO.getReason()) || BpmConstants.SELF_TASK_NAME.equals(bpmTaskExtDO.getName()))
.collect(Collectors.toList());
List<String> taskIds = convertList(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
tasks = tasks.stream().filter(task -> taskIds.contains(task.getId())).collect(Collectors.toList());
// 获得 User Map
Set<Long> userIds = convertSet(bpmTaskExtDOs, BpmTaskExtDO::getAssigneeUserId);
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
// 获得 Dept Map
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
// 获得BpmTaskExtDO map
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
// 获得 task MAP
Map<String, List<HistoricTaskInstance>> taskMap = convertMultiMap(tasks, HistoricTaskInstance::getProcessInstanceId);
taskMap.forEach((processInstanceId, taskList) -> {
// 拼接数据
List<BpmTaskRespVO> result = BpmTaskConvert.INSTANCE.convertList3(taskList, bpmTaskExtDOMap, null, userMap, deptMap);
respVOS.put(processInstanceId, result);
});
return respVOS;
}
@Override
public List<BpmTaskExtDO> getTaskListByTaskIdList(List<String> taskIdList) {
return taskExtMapper.selectListByTaskIds(taskIdList);