3 files modified
2 files added
| | |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "列表", notes = "传入gdWorkOrderFlow") |
| | | @ApiOperation(value = "工单流程列表", notes = "传入gdWorkOrderFlow") |
| | | public R<List<WorkOrderStageVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow) { |
| | | // 调用服务层方法获取分层结构的流程数据 |
| | | List<WorkOrderStageVO> stages = gdWorkOrderFlowService.getHierarchicalFlow(Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class)); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 流程记录表 列表 |
| | | */ |
| | | @GetMapping("/patrolList") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "巡查流程列表", notes = "传入gdWorkOrderFlow") |
| | | public R<List<GdWorkOrderFlowVO>> patrolList(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow) { |
| | | List<GdWorkOrderFlowEntity> list = gdWorkOrderFlowService.list(Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class)); |
| | | return R.data(GdWorkOrderFlowWrapper.build().entityVOList(list)); |
| | | } |
| | | |
| | | /** |
| | | * 流程记录表 自定义分页 |
| | | */ |
| | | // @GetMapping("/page") |
| | |
| | | /** |
| | | * 工单阶段:工单发布 |
| | | */ |
| | | STAGE_WORK_ORDER_RELEASE("工单发布"), |
| | | STAGE_WORK_ORDER_RELEASE("工单发布", "1"), |
| | | |
| | | /** |
| | | * 工单阶段:接单响应 |
| | | */ |
| | | STAGE_ORDER_RESPONSE("接单响应"), |
| | | STAGE_ORDER_RESPONSE("接单响应", "2"), |
| | | |
| | | /** |
| | | * 工单阶段:执行中 |
| | | */ |
| | | STAGE_IN_EXECUTION("执行中"), |
| | | STAGE_IN_EXECUTION("执行中", "3"), |
| | | |
| | | /** |
| | | * 工单阶段:完成待验 |
| | | */ |
| | | STAGE_COMPLETED_PENDING_INSPECTION("完成待验"), |
| | | STAGE_COMPLETED_PENDING_INSPECTION("完成待验", "4"), |
| | | |
| | | /** |
| | | * 工单阶段:验收通过 |
| | | */ |
| | | STAGE_ACCEPTED("验收通过"), |
| | | STAGE_ACCEPTED("验收通过", "5"), |
| | | |
| | | /** |
| | | * 工单阶段:结算完成 |
| | | */ |
| | | STAGE_SETTLEMENT_COMPLETED("结算完成"), |
| | | STAGE_SETTLEMENT_COMPLETED("结算完成", "6"), |
| | | |
| | | // ------------------ 以下是工单状态 ------------------ |
| | | |
| | |
| | | /** |
| | | * 工单阶段构造函数 |
| | | */ |
| | | WorkOrderStatusEnum(String stageDesc) { |
| | | WorkOrderStatusEnum(String stageDesc, String maxCode) { |
| | | this.code = null; |
| | | this.maxCode = null; |
| | | this.maxCode = maxCode; |
| | | this.desc = null; |
| | | this.stageDesc = stageDesc; |
| | | this.isStage = true; |
| | |
| | | /** |
| | | * 工单状态构造函数 |
| | | */ |
| | | WorkOrderStatusEnum(String code, String miniCode, String desc, String stageDesc) { |
| | | WorkOrderStatusEnum(String code, String maxCode, String desc, String stageDesc) { |
| | | this.code = code; |
| | | this.maxCode = miniCode; |
| | | this.maxCode = maxCode; |
| | | this.desc = desc; |
| | | this.stageDesc = stageDesc; |
| | | this.isStage = false; |
| | |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getStageDesc(), |
| | | WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc() |
| | | ), actualFlows, "1")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getMaxCode())); |
| | | |
| | | // 接单响应阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_ORDER_RESPONSE.getStageDesc(), Arrays.asList( |
| | |
| | | WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getStageDesc(), |
| | | WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getStageDesc(), |
| | | WorkOrderStatusEnum.RESPONDING_CANCELED.getStageDesc() |
| | | ), actualFlows, "2")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_ORDER_RESPONSE.getMaxCode())); |
| | | |
| | | // 执行中阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_IN_EXECUTION.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.EXECUTING_TO_BE_COMPLETED.getStageDesc(), |
| | | WorkOrderStatusEnum.EXECUTING_NEGOTIATE_MODIFY.getStageDesc() |
| | | ), actualFlows, "3")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_IN_EXECUTION.getMaxCode())); |
| | | |
| | | // 完成待验阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_COMPLETED_PENDING_INSPECTION.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.COMPLETED_TO_BE_INSPECTED.getStageDesc() |
| | | ), actualFlows, "4")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_COMPLETED_PENDING_INSPECTION.getMaxCode())); |
| | | |
| | | // 验收通过阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_ACCEPTED.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getStageDesc() |
| | | ), actualFlows, "5")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_ACCEPTED.getMaxCode())); |
| | | |
| | | // 结算完成阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_SETTLEMENT_COMPLETED.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.SETTLEMENT_COMPLETED.getStageDesc() |
| | | ), actualFlows, "6")); |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_SETTLEMENT_COMPLETED.getMaxCode())); |
| | | |
| | | return stages; |
| | | } |
| New file |
| | |
| | | package org.sxkj.gd.workorder.vo; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 工单阶段视图对象 |
| | | * 表示工单流程中的一个主阶段,包含该阶段的名称和对应的子状态列表 |
| | | * |
| | | * @author lw |
| | | * @since 2026-01-31 |
| | | */ |
| | | @Data |
| | | public class WorkOrderStageVO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 阶段名称 |
| | | */ |
| | | @ApiModelProperty(value = "阶段名称") |
| | | private String stageName; |
| | | |
| | | /** |
| | | * 是否已到达该状态 |
| | | */ |
| | | @ApiModelProperty(value = "是否已到达该状态") |
| | | private boolean reached; |
| | | |
| | | /** |
| | | * 子状态列表 |
| | | */ |
| | | @ApiModelProperty(value = "子状态列表") |
| | | private List<WorkOrderStatusDetailVO> child; |
| | | |
| | | /** |
| | | * 构造函数 |
| | | * |
| | | * @param stageName 阶段名称 |
| | | * @param child 子状态列表 |
| | | */ |
| | | public WorkOrderStageVO(String stageName, List<WorkOrderStatusDetailVO> child) { |
| | | this.stageName = stageName; |
| | | this.child = child; |
| | | // 计算阶段的到达状态:如果有任何子状态已到达,则阶段视为已到达 |
| | | this.reached = child != null && child.stream().anyMatch(WorkOrderStatusDetailVO::isReached); |
| | | } |
| | | |
| | | /** |
| | | * 构造函数 |
| | | * |
| | | * @param stageName 阶段名称 |
| | | * @param child 子状态列表 |
| | | * @param reached 是否已到达该阶段 |
| | | */ |
| | | public WorkOrderStageVO(String stageName, List<WorkOrderStatusDetailVO> child, boolean reached) { |
| | | this.stageName = stageName; |
| | | this.child = child; |
| | | this.reached = reached; |
| | | } |
| | | } |
| New file |
| | |
| | | package org.sxkj.gd.workorder.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 工单状态详情视图对象 |
| | | * 表示工单流程中一个具体状态的详细信息 |
| | | * |
| | | * @author lw |
| | | * @since 2026-01-31 |
| | | */ |
| | | @Data |
| | | public class WorkOrderStatusDetailVO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 状态名称 |
| | | */ |
| | | @ApiModelProperty(value = "状态名称") |
| | | private String statusName; |
| | | |
| | | /** |
| | | * 是否已到达该状态 |
| | | */ |
| | | @ApiModelProperty(value = "是否已到达该状态") |
| | | private boolean reached; |
| | | |
| | | /** |
| | | * 操作人 |
| | | */ |
| | | @ApiModelProperty(value = "操作人") |
| | | private String operator; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @ApiModelProperty(value = "创建时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * 构造函数 |
| | | * |
| | | * @param statusName 状态名称 |
| | | * @param reached 是否已到达 |
| | | * @param operator 操作人 |
| | | * @param createTime 创建时间 |
| | | */ |
| | | public WorkOrderStatusDetailVO(String statusName, boolean reached, String operator, Date createTime) { |
| | | this.statusName = statusName; |
| | | this.reached = reached; |
| | | this.operator = operator; |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | /** |
| | | * 构造函数(用于未到达的状态) |
| | | * |
| | | * @param statusName 状态名称 |
| | | */ |
| | | public WorkOrderStatusDetailVO(String statusName) { |
| | | this.statusName = statusName; |
| | | this.reached = false; |
| | | this.operator = null; |
| | | this.createTime = null; |
| | | } |
| | | } |