diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOACashController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOACashController.java index ecbc5bb5..976d12d0 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOACashController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOACashController.java @@ -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 getCashByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOACashDO cashDO = cashService.getByProcessInstanceId(processInstanceId); + + return success(cashService.convertCash(cashDO)); + } + + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAContractController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAContractController.java index 6e3b9912..7ef4b6a9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAContractController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAContractController.java @@ -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 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 getContractByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAContractDO contract = contractService.getByProcessInstanceId(processInstanceId); + + return success(BpmOAContractConvert.INSTANCE.convert(contract)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java index 208afd58..9c3c8e04 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEntryController.java @@ -66,6 +66,22 @@ public class BpmOAEntryController { return success(respVO); } + @GetMapping("/getByProcessInstanceId") + @Operation(summary = "获得入职申请") + @Parameter(name = "processInstanceId", description = "流程实例编号", required = true, example = "1024") + public CommonResult 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 diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java index 041d4183..1a0f42c2 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAEvectionController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAEvectionDO evection = evectionService.getByProcessInstanceId(processInstanceId); + + return success(BpmOAEvectionConvert.INSTANCE.convert(evection)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAImprestController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAImprestController.java index 5f2b339f..f6d11932 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAImprestController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAImprestController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAImprestDO imprest = imprestService.getByProcessInstanceId(processInstanceId); + + return success(BpmOAImprestConvert.INSTANCE.convert(imprest)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAIncentiveController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAIncentiveController.java index 7c828820..fee285f9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAIncentiveController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAIncentiveController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAIncentiveDO incentive = incentiveService.getByProcessInstanceId(processInstanceId); + + //获得 用户信息集合 + List userRespDTO = userApi.getUserListByDeptIds(incentive.getIncentiveDeptIds()).getCheckedData(); + + //获得 部门信息集合 + Map deptRespDTOS = deptApi.getDeptMap(incentive.getIncentiveDeptIds()); + + Map> userInfo = new HashMap<>(); + //遍历 部门map集合 + deptRespDTOS.forEach((key, value) -> { + + List 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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java index a73ef674..69f81043 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOALeaveDO leave = leaveService.getByProcessInstanceId(processInstanceId); + return success(BpmOALeaveConvert.INSTANCE.convert(leave)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAOvertimeController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAOvertimeController.java index b665200d..335fc5b1 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAOvertimeController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAOvertimeController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAOvertimeDO overtime = overtimeService.getByProcessInstanceId(processInstanceId); + + return success(BpmOAOvertimeConvert.INSTANCE.convert(overtime)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcureController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcureController.java index 284b3285..6db95061 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcureController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcureController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAProcureDO oaProcure = bpmOaProcureService.getByProcessInstanceId(processInstanceId); + return success(BpmOAProcureConvert.INSTANCE.convert(oaProcure)); + } + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java index 6961f6b7..36cc7585 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAProcurePayDO oAProcurePay = oAProcurePayService.getByProcessInstanceId(processInstanceId); + return success(BeanUtils.toBean(oAProcurePay, BpmOAProcurePayRespVO.class)); + } } \ No newline at end of file diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOARegularController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOARegularController.java index dee3c5e8..075075df 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOARegularController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOARegularController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOARegularDO regular = regularService.getByProcessInstanceId(processInstanceId); + + return success(BpmOARegularConvert.INSTANCE.convert(regular)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAReimbursementController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAReimbursementController.java index 5eec7422..17660416 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAReimbursementController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAReimbursementController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOAReimbursementDO reimbursement = service.getByProcessInstanceId(processInstanceId); + return success(service.convert(reimbursement)); + } + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASealController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASealController.java index ab1b827e..b295af7b 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASealController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASealController.java @@ -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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOASealDO seal = sealService.getByProcessInstanceId(processInstanceId); + + return success(BpmOASealConvert.INSTANCE.convert(seal)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASecondController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASecondController.java index 1c1debf9..6c02f062 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASecondController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOASecondController.java @@ -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 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 getByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + BpmOASecondDO second = service.getByProcessInstanceId(processInstanceId); + return success(BpmOASecondConvert.INSTANCE.convert(second)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAShiftjobsController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAShiftjobsController.java index 761c21d9..a18ab99f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAShiftjobsController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAShiftjobsController.java @@ -53,7 +53,7 @@ public class BpmOAShiftjobsController { } @GetMapping("/get") - @Operation(summary = "获得用章申请") + @Operation(summary = "获得调岗申请") @Parameter(name = "id", description = "编号", required = true, example = "1024") public CommonResult 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 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); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/cash/BpmOACashCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/cash/BpmOACashCreateReqVO.java index c48d84d5..7ee50773 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/cash/BpmOACashCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/cash/BpmOACashCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/contract/BpmOAContractCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/contract/BpmOAContractCreateReqVO.java index 60528b37..d3e52f25 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/contract/BpmOAContractCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/contract/BpmOAContractCreateReqVO.java @@ -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 fileItems; public BpmOAContractCreateReqVO() { } - public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate, String mCompanyName, String mHeadName, String oCompanyName, String oHeadName, List fileItems) { + public BpmOAContractCreateReqVO(String contractName, String contractNumber, LocalDate signingDate, + String mCompanyName, String mHeadName, String oCompanyName, + String oHeadName, String processInstanceId, List 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; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java index 9adc9141..18df1a16 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/entry/BpmOAEntryCreateReqVO.java @@ -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 fileItems; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java index fdb7883b..e50cbcb9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/evection/BpmOAEvectionCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/imprest/BpmOAImprestCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/imprest/BpmOAImprestCreateReqVO.java index f7b2d19d..ad696dbd 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/imprest/BpmOAImprestCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/imprest/BpmOAImprestCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/incentive/BpmOAIncentiveCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/incentive/BpmOAIncentiveCreateReqVO.java index 0ec8a73b..54e112a4 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/incentive/BpmOAIncentiveCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/incentive/BpmOAIncentiveCreateReqVO.java @@ -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 fileItems ; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/leave/BpmOALeaveBaseVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/leave/BpmOALeaveBaseVO.java index df078edc..d2fe231f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/leave/BpmOALeaveBaseVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/leave/BpmOALeaveBaseVO.java @@ -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 fileItems ; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/overtime/BpmOAOvertimeCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/overtime/BpmOAOvertimeCreateReqVO.java index ec65ecfe..4d09ce75 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/overtime/BpmOAOvertimeCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/overtime/BpmOAOvertimeCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java index 37d14ec7..5d2560ad 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/regular/BpmOARegularCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/reimbursement/BpmOAReimbursementCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/reimbursement/BpmOAReimbursementCreateReqVO.java index 68222c36..6e622c44 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/reimbursement/BpmOAReimbursementCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/reimbursement/BpmOAReimbursementCreateReqVO.java @@ -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 fileItems ; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/seal/BpmOASealCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/seal/BpmOASealCreateReqVO.java index 24696862..72aefba8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/seal/BpmOASealCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/seal/BpmOASealCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/second/BpmOASecondCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/second/BpmOASecondCreateReqVO.java index 29560b51..b47753d9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/second/BpmOASecondCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/second/BpmOASecondCreateReqVO.java @@ -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 fileItems ; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/shiftjobs/BpmOAShiftjobsCreateReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/shiftjobs/BpmOAShiftjobsCreateReqVO.java index 101f1c7f..9091f729 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/shiftjobs/BpmOAShiftjobsCreateReqVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/shiftjobs/BpmOAShiftjobsCreateReqVO.java @@ -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 fileItems; } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java index 1401f768..544eec30 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -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>> getHistoryTask(@RequestParam("processInstanceId") String processInstanceId) { + + List historyProcessInstanceDOs = historyProcessInstanceService.getHistoryProcessInstanceDO(processInstanceId); + if (CollectionUtil.isEmpty(historyProcessInstanceDOs)) { + return success(null); + } + + List historyProcessInstanceIds = convertList(historyProcessInstanceDOs, BpmHistoryProcessInstanceDO::getHistoryProcessInstanceId); + + return success(taskService.getTaskListByProcessInstanceIds(historyProcessInstanceIds)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmHistoryProcessInstanceDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmHistoryProcessInstanceDO.java new file mode 100644 index 00000000..81f1351e --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmHistoryProcessInstanceDO.java @@ -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; +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmHistoryProcessInstanceMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmHistoryProcessInstanceMapper.java new file mode 100644 index 00000000..32cb39f9 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmHistoryProcessInstanceMapper.java @@ -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 { +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java index 1cb9edb8..62b9f08a 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOACashServiceImpl.java @@ -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 procureIds = new ArrayList<>(); for (BpmOACashItemDO cashItemDO : bpmOACashItemDOS) { //报销类别为 采购费时 diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractService.java index a59fa28b..d98bb6bf 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractService.java @@ -31,4 +31,11 @@ public interface BpmOAContractService { * @return 出差申请 */ BpmOAContractDO getContract(Long id); + + /** + * 获得指定出差申请 + * @param processInstanceId 流程实例编号 + * @return 出差申请 + */ + BpmOAContractDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractServiceImpl.java index f2505f01..68b2477a 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAContractServiceImpl.java @@ -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 bpmOAContractDOS = contractMapper.selectList(BpmOAContractDO::getProcessInstanceId, processInstanceId); + if (CollectionUtil.isEmpty(bpmOAContractDOS)) { + return null; + } + return bpmOAContractDOS.get(0); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java index 63433a78..0120aac3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEntryService.java @@ -37,4 +37,5 @@ public interface BpmOAEntryService { * @return 入职申请信息 */ BpmOAEntryDO getEntryByProcessInstanceId(String processInstanceId); + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionService.java index 507be6d8..5a4137a8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionService.java @@ -31,4 +31,11 @@ public interface BpmOAEvectionService { * @return 出差申请 */ BpmOAEvectionDO getEvection(Long id); + + /** + * 获得指定的出差申请 + * @param processInstanceId 流程实例编号 + * @return 出差申请 + */ + BpmOAEvectionDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionServiceImpl.java index dd8c7a72..c09ed7b7 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAEvectionServiceImpl.java @@ -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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveService.java index f6b3b9bb..0912c6d3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveService.java @@ -37,4 +37,11 @@ public interface BpmOAIncentiveService { * @return 奖惩申请 */ BpmOAIncentiveDO getIncentive(Long id); + + /** + * 获得指定奖惩流程 + * @param processInstanceId 流程实例编号 + * @return 奖惩申请 + */ + BpmOAIncentiveDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveServiceImpl.java index ddaa01b7..0d1eb075 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAIncentiveServiceImpl.java @@ -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 bpmOAIncentiveDOS = incentiveMapper.selectList(BpmOAIncentiveDO::getProcessInstanceId, processInstanceId); + if (CollectionUtil.isEmpty(bpmOAIncentiveDOS)) { + return null; + } + return bpmOAIncentiveDOS.get(0); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java index ef954f97..74dfef67 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java @@ -58,4 +58,11 @@ public interface BpmOALeaveService { * @return */ List getLeaveListByTime(String time); + + /** + * 获得指定请假申请 + * @param processInstanceId 流程实例编号 + * @return 出差申请 + */ + BpmOALeaveDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java index 2cd29b15..251c2581 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java @@ -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 list = leaveMapper.selectList(BpmOALeaveDO::getProcessInstanceId, processInstanceId); + if (CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeService.java index 2f23dc2a..055a0526 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeService.java @@ -37,4 +37,11 @@ public interface BpmOAOvertimeService { * @return 加班申请 */ BpmOAOvertimeDO getOvertime(Long id); + + /** + * 获得指定的加班申请 + * @param processInstanceId 流程实例编号 + * @return 加班申请 + */ + BpmOAOvertimeDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeServiceImpl.java index c8b41217..2e637aaa 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAOvertimeServiceImpl.java @@ -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 bpmOAOvertimeDOS = overtimeMapper.selectList(BpmOAOvertimeDO::getProcessInstanceId, processInstanceId); + if (!CollectionUtil.isEmpty(bpmOAOvertimeDOS)) { + return bpmOAOvertimeDOS.get(0); + } + return null; + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureService.java index a7dde6eb..f6f267e9 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureService.java @@ -66,4 +66,11 @@ public interface BpmOAProcureService { * @param result */ void updateEvectionResult(Long id, Integer result); + + /** + * 获得指定的采购申请 + * @param processInstanceId 流程实例编号 + * @return 采购申请 + */ + BpmOAProcureDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureServiceImpl.java index 6db1d31b..9f54c572 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAProcureServiceImpl.java @@ -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 list = bpmOaProcureMapper.selectList(BpmOAProcureDO::getProcessInstanceId, processInstanceId); + if (!CollectionUtil.isEmpty(list)) { + return list.get(0); + } + return null; + } + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularService.java index 907c292d..375afa6b 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularService.java @@ -37,4 +37,11 @@ public interface BpmOARegularService { * @return 转正申请 */ BpmOARegularDO getRegular(Long id); + + /** + * 获得指定的转正申请 + * @param processInstanceId 流程实例编号 + * @return 转正申请 + */ + BpmOARegularDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularServiceImpl.java index 8c082057..b1e751a7 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOARegularServiceImpl.java @@ -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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealService.java index 91f39fc4..b3fdd189 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealService.java @@ -37,4 +37,11 @@ public interface BpmOASealService { * @return 用章申请 */ BpmOASealDO getSeal(Long id); + + /** + * 获得指定的用章申请 + * @param processInstanceId 流程实例编号 + * @return 用章申请 + */ + BpmOASealDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealServiceImpl.java index 25f3b254..8b688705 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASealServiceImpl.java @@ -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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondService.java index 5f562047..d6a71a1f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondService.java @@ -37,4 +37,11 @@ public interface BpmOASecondService { * @return 借调申请 */ BpmOASecondDO getSecond(Long id); + + /** + * 获得指定的借调申请 + * @param processInstanceId 流程实例编号 + * @return 借调申请 + */ + BpmOASecondDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondServiceImpl.java index dc5c54a9..95b5d77f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASecondServiceImpl.java @@ -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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsService.java index c8655155..c574b65f 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsService.java @@ -37,4 +37,11 @@ public interface BpmOAShiftjobsService { * @return 调岗申请 */ BpmOAShiftjobsDO getShiftjobs(Long id); + + /** + * 获得指定的调岗申请 + * @param processInstanceId 流程实例编号 + * @return 调岗申请 + */ + BpmOAShiftjobsDO getByProcessInstanceId(String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsServiceImpl.java index bf6844d2..ccb65b26 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAShiftjobsServiceImpl.java @@ -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); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceService.java new file mode 100644 index 00000000..619fcf6f --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceService.java @@ -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 getHistoryProcessInstanceDO(String processInstanceId); +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceServiceImpl.java new file mode 100644 index 00000000..adf074b7 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmHistoryProcessInstanceServiceImpl.java @@ -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 getHistoryProcessInstanceDO(String processInstanceId) { + + return historyProcessInstanceMapper.selectList(BpmHistoryProcessInstanceDO::getProcessInstanceId, processInstanceId); + } +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index 62b9fcdf..fb6743fc 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -89,6 +89,14 @@ public interface BpmTaskService { */ List getTaskListByProcessInstanceId(String processInstanceId); + /** + * 获得指令流程实例的流程任务列表,包括所有状态的 + * + * @param processInstanceIds 流程实例的编号 + * @return 流程任务列表 + */ + Map> getTaskListByProcessInstanceIds(List processInstanceIds); + /** * 通过任务 ID 集合,获取任务扩展表信息集合 @@ -229,4 +237,6 @@ public interface BpmTaskService { * @return task */ BpmTaskExtDO getTaskByProcessInstanceIdAndResult(String processInstanceId, Integer result); + + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index 75fb5b8e..6320a078 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -344,6 +344,52 @@ public class BpmTaskServiceImpl implements BpmTaskService { return BpmTaskConvert.INSTANCE.convertChildrenList(result); } + @Override + public Map> getTaskListByProcessInstanceIds(List processInstanceIds) { + + Map> respVOS = new HashMap<>(); + + // 获得任务列表 + List tasks = historyService.createHistoricTaskInstanceQuery() + .processInstanceIdIn(processInstanceIds) + .orderByHistoricTaskInstanceStartTime().desc() // 创建时间倒序 + .list(); + if (CollUtil.isEmpty(tasks)) { + return null; + } + + // 获得任务列表 + List 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 taskIds = convertList(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); + tasks = tasks.stream().filter(task -> taskIds.contains(task.getId())).collect(Collectors.toList()); + + // 获得 User Map + Set userIds = convertSet(bpmTaskExtDOs, BpmTaskExtDO::getAssigneeUserId); + Map userMap = adminUserApi.getUserMap(userIds); + // 获得 Dept Map + Map deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); + + // 获得BpmTaskExtDO map + Map bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); + + // 获得 task MAP + Map> taskMap = convertMultiMap(tasks, HistoricTaskInstance::getProcessInstanceId); + taskMap.forEach((processInstanceId, taskList) -> { + + // 拼接数据 + List result = BpmTaskConvert.INSTANCE.convertList3(taskList, bpmTaskExtDOMap, null, userMap, deptMap); + + respVOS.put(processInstanceId, result); + }); + + return respVOS; + } + @Override public List getTaskListByTaskIdList(List taskIdList) { return taskExtMapper.selectListByTaskIds(taskIdList);