lohir
2024-10-22 a0e0eca428f47c4d796f1d0917041b072b8e7aac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
package com.ycl.platform.controller;
 
import annotation.Log;
import com.ycl.platform.domain.entity.WorkOrderAuditingRecord;
import com.ycl.platform.domain.entity.WorkOrderWhite;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.query.WorkOrderExportQuery;
import com.ycl.platform.domain.query.WorkOrderQuery;
import com.ycl.platform.domain.query.WorkOrderWhiteQuery;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.Result;
import com.ycl.system.controller.BaseController;
import com.ycl.system.domain.group.Add;
import com.ycl.system.domain.group.Update;
import com.ycl.system.page.TableDataInfo;
import com.ycl.utils.poi.ExcelUtil;
import enumeration.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
/**
 * 工单 前端控制器
 *
 * @author xp
 * @since 2024-03-05
 */
@Validated
@RequiredArgsConstructor
@Api(value = "工单", tags = "工单管理")
@RestController
@RequestMapping("/work-order")
public class WorkOrderController extends BaseController {
 
    private final WorkOrderService workOrderService;
 
    @GetMapping("/process/{workOrderNo}")
    @ApiOperation(value = "过程图", notes = "过程图")
    @PreAuthorize("@ss.hasPermi('work:order:process')")
    public Result processImg(@PathVariable("workOrderNo") String workOrderNo) {
        return workOrderService.processImg(workOrderNo);
    }
 
    @PostMapping
    @ApiOperation(value = "添加", notes = "添加")
    @PreAuthorize("@ss.hasPermi('work:order:add')")
    public Result add(@RequestBody @Validated(Add.class) WorkOrderForm form) {
        return workOrderService.add(form);
    }
 
    @PutMapping
    @ApiOperation(value = "修改", notes = "修改")
    @PreAuthorize("@ss.hasPermi('work:order:edit')")
    public Result update(@RequestBody @Validated(Update.class) WorkOrderForm form) {
        return workOrderService.update(form);
    }
 
    @PutMapping("/auditing")
    @ApiOperation(value = "审核", notes = "工单审核")
    @PreAuthorize("@ss.hasPermi('work:order:audit')")
    public Result auditing(@RequestBody @Validated(Update.class) WorkOrderAuditingForm form) {
        return workOrderService.auditing(form);
    }
 
    @PutMapping("/batchAuditing")
    @ApiOperation(value = "审核", notes = "工单批量审核")
    @PreAuthorize("@ss.hasPermi('work:order:audit')")
    public Result batchAuditing(@RequestBody @Validated(Update.class) WorkOrderBatchAuditingForm form) {
        return workOrderService.batchAuditing(form);
    }
 
    @PutMapping("/yw-condition")
    @ApiOperation(value = "运维情况", notes = "运维情况")
    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWConditionForm form) {
        return workOrderService.ywCondition(form);
    }
 
    @PutMapping("/yw-result")
    @ApiOperation(value = "运维结果", notes = "运维结果")
    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWResultForm form) {
        return workOrderService.ywResult(form);
    }
 
    @PutMapping("/check-result")
    @ApiOperation(value = "检测结果", notes = "检测结果")
    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderCheckResultForm form) {
        return workOrderService.checkResult(form);
    }
 
    @DeleteMapping("/{id}")
    @ApiOperation(value = "ID删除", notes = "ID删除")
    @PreAuthorize("@ss.hasPermi('work:order:remove')")
    public Result removeById(@PathVariable("id") String id) {
        return workOrderService.removeById(id);
    }
 
    @DeleteMapping("/batch")
    @ApiOperation(value = "批量删除", notes = "批量删除")
    @PreAuthorize("@ss.hasPermi('work:order:remove')")
    public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) {
        return workOrderService.remove(ids);
    }
 
    @PostMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    @PreAuthorize("@ss.hasPermi('work:order:page')")
    public Result page(@RequestBody WorkOrderQuery query) {
        return workOrderService.page(query);
    }
 
    @PostMapping("/export")
    @ApiOperation(value = "导出", notes = "导出")
    @Log(title = "导出工单", businessType = BusinessType.EXPORT)
    public void export(HttpServletResponse response, WorkOrderExportQuery query) {
        List<WorkOrderVO> results = workOrderService.export(query);
        ExcelUtil<WorkOrderVO> util = new ExcelUtil<>(WorkOrderVO.class);
        util.exportExcel(response, results, "工单");
    }
 
    @PostMapping("/distribute/page")
    @ApiOperation(value = "下发分页", notes = "下发分页")
    @PreAuthorize("@ss.hasPermi('work:order:distribute:page')")
    public Result distributePage(@RequestBody DistributeWorkOrderQuery query) {
        return workOrderService.distributePage(query);
    }
 
    @PostMapping("/distribute/fast")
    @ApiOperation(value = "快速下发", notes = "快速下发")
    @PreAuthorize("@ss.hasPermi('work:order:distribute')")
    public Result distributeFast(@RequestBody @Validated DistributeWorkOrderVO data) {
        return workOrderService.distributeFast(data);
    }
 
    @PostMapping("/distribute/ids")
    @ApiOperation(value = "下发选择的工单", notes = "下发选择选择的工单")
    @PreAuthorize("@ss.hasPermi('work:order:distribute')")
    public Result selectedIdsDistribute(@RequestBody DistributeWorkOrderQuery query) {
        return workOrderService.selectedIdsDistribute(query);
    }
 
    @GetMapping("/{id}")
    @ApiOperation(value = "详情", notes = "详情")
    @PreAuthorize("@ss.hasPermi('work:order:detail')")
    public Result detail(@PathVariable("id") String id) {
        return workOrderService.detail(id);
    }
 
    @GetMapping("/list")
    @ApiOperation(value = "列表", notes = "列表")
    @PreAuthorize("@ss.hasPermi('work:order:list')")
    public Result list() {
        return workOrderService.all();
    }
 
    @GetMapping("/detail/info/{workOrderNo}")
    @ApiOperation(value = "详情", notes = "详情")
    @PreAuthorize("@ss.hasPermi('work:order:detail')")
    public Result detailByNo(@PathVariable("workOrderNo") String workOrderNo) {
        return workOrderService.detailByNo(workOrderNo);
    }
 
    @GetMapping("/yw-condition-list/{workOrderNo}")
    @ApiOperation(value = "运维情况记录列表", notes = "运维情况记录列表")
    public Result ywCondition(@PathVariable String workOrderNo) {
        List<WorkOrderYwConditionRecordVO> data = workOrderService.selectYwConditionByYwId(workOrderNo);
        return Result.ok().data(data);
    }
 
    @GetMapping("/yw-auditing-list/{workOrderNo}")
    @ApiOperation(value = "运维审核记录", notes = "运维审核记录")
    public Result ywAuditingByYwId(@PathVariable String workOrderNo) {
        List<WorkOrderAuditingRecord> data = workOrderService.selectYwAuditingListByYwId(workOrderNo);
        return Result.ok().data(data);
    }
 
    /**
     * 查询工单生成白名单列表
     */
    @PostMapping("/white/page")
    public Result whitePage(@RequestBody WorkOrderWhiteQuery workOrderWhiteQuery)
    {
        return workOrderService.selectWorkOrderWhiteList(workOrderWhiteQuery);
    }
}