Commit 403e5a00179d9c810a9c0bada070eacae50c55ac

Authored by 颜惠青
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
1   -package com.zteits.urbanops.module.workorder.controller.app.garden.vo;
  1 +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task;
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4 4 import jakarta.validation.constraints.NotEmpty;
... ...
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
1   -package com.zteits.urbanops.module.workorder.controller.app.garden.vo;
  1 +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task;
2 2  
3 3 import com.zteits.urbanops.framework.common.pojo.PageParam;
4 4 import io.swagger.v3.oas.annotations.media.Schema;
... ...
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
1   -package com.zteits.urbanops.module.workorder.controller.app.garden.vo;
  1 +package com.zteits.urbanops.module.workorder.controller.app.garden.vo.task;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 4 import com.zteits.urbanops.framework.common.core.KeyValue;
... ...
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) {
... ...