fuliqi
2024-11-14 cfcfbf068acf9b9d509a99498346dcbcf101cdf9
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
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 WorkOrderYWConditionForm form) {
        return workOrderService.ywCondition(form);
    }
 
    //现在没用
    @PutMapping("/yw-result")
    @ApiOperation(value = "运维结果", notes = "运维结果")
    public Result ywResult(@RequestBody @Validated WorkOrderYWResultForm form) {
        return workOrderService.ywResult(form);
    }
 
    //现在没用
    @PutMapping("/check-result")
    @ApiOperation(value = "检测结果", notes = "检测结果")
    public Result ywCheckResult(@RequestBody @Validated 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("/check")
    @ApiOperation(value = "图片检测", notes = "图片检测")
    @PreAuthorize("@ss.hasPermi('work:order:check')")
    public Result check(String workOrderNo,String serialNumber) {
        return workOrderService.checkImage(workOrderNo,serialNumber);
    }
 
    @GetMapping("/list")
    @ApiOperation(value = "列表", notes = "列表")
    @PreAuthorize("@ss.hasPermi('work:order:list')")
    public Result list() {
        return workOrderService.all();
    }
 
    @GetMapping("/errorType/list")
    @ApiOperation(value = "故障列表", notes = "故障列表")
    @PreAuthorize("@ss.hasPermi('work:order:list')")
    public Result errorList() {
        return workOrderService.errorAll();
    }
    @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")
    @ApiOperation(value = "工单白名单列表", notes = "工单白名单列表")
    public Result whitePage(@RequestBody WorkOrderWhiteQuery workOrderWhiteQuery)
    {
        return workOrderService.selectWorkOrderWhiteList(workOrderWhiteQuery);
    }
 
    /**
     * 工单白名单详情
     */
    @GetMapping("/white/{id}")
    @ApiOperation(value = "工单白名单详情", notes = "工单白名单详情")
    public Result whiteDetail(@PathVariable Integer id)
    {
        return workOrderService.selectWorkOrderWhiteDetail(id);
    }
    /**
     * 添加工单白名单
     *
     * @param workOrderWhite 白色工单
     * @return {@link Result }
     * @author
     */
    @PostMapping("/white/add")
    @ApiOperation(value = "新增工单白名单", notes = "新增工单白名单")
    public Result addWorkOrderWhite(@RequestBody WorkOrderWhite workOrderWhite) {
        return workOrderService.addWorkOrderWhite(workOrderWhite);
    }
 
    /**
     * 修改工单白名单
     *
     * @param workOrderWhite 白色工单
     * @return {@link Result }
     * @author
     */
    @PostMapping("/white/update")
    @ApiOperation(value = "修改工单白名单", notes = "修改工单白名单")
    public Result updateWorkOrderWhite(@RequestBody WorkOrderWhite workOrderWhite) {
        return workOrderService.updateWorkOrderWhite(workOrderWhite);
    }
    /**
     * 批量删除工单白名单
     *
     * @param ids ids
     * @return {@link Result }
     * @author
     */
    @DeleteMapping("/white/batchDelete")
    @ApiOperation(value = "批量删除工单白名单", notes = "批量删除工单白名单")
    public Result batchDeleteWorkOrderWhite(@RequestBody List<String> ids) {
        return workOrderService.batchDeleteWorkOrderWhite(ids);
    }
 
    /**
     * 批量删除工单
     *
     * @return {@link Result }
     * @author
     */
    @DeleteMapping("/batchDelete")
    @PreAuthorize("@ss.hasPermi('work:order:delete')")
    @ApiOperation(value = "批量删除工单", notes = "批量删除工单")
    public Result batchDeleteWorkOrder(@RequestBody List<String> workOrderNos) {
        return workOrderService.batchDeleteWorkOrder(workOrderNos);
    }
}