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
package com.ruoyi.process.controller;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.inspect.dto.InsPlaceOrderDto;
import com.ruoyi.process.dto.InspectionOrderDto;
import com.ruoyi.process.dto.InspectionOrderBindingDto;
import com.ruoyi.process.pojo.InspectionOrderAttachment;
import com.ruoyi.process.pojo.InspectionOrder;
import com.ruoyi.process.service.InspectionOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.security.access.prepost.PreAuthorize;
 
import javax.servlet.http.HttpServletResponse;
import java.util.List;
 
/**
 * <p>
 * 检验委托单 前端控制器
 * </p>
 *
 * @author 江苏鵷雏网络科技有限公司
 * @since 2024-12-09
 */
@Api(tags = "检验委托单")
@AllArgsConstructor
@RestController
@RequestMapping("/inspectionOrder")
public class InspectionOrderController {
 
    private InspectionOrderService inspectionOrderService;
 
    /**
     * 委托单检验分页查询
     * @return
     */
    @ApiOperation(value = "委托单检验分页查询")
    @GetMapping("/pageInspectionOrder")
    public Result<IPage<InspectionOrderDto>> pageInspectionOrder(InspectionOrder inspectionOrder,Page page) throws Exception {
        return Result.success(inspectionOrderService.pageInspectionOrder(page, inspectionOrder));
    }
 
    /**
     * 委托单检验新增
     * @return
     */
 
    @ApiOperation(value = "委托单检验新增")
    @PostMapping("/addInspectionOrder")
    public Result addInspectionOrder(@RequestBody InspectionOrderDto InspectionOrder){
        return Result.success(inspectionOrderService.addInspectionOrder(InspectionOrder));
    }
 
    @ApiOperation(value = "查询未绑定检验委托单")
    @GetMapping("/pageUnboundInspectionOrder")
    public Result<IPage<InspectionOrder>> pageUnboundInspectionOrder(InspectionOrder inspectionOrder, Page page) {
        return Result.success(inspectionOrderService.pageUnboundInspectionOrder(page, inspectionOrder));
    }
 
    @ApiOperation(value = "查询可重复绑定的检验委托单")
    @GetMapping("/pageSelectableInspectionOrder")
    public Result<IPage<InspectionOrder>> pageSelectableInspectionOrder(InspectionOrder inspectionOrder, Page page) {
        return Result.success(inspectionOrderService.pageUnboundInspectionOrder(page, inspectionOrder));
    }
 
    @ApiOperation(value = "查询检验委托单的历次下单记录")
    @GetMapping("/pageInspectionOrderBindings")
    public Result<IPage<InspectionOrderBindingDto>> pageInspectionOrderBindings(Page page, Integer inspectionOrderId,
                                                                                 Boolean includeDeleted) {
        return Result.success(inspectionOrderService.pageInspectionOrderBindings(page, inspectionOrderId, includeDeleted));
    }
 
    @ApiOperation(value = "查询检验委托单附件")
    @GetMapping("/listInspectionOrderAttachments")
    public Result<List<InspectionOrderAttachment>> listInspectionOrderAttachments(Integer inspectionOrderId,
                                                                                   Long bindingId) {
        return Result.success(inspectionOrderService.listInspectionOrderAttachments(inspectionOrderId, bindingId));
    }
 
    @ApiOperation(value = "获取成品下单关联的委托单信息")
    @GetMapping("/getInspectionOrderForPlaceOrder")
    public Result<InspectionOrderDto> getInspectionOrderForPlaceOrder(Integer inspectionOrderId) {
        return Result.success(inspectionOrderService.getInspectionOrderForPlaceOrder(inspectionOrderId));
    }
 
    @ApiOperation(value = "新增成品下单并绑定检验委托单")
    @PreAuthorize("@ss.hasPermi('add:insOrder')")
    @PostMapping("/addInsOrderWithInspectionOrder")
    public Result<Integer> addInsOrderWithInspectionOrder(@RequestBody InsPlaceOrderDto insPlaceOrderDto) {
        return Result.success(inspectionOrderService.addInsOrderWithInspectionOrder(insPlaceOrderDto));
    }
 
    @ApiOperation(value = "变更检验委托单关联")
    @PreAuthorize("@ss.hasPermi('add:insOrder')")
    @PostMapping("/changeBinding")
    public Result changeBinding(Integer insOrderId, Integer inspectionOrderId, String reason) {
        return Result.success(inspectionOrderService.changeBinding(insOrderId, inspectionOrderId, reason));
    }
 
    /**
     * 委托单检验修改
     * @return
     */
    @ApiOperation(value = "委托单检验修改")
    @PostMapping("/updateInspectionOrder")
    public Result updateInspectionOrder(@RequestBody InspectionOrderDto InspectionOrder){
        return Result.success(inspectionOrderService.updateInspectionOrder(InspectionOrder));
    }
 
    /**
     * 委托单检验删除
     * @return
     */
    @ApiOperation(value = "委托单检验删除")
    @DeleteMapping("/delInspectionOrder")
    public Result delInspectionOrder(Integer inspectionOrderId){
        return Result.success(inspectionOrderService.delInspectionOrder(inspectionOrderId));
    }
 
    /**
     * 委托单检验查看详情
     * @return
     */
    @ApiOperation(value = "委托单检验查看详情")
    @GetMapping("/getInspectionOrderOne")
    public Result<InspectionOrderDto> getInspectionOrderOne(Integer inspectionOrderId){
        return Result.success(inspectionOrderService.getInspectionOrderOne(inspectionOrderId));
    }
 
    /**
     * 委托单成品报告上传
     * @return
     */
    @ApiOperation(value = "委托单成品报告上传")
    @PostMapping("/uploadInspectionOrderFile")
    public Result uploadInspectionOrderFile(MultipartFile file, Integer inspectionOrderId) {
        return Result.success(inspectionOrderService.uploadInspectionOrderFile(file, inspectionOrderId));
    }
 
    @ApiOperation(value = "按下单记录上传委托单附件")
    @PreAuthorize("@ss.hasPermi('add:insOrder')")
    @PostMapping("/uploadInspectionOrderBindingFile")
    public Result uploadInspectionOrderBindingFile(MultipartFile file, Long bindingId) {
        return Result.success(inspectionOrderService.uploadInspectionOrderBindingFile(file, bindingId));
    }
 
    @ApiOperation(value = "重试同步正式报告到检验委托单")
    @PreAuthorize("@ss.hasPermi('add:insOrder')")
    @PostMapping("/retryInspectionOrderReportSync")
    public Result retryInspectionOrderReportSync(Integer insReportId) {
        inspectionOrderService.syncReportFile(insReportId);
        return Result.success(true);
    }
 
    /**
     * 导出检验委托单
     * @return
     */
    @ApiOperation(value = "导出检验委托单")
    @GetMapping("/exportInspectionOrder")
    public void exportInspectionOrder(Integer inspectionOrderId, Long bindingId, HttpServletResponse response){
        inspectionOrderService.exportInspectionOrder(inspectionOrderId, bindingId, response);
    }
}