diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java
index 03ce9e6..b183bf0 100644
--- a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java
+++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/OpsOrderController.java
@@ -4,7 +4,11 @@ import com.viewsh.framework.apilog.core.annotation.ApiAccessLog;
import com.viewsh.framework.common.pojo.CommonResult;
import com.viewsh.framework.common.pojo.PageResult;
import com.viewsh.framework.common.util.object.BeanUtils;
-import com.viewsh.module.ops.dal.dataobject.dto.*;
+import com.viewsh.module.ops.controller.admin.vo.OpsOrderAcceptReqVO;
+import com.viewsh.module.ops.controller.admin.vo.OpsOrderCompleteReqVO;
+import com.viewsh.module.ops.controller.admin.vo.OpsOrderPauseReqVO;
+import com.viewsh.module.ops.controller.admin.vo.OpsOrderResumeReqVO;
+import com.viewsh.module.ops.service.order.dto.*;
import com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO;
import com.viewsh.module.ops.enums.OperatorTypeEnum;
import com.viewsh.module.ops.service.order.OpsOrderService;
@@ -21,7 +25,11 @@ import org.springframework.web.bind.annotation.*;
import static com.viewsh.framework.common.pojo.CommonResult.success;
/**
- * 管理后台 - 工单 Controller
+ * 管理后台 - 通用工单 Controller
+ *
+ * 职责边界:提供所有工单类型(保洁/安保/工程/客服)通用的 CRUD、状态转换接口。
+ * 保洁条线特有的业务操作(手动完单、优先级升级、时间线查询等)请使用
+ * {@link com.viewsh.module.ops.controller.admin.clean.CleanWorkOrderController}。
*
* @author lzh
*/
@@ -88,45 +96,36 @@ public class OpsOrderController {
@PostMapping("/accept")
@Operation(summary = "接单")
- @Parameter(name = "orderId", description = "工单ID", required = true)
- @Parameter(name = "userId", description = "保洁员ID", required = true)
@PreAuthorize("@ss.hasPermission('ops:order:accept')")
- public CommonResult acceptOrder(@RequestParam("orderId") Long orderId,
- @RequestParam("userId") Long userId) {
- opsOrderService.acceptOrder(orderId, userId);
+ public CommonResult acceptOrder(@Valid @RequestBody OpsOrderAcceptReqVO reqVO) {
+ opsOrderService.acceptOrder(reqVO.getOrderId(), reqVO.getUserId());
return success(true);
}
@PostMapping("/complete")
@Operation(summary = "完成工单")
@PreAuthorize("@ss.hasPermission('ops:order:complete')")
- public CommonResult completeOrder(@Valid @RequestBody OpsOrderCompleteReqDTO completeReq,
- @Parameter(description = "执行人ID") @RequestParam("userId") Long userId) {
- opsOrderService.completeOrder(completeReq, userId);
+ public CommonResult completeOrder(@Valid @RequestBody OpsOrderCompleteReqVO reqVO) {
+ OpsOrderCompleteReqDTO completeReq = new OpsOrderCompleteReqDTO();
+ completeReq.setOrderId(reqVO.getOrderId());
+ completeReq.setRemark(reqVO.getRemark());
+ opsOrderService.completeOrder(completeReq, reqVO.getUserId());
return success(true);
}
@PostMapping("/pause")
@Operation(summary = "暂停工单")
- @Parameter(name = "orderId", description = "工单ID", required = true)
- @Parameter(name = "userId", description = "保洁员ID", required = true)
- @Parameter(name = "reason", description = "暂停原因", required = true)
@PreAuthorize("@ss.hasPermission('ops:order:pause')")
- public CommonResult pauseOrder(@RequestParam("orderId") Long orderId,
- @RequestParam("userId") Long userId,
- @RequestParam("reason") String reason) {
- opsOrderService.pauseOrder(orderId, userId, reason);
+ public CommonResult pauseOrder(@Valid @RequestBody OpsOrderPauseReqVO reqVO) {
+ opsOrderService.pauseOrder(reqVO.getOrderId(), reqVO.getUserId(), reqVO.getReason());
return success(true);
}
@PostMapping("/resume")
@Operation(summary = "恢复工单")
- @Parameter(name = "orderId", description = "工单ID", required = true)
- @Parameter(name = "userId", description = "保洁员ID", required = true)
@PreAuthorize("@ss.hasPermission('ops:order:resume')")
- public CommonResult resumeOrder(@RequestParam("orderId") Long orderId,
- @RequestParam("userId") Long userId) {
- opsOrderService.resumeOrder(orderId, userId);
+ public CommonResult resumeOrder(@Valid @RequestBody OpsOrderResumeReqVO reqVO) {
+ opsOrderService.resumeOrder(reqVO.getOrderId(), reqVO.getUserId());
return success(true);
}
diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderAcceptReqVO.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderAcceptReqVO.java
new file mode 100644
index 0000000..951a64f
--- /dev/null
+++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderAcceptReqVO.java
@@ -0,0 +1,24 @@
+package com.viewsh.module.ops.controller.admin.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 管理后台 - 接单请求 VO
+ *
+ * @author lzh
+ */
+@Schema(description = "管理后台 - 接单 Request VO")
+@Data
+public class OpsOrderAcceptReqVO {
+
+ @Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
+ @NotNull(message = "工单ID不能为空")
+ private Long orderId;
+
+ @Schema(description = "保洁员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2001")
+ @NotNull(message = "保洁员ID不能为空")
+ private Long userId;
+
+}
diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderCompleteReqVO.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderCompleteReqVO.java
new file mode 100644
index 0000000..c8e5873
--- /dev/null
+++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderCompleteReqVO.java
@@ -0,0 +1,27 @@
+package com.viewsh.module.ops.controller.admin.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 管理后台 - 完成工单请求 VO
+ *
+ * @author lzh
+ */
+@Schema(description = "管理后台 - 完成工单 Request VO")
+@Data
+public class OpsOrderCompleteReqVO {
+
+ @Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
+ @NotNull(message = "工单ID不能为空")
+ private Long orderId;
+
+ @Schema(description = "执行人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2001")
+ @NotNull(message = "执行人ID不能为空")
+ private Long userId;
+
+ @Schema(description = "完成备注", example = "已完成清洁")
+ private String remark;
+
+}
diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderPauseReqVO.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderPauseReqVO.java
new file mode 100644
index 0000000..c3ab548
--- /dev/null
+++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderPauseReqVO.java
@@ -0,0 +1,29 @@
+package com.viewsh.module.ops.controller.admin.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 管理后台 - 暂停工单请求 VO
+ *
+ * @author lzh
+ */
+@Schema(description = "管理后台 - 暂停工单 Request VO")
+@Data
+public class OpsOrderPauseReqVO {
+
+ @Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
+ @NotNull(message = "工单ID不能为空")
+ private Long orderId;
+
+ @Schema(description = "保洁员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2001")
+ @NotNull(message = "保洁员ID不能为空")
+ private Long userId;
+
+ @Schema(description = "暂停原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "P0紧急工单插队")
+ @NotBlank(message = "暂停原因不能为空")
+ private String reason;
+
+}
diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderResumeReqVO.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderResumeReqVO.java
new file mode 100644
index 0000000..53b6459
--- /dev/null
+++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/vo/OpsOrderResumeReqVO.java
@@ -0,0 +1,24 @@
+package com.viewsh.module.ops.controller.admin.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 管理后台 - 恢复工单请求 VO
+ *
+ * @author lzh
+ */
+@Schema(description = "管理后台 - 恢复工单 Request VO")
+@Data
+public class OpsOrderResumeReqVO {
+
+ @Schema(description = "工单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
+ @NotNull(message = "工单ID不能为空")
+ private Long orderId;
+
+ @Schema(description = "保洁员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2001")
+ @NotNull(message = "保洁员ID不能为空")
+ private Long userId;
+
+}