Commit 403e5a00179d9c810a9c0bada070eacae50c55ac
1 parent
cfa1dff1
APP端审批详情接口 转办 委派等
Showing
12 changed files
with
378 additions
and
16 deletions
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java
| 1 | 1 | package com.zteits.urbanops.module.workorder.controller.app.garden; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.util.StrUtil; | |
| 3 | 4 | import com.zteits.urbanops.framework.common.pojo.CommonResult; |
| 4 | 5 | import com.zteits.urbanops.framework.common.pojo.PageResult; |
| 6 | +import com.zteits.urbanops.framework.common.util.json.JsonUtils; | |
| 5 | 7 | import com.zteits.urbanops.framework.common.util.object.BeanUtils; |
| 6 | 8 | import com.zteits.urbanops.framework.web.core.util.WebFrameworkUtils; |
| 7 | -import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO; | |
| 8 | -import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO; | |
| 9 | -import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; | |
| 10 | -import com.zteits.urbanops.module.bpm.service.task.BpmTaskService; | |
| 9 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailReqVO; | |
| 10 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO; | |
| 11 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskDelegateReqVO; | |
| 12 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskTransferReqVO; | |
| 11 | 13 | import com.zteits.urbanops.module.garden.api.road.RoadApi; |
| 12 | 14 | import com.zteits.urbanops.module.garden.api.road.dto.RoadReqDTO; |
| 13 | 15 | import com.zteits.urbanops.module.garden.api.road.dto.RoadRespDTO; |
| 14 | -import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; | |
| 15 | -import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderRespVO; | |
| 16 | 16 | import com.zteits.urbanops.module.workorder.controller.app.garden.vo.*; |
| 17 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailReqVO; | |
| 18 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailRespVO; | |
| 19 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.*; | |
| 17 | 20 | import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; |
| 18 | 21 | import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; |
| 19 | 22 | import io.swagger.v3.oas.annotations.Operation; |
| ... | ... | @@ -25,6 +28,7 @@ import org.springframework.security.access.prepost.PreAuthorize; |
| 25 | 28 | import org.springframework.web.bind.annotation.*; |
| 26 | 29 | |
| 27 | 30 | import java.util.List; |
| 31 | +import java.util.Map; | |
| 28 | 32 | |
| 29 | 33 | import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; |
| 30 | 34 | import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| ... | ... | @@ -60,16 +64,25 @@ public class AppGardenWorkOrderController { |
| 60 | 64 | |
| 61 | 65 | @GetMapping("/get") |
| 62 | 66 | //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')") |
| 63 | - @Operation(summary = "app-获得工单详情") | |
| 67 | + @Operation(summary = "app - 获得工单详情") | |
| 64 | 68 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 65 | 69 | public CommonResult<AppGardenWorkOrderRespVO> getGardenInspection(@RequestParam("id") Long id) { |
| 66 | 70 | BpmGardenWorkOrderDO gardenInspection = gardenService.getWorkOrder(id); |
| 67 | 71 | return success(BeanUtils.toBean(gardenInspection, AppGardenWorkOrderRespVO.class)); |
| 68 | 72 | } |
| 69 | 73 | |
| 74 | + @GetMapping("/getApprovalDetail") | |
| 75 | + @Operation(summary = "app - 获得审批详情") | |
| 76 | + @Parameter(name = "id", description = "流程实例的编号", required = true) | |
| 77 | + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')") | |
| 78 | + @SuppressWarnings("unchecked") | |
| 79 | + public CommonResult<AppGardenApprovalDetailRespVO> getApprovalDetail(@Valid AppGardenApprovalDetailReqVO reqVO) { | |
| 80 | + return success(gardenService.getApprovalDetail(reqVO)); | |
| 81 | + } | |
| 82 | + | |
| 70 | 83 | @GetMapping("/page") |
| 71 | 84 | //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')") |
| 72 | - @Operation(summary = "app-获得园林巡检工单申请分页") | |
| 85 | + @Operation(summary = "app-获得园林工单申请分页") | |
| 73 | 86 | public CommonResult<PageResult<AppGardenWorkOrderRespVO>> getGardenInspectionPage(@Valid AppGardenWorkOrderPageReqVO pageVO) { |
| 74 | 87 | PageResult<BpmGardenWorkOrderDO> pageResult = gardenService.getGardenInspectionPage(getLoginUserId(), pageVO); |
| 75 | 88 | return success(BeanUtils.toBean(pageResult, AppGardenWorkOrderRespVO.class)); |
| ... | ... | @@ -90,6 +103,38 @@ public class AppGardenWorkOrderController { |
| 90 | 103 | return success(true); |
| 91 | 104 | } |
| 92 | 105 | |
| 106 | + @PutMapping("/return") | |
| 107 | + @Operation(summary = "退回任务", description = "用于【流程详情】的【退回】按钮") | |
| 108 | + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") | |
| 109 | + public CommonResult<Boolean> returnTask(@Valid @RequestBody AppGardenTaskReturnReqVO reqVO) { | |
| 110 | + gardenService.returnTask(reqVO); | |
| 111 | + return success(true); | |
| 112 | + } | |
| 113 | + | |
| 114 | + @PutMapping("/withdraw") | |
| 115 | + @Operation(summary = "撤回任务") | |
| 116 | + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") | |
| 117 | + public CommonResult<Boolean> withdrawTask(@RequestParam("taskId") String taskId) { | |
| 118 | + gardenService.withdrawTask(taskId); | |
| 119 | + return success(true); | |
| 120 | + } | |
| 121 | + | |
| 122 | + @PutMapping("/delegate") | |
| 123 | + @Operation(summary = "委派任务", description = "用于【流程详情】的【委派】按钮") | |
| 124 | + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") | |
| 125 | + public CommonResult<Boolean> delegateTask(@Valid @RequestBody AppGardenTaskDelegateReqVO reqVO) { | |
| 126 | + gardenService.delegateTask(reqVO); | |
| 127 | + return success(true); | |
| 128 | + } | |
| 129 | + | |
| 130 | + @PutMapping("/transfer") | |
| 131 | + @Operation(summary = "转派任务", description = "用于【流程详情】的【转派】按钮") | |
| 132 | + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") | |
| 133 | + public CommonResult<Boolean> transferTask(@Valid @RequestBody AppGardenTaskTransferReqVO reqVO) { | |
| 134 | + gardenService.transferTask(reqVO); | |
| 135 | + return success(true); | |
| 136 | + } | |
| 137 | + | |
| 93 | 138 | @GetMapping("donePage") |
| 94 | 139 | @Operation(summary = "app - 获取已办任务分页") |
| 95 | 140 | //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')") | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/process/AppGardenApprovalDetailReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.process; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import jakarta.validation.constraints.NotNull; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 类描述:园林APP端审批详情reqVO | |
| 9 | + * 创建人:yanhuiqing | |
| 10 | + * 创建时间:2025/12/14 14:20 | |
| 11 | + * 修改人:yanhuiqing | |
| 12 | + * 修改时间:2025/12/14 14:20 | |
| 13 | + * 修改备注: | |
| 14 | + * | |
| 15 | + * @author yanhuiqing | |
| 16 | + * @version 1.0 | |
| 17 | + */ | |
| 18 | +@Schema(description = "APP - 审批详情 Request VO") | |
| 19 | +@Data | |
| 20 | +public class AppGardenApprovalDetailReqVO { | |
| 21 | + | |
| 22 | + @Schema(description = "流程实例的编号", example = "1024") | |
| 23 | + @NotNull | |
| 24 | + private String processInstanceId; // 使用场景:流程已发起时候传流程实例 ID | |
| 25 | +} | |
| 0 | 26 | \ No newline at end of file | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/process/AppGardenApprovalDetailRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.process; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 4 | +import com.zteits.urbanops.module.bpm.controller.admin.base.user.UserSimpleBaseVO; | |
| 5 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO; | |
| 6 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; | |
| 7 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; | |
| 8 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 9 | +import lombok.Data; | |
| 10 | + | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | +import java.util.List; | |
| 13 | +import java.util.Map; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * 类描述:园林APP端流程审批详情 respVO | |
| 17 | + * 创建人:yanhuiqing | |
| 18 | + * 创建时间:2025/12/14 14:08 | |
| 19 | + * 修改人:yanhuiqing | |
| 20 | + * 修改时间:2025/12/14 14:08 | |
| 21 | + * 修改备注: | |
| 22 | + * | |
| 23 | + * @author yanhuiqing | |
| 24 | + * @version 1.0 | |
| 25 | + */ | |
| 26 | +@Schema(description = "APP - 审批详情 Response VO") | |
| 27 | +@Data | |
| 28 | +public class AppGardenApprovalDetailRespVO { | |
| 29 | + | |
| 30 | + @Schema(description = "流程实例的状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 31 | + private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举 | |
| 32 | + | |
| 33 | + @Schema(description = "活动节点列表", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 34 | + private List<BpmApprovalDetailRespVO.ActivityNode> activityNodes; | |
| 35 | + | |
| 36 | + @Schema(description = "表单字段权限") | |
| 37 | + private Map<String, String> formFieldsPermission; | |
| 38 | + | |
| 39 | + @Schema(description = "待办任务") | |
| 40 | + private BpmTaskRespVO todoTask; | |
| 41 | + /** | |
| 42 | + * 所属流程实例信息 | |
| 43 | + */ | |
| 44 | + //private BpmProcessInstanceRespVO processInstance; | |
| 45 | + | |
| 46 | + @Schema(description = "活动节点信息") | |
| 47 | + @Data | |
| 48 | + public static class ActivityNode { | |
| 49 | + | |
| 50 | + @Schema(description = "节点编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "StartUserNode") | |
| 51 | + private String id; | |
| 52 | + | |
| 53 | + @Schema(description = "节点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "发起人") | |
| 54 | + private String name; | |
| 55 | + | |
| 56 | + @Schema(description = "节点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 57 | + private Integer nodeType; // 参见 BpmSimpleModelNodeType 枚举 | |
| 58 | + | |
| 59 | + @Schema(description = "节点状态 1 审批中,2 审批通过 3 审批不通过 4 已取消 5 已退回 -1 未开始 -2 跳过", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") | |
| 60 | + private Integer status; // 参见 BpmTaskStatusEnum 枚举 | |
| 61 | + | |
| 62 | + @Schema(description = "节点的开始时间") | |
| 63 | + private LocalDateTime startTime; | |
| 64 | + @Schema(description = "节点的结束时间") | |
| 65 | + private LocalDateTime endTime; | |
| 66 | + | |
| 67 | + @Schema(description = "审批节点的任务信息") | |
| 68 | + private List<BpmApprovalDetailRespVO.ActivityNodeTask> tasks; | |
| 69 | + | |
| 70 | + @Schema(description = "候选人策略", example = "35") | |
| 71 | + private Integer candidateStrategy; // 参见 BpmTaskCandidateStrategyEnum 枚举。主要用于发起时,审批节点、抄送节点自选 | |
| 72 | + | |
| 73 | + @Schema(description = "候选人用户 ID 列表", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1818") | |
| 74 | + @JsonIgnore // 不返回,只是方便后续读取,赋值给 candidateUsers | |
| 75 | + private List<Long> candidateUserIds; | |
| 76 | + | |
| 77 | + @Schema(description = "候选人用户列表") | |
| 78 | + private List<UserSimpleBaseVO> candidateUsers; // 只包含未生成 ApprovalTaskInfo 的用户列表 | |
| 79 | + | |
| 80 | + @Schema(description = "流程编号", example = "8761d8e0-0922-11f0-bd37-00ff1db677bf") | |
| 81 | + private String processInstanceId; // 当且仅当,该节点是子流程节点时,才会有值(CallActivity 的 calledProcessInstanceId 字段) | |
| 82 | + | |
| 83 | + } | |
| 84 | + | |
| 85 | + @Schema(description = "活动节点的任务信息") | |
| 86 | + @Data | |
| 87 | + public static class ActivityNodeTask { | |
| 88 | + | |
| 89 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 90 | + private String id; | |
| 91 | + | |
| 92 | + @Schema(description = "任务所属人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1818") | |
| 93 | + @JsonIgnore // 不返回,只是方便后续读取,赋值给 ownerUser | |
| 94 | + private Long owner; | |
| 95 | + | |
| 96 | + @Schema(description = "任务所属人", example = "1024") | |
| 97 | + private UserSimpleBaseVO ownerUser; | |
| 98 | + | |
| 99 | + @Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048") | |
| 100 | + @JsonIgnore // 不返回,只是方便后续读取,赋值给 assigneeUser | |
| 101 | + private Long assignee; | |
| 102 | + | |
| 103 | + @Schema(description = "任务分配人", example = "2048") | |
| 104 | + private UserSimpleBaseVO assigneeUser; | |
| 105 | + | |
| 106 | + @Schema(description = "节点状态 1 审批中,2 审批通过 3 审批不通过 4 已取消 5 已退回 -1 未开始 -2 跳过", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 107 | + private Integer status; // 参见 BpmTaskStatusEnum 枚举 | |
| 108 | + | |
| 109 | + @Schema(description = "审批意见", example = "同意") | |
| 110 | + private String reason; | |
| 111 | + | |
| 112 | + @Schema(description = "签名", example = "https://www.iocoder.cn/sign.png") | |
| 113 | + private String signPicUrl; | |
| 114 | + | |
| 115 | + } | |
| 116 | + | |
| 117 | +} | |
| 0 | 118 | \ No newline at end of file | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenTaskApproveReqVO.java renamed to urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskApproveReqVO.java
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskDelegateReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import jakarta.validation.constraints.NotEmpty; | |
| 5 | +import jakarta.validation.constraints.NotNull; | |
| 6 | +import lombok.Data; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * 类描述:园林APP端委派任务 reqVO | |
| 10 | + * 创建人:yanhuiqing | |
| 11 | + * 创建时间:2025/12/14 12:49 | |
| 12 | + * 修改人:yanhuiqing | |
| 13 | + * 修改时间:2025/12/14 12:49 | |
| 14 | + * 修改备注: | |
| 15 | + * | |
| 16 | + * @author yanhuiqing | |
| 17 | + * @version 1.0 | |
| 18 | + */ | |
| 19 | +@Schema(description = "APP - 委派流程任务的 Request VO") | |
| 20 | +@Data | |
| 21 | +public class AppGardenTaskDelegateReqVO { | |
| 22 | + | |
| 23 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 24 | + @NotEmpty(message = "任务编号不能为空") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + @Schema(description = "被委派人 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 28 | + @NotNull(message = "被委派人 ID 不能为空") | |
| 29 | + private Long delegateUserId; | |
| 30 | + | |
| 31 | + @Schema(description = "委派原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅") | |
| 32 | + @NotEmpty(message = "委派原因不能为空") | |
| 33 | + private String reason; | |
| 34 | + | |
| 35 | +} | |
| 0 | 36 | \ No newline at end of file | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenTaskPageReqVO.java renamed to urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskPageReqVO.java
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenTaskRespVO.java renamed to urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskRespVO.java
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskReturnReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import jakarta.validation.constraints.NotEmpty; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 类描述:园林APP端退回 reqVO | |
| 9 | + * 创建人:yanhuiqing | |
| 10 | + * 创建时间:2025/12/14 11:47 | |
| 11 | + * 修改人:yanhuiqing | |
| 12 | + * 修改时间:2025/12/14 11:47 | |
| 13 | + * 修改备注: | |
| 14 | + * | |
| 15 | + * @author yanhuiqing | |
| 16 | + * @version 1.0 | |
| 17 | + */ | |
| 18 | +@Schema(description = "APP - 退回流程任务的 Request VO") | |
| 19 | +@Data | |
| 20 | +public class AppGardenTaskReturnReqVO { | |
| 21 | + | |
| 22 | + | |
| 23 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 24 | + @NotEmpty(message = "任务编号不能为空") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + @Schema(description = "退回到的任务 Key", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 28 | + @NotEmpty(message = "退回到的任务 Key 不能为空") | |
| 29 | + private String targetTaskDefinitionKey; | |
| 30 | + | |
| 31 | + @Schema(description = "退回意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "我就是想驳回") | |
| 32 | + @NotEmpty(message = "退回意见不能为空") | |
| 33 | + private String reason; | |
| 34 | +} | |
| 0 | 35 | \ No newline at end of file | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskTransferReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import jakarta.validation.constraints.NotEmpty; | |
| 5 | +import jakarta.validation.constraints.NotNull; | |
| 6 | +import lombok.Data; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * 类描述:园林APP转办任务的 reqVO | |
| 10 | + * 创建人:yanhuiqing | |
| 11 | + * 创建时间:2025/12/14 12:52 | |
| 12 | + * 修改人:yanhuiqing | |
| 13 | + * 修改时间:2025/12/14 12:52 | |
| 14 | + * 修改备注: | |
| 15 | + * | |
| 16 | + * @author yanhuiqing | |
| 17 | + * @version 1.0 | |
| 18 | + */ | |
| 19 | +@Schema(description = "APP - 流程任务的转办 Request VO") | |
| 20 | +@Data | |
| 21 | +public class AppGardenTaskTransferReqVO { | |
| 22 | + | |
| 23 | + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 24 | + @NotEmpty(message = "任务编号不能为空") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + @Schema(description = "新审批人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") | |
| 28 | + @NotNull(message = "新审批人的用户编号不能为空") | |
| 29 | + private Long assigneeUserId; | |
| 30 | + | |
| 31 | + @Schema(description = "转办原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅") | |
| 32 | + @NotEmpty(message = "转办原因不能为空") | |
| 33 | + private String reason; | |
| 34 | + | |
| 35 | +} | |
| 0 | 36 | \ No newline at end of file | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/convert/garden/AppGardenTaskConvert.java
| ... | ... | @@ -11,7 +11,7 @@ import com.zteits.urbanops.module.bpm.dal.dataobject.definition.BpmProcessDefini |
| 11 | 11 | import com.zteits.urbanops.module.bpm.framework.flowable.core.util.FlowableUtils; |
| 12 | 12 | import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; |
| 13 | 13 | import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; |
| 14 | -import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenTaskRespVO; | |
| 14 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.AppGardenTaskRespVO; | |
| 15 | 15 | import org.flowable.engine.history.HistoricProcessInstance; |
| 16 | 16 | import org.flowable.engine.runtime.ProcessInstance; |
| 17 | 17 | import org.flowable.task.api.Task; | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java
| ... | ... | @@ -4,6 +4,9 @@ import com.zteits.urbanops.framework.common.pojo.PageResult; |
| 4 | 4 | import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVO; |
| 5 | 5 | import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; |
| 6 | 6 | import com.zteits.urbanops.module.workorder.controller.app.garden.vo.*; |
| 7 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailReqVO; | |
| 8 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailRespVO; | |
| 9 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.*; | |
| 7 | 10 | import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; |
| 8 | 11 | import jakarta.validation.Valid; |
| 9 | 12 | /** |
| ... | ... | @@ -85,4 +88,35 @@ public interface BpmGardenService { |
| 85 | 88 | * @return |
| 86 | 89 | */ |
| 87 | 90 | PageResult<AppGardenTaskRespVO> getTaskTodoPage(AppGardenTaskPageReqVO pageVO); |
| 91 | + | |
| 92 | + /** | |
| 93 | + * 退回任务 -app端 | |
| 94 | + * @param reqVO | |
| 95 | + */ | |
| 96 | + void returnTask(AppGardenTaskReturnReqVO reqVO); | |
| 97 | + | |
| 98 | + /** | |
| 99 | + * 撤回任务 -app端 | |
| 100 | + * @param taskId | |
| 101 | + */ | |
| 102 | + void withdrawTask(String taskId); | |
| 103 | + | |
| 104 | + /** | |
| 105 | + * 转办任务 -app端 | |
| 106 | + * @param reqVO | |
| 107 | + */ | |
| 108 | + void transferTask(AppGardenTaskTransferReqVO reqVO); | |
| 109 | + | |
| 110 | + /** | |
| 111 | + * 委派任务 -app端 | |
| 112 | + * @param reqVO | |
| 113 | + */ | |
| 114 | + void delegateTask(AppGardenTaskDelegateReqVO reqVO); | |
| 115 | + | |
| 116 | + /** | |
| 117 | + * 获得审批详情 流程节点 -app端 | |
| 118 | + * @param reqVO | |
| 119 | + * @return | |
| 120 | + */ | |
| 121 | + AppGardenApprovalDetailRespVO getApprovalDetail(AppGardenApprovalDetailReqVO reqVO); | |
| 88 | 122 | } | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java
| ... | ... | @@ -8,9 +8,9 @@ import com.zteits.urbanops.framework.common.util.object.ObjectUtils; |
| 8 | 8 | import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; |
| 9 | 9 | import com.zteits.urbanops.module.bpm.api.task.BpmProcessInstanceApi; |
| 10 | 10 | import com.zteits.urbanops.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| 11 | -import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO; | |
| 12 | -import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO; | |
| 13 | -import com.zteits.urbanops.module.bpm.convert.task.BpmTaskConvert; | |
| 11 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailReqVO; | |
| 12 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO; | |
| 13 | +import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.*; | |
| 14 | 14 | import com.zteits.urbanops.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; |
| 15 | 15 | import com.zteits.urbanops.module.bpm.enums.task.BpmTaskStatusEnum; |
| 16 | 16 | import com.zteits.urbanops.module.bpm.framework.flowable.core.enums.BpmnVariableConstants; |
| ... | ... | @@ -27,6 +27,9 @@ import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGarden |
| 27 | 27 | import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; |
| 28 | 28 | import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; |
| 29 | 29 | import com.zteits.urbanops.module.workorder.controller.app.garden.vo.*; |
| 30 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailReqVO; | |
| 31 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailRespVO; | |
| 32 | +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.*; | |
| 30 | 33 | import com.zteits.urbanops.module.workorder.convert.garden.AppGardenTaskConvert; |
| 31 | 34 | import com.zteits.urbanops.module.workorder.convert.garden.BpmGardenWorkOrderConverter; |
| 32 | 35 | import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; |
| ... | ... | @@ -50,7 +53,6 @@ import java.util.List; |
| 50 | 53 | import java.util.Map; |
| 51 | 54 | |
| 52 | 55 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 53 | -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | |
| 54 | 56 | import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertSet; |
| 55 | 57 | import static com.zteits.urbanops.framework.web.core.util.WebFrameworkUtils.getLoginUserId; |
| 56 | 58 | import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.MAIN_INFO_NOT_EXISTS; |
| ... | ... | @@ -164,6 +166,39 @@ public class BpmGardenServiceImpl implements BpmGardenService{ |
| 164 | 166 | targetVO.setNextAssignees(nextAssignees); |
| 165 | 167 | taskService.approveTask(SecurityFrameworkUtils.getLoginUserId(),targetVO); |
| 166 | 168 | } |
| 169 | + @Override | |
| 170 | + public void returnTask(AppGardenTaskReturnReqVO reqVO) { | |
| 171 | + BpmTaskReturnReqVO targetVO = BeanUtils.toBean(reqVO,BpmTaskReturnReqVO.class); | |
| 172 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | |
| 173 | + taskService.returnTask(userId, targetVO); | |
| 174 | + } | |
| 175 | + | |
| 176 | + @Override | |
| 177 | + public void withdrawTask(String taskId) { | |
| 178 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | |
| 179 | + taskService.withdrawTask(userId,taskId); | |
| 180 | + } | |
| 181 | + | |
| 182 | + @Override | |
| 183 | + public void transferTask(AppGardenTaskTransferReqVO reqVO) { | |
| 184 | + BpmTaskTransferReqVO targetVO = BeanUtils.toBean(reqVO,BpmTaskTransferReqVO.class); | |
| 185 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | |
| 186 | + taskService.transferTask(userId, targetVO); | |
| 187 | + } | |
| 188 | + | |
| 189 | + @Override | |
| 190 | + public void delegateTask(AppGardenTaskDelegateReqVO reqVO) { | |
| 191 | + BpmTaskDelegateReqVO targetVO = BeanUtils.toBean(reqVO, BpmTaskDelegateReqVO.class); | |
| 192 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | |
| 193 | + taskService.delegateTask(userId, targetVO); | |
| 194 | + } | |
| 195 | + | |
| 196 | + @Override | |
| 197 | + public AppGardenApprovalDetailRespVO getApprovalDetail(AppGardenApprovalDetailReqVO reqVO) { | |
| 198 | + BpmApprovalDetailReqVO targetVO = BeanUtils.toBean(reqVO,BpmApprovalDetailReqVO.class); | |
| 199 | + BpmApprovalDetailRespVO respVO = processInstanceService.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), targetVO); | |
| 200 | + return BeanUtils.toBean(respVO,AppGardenApprovalDetailRespVO.class); | |
| 201 | + } | |
| 167 | 202 | |
| 168 | 203 | @Override |
| 169 | 204 | public PageResult<AppGardenTaskRespVO> getTaskDonePage(AppGardenTaskPageReqVO pageVO) { |
| ... | ... | @@ -203,6 +238,8 @@ public class BpmGardenServiceImpl implements BpmGardenService{ |
| 203 | 238 | return newRespVO; |
| 204 | 239 | } |
| 205 | 240 | |
| 241 | + | |
| 242 | + | |
| 206 | 243 | @Override |
| 207 | 244 | @Transactional(rollbackFor = Exception.class) |
| 208 | 245 | public Long createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) { | ... | ... |