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
package com.yuanchu.mom.controller;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.*;
import com.yuanchu.mom.pojo.InsOrder;
import com.yuanchu.mom.pojo.InsOrderTemplate;
import com.yuanchu.mom.pojo.InsProduct;
import com.yuanchu.mom.pojo.InsSample;
import com.yuanchu.mom.service.InsOrderService;
import com.yuanchu.mom.service.InsOrderTemplateService;
import com.yuanchu.mom.service.InsProductService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
 
@RestController
@AllArgsConstructor
@RequestMapping("/insOrder")
@Api(tags="检验单模块")
public class InsOrderController {
 
    private InsOrderService insOrderService;
 
    private InsProductService insProductService;
 
    private InsOrderTemplateService insOrderTemplateService;
 
    //获取检验下单数据
    @ValueClassify("检验下单")
    @ApiOperation(value = "查询单位检验单")
    @PostMapping("/selectInsOrderParameter")
    public Result selectInsOrderParameter(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        SampleOrderDto sampleOrderDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleOrderDto.class);
        return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
    }
 
    //用于检验下单区别查看所有订单和只查看同一个委托单位的订单
    @ValueClassify("检验下单")
    @ApiOperation(value = "查询所有检验单")
    @PostMapping("/selectAllInsOrderParameter")
    public Result selectAllInsOrderParameter() {
        return Result.success();
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "添加检验下单数据")
    @PostMapping("/addInsOrder")
    public Result<?> addInsOrder(@RequestParam String str,  List<MultipartFile> files) {
        Map<String, Object> map = JSON.parseObject(str, Map.class);
        JSONArray jsonArray = JSON.parseArray(map.get("list")+"");
        List<SampleProductDto> list = jsonArray.toJavaList(SampleProductDto.class);
        InsOrder insOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), InsOrder.class);
        List<List<Integer>> pairing = JSON.parseArray(map.get("pairing")+"");
        return Result.success(insOrderService.addInsOrder(list, insOrder, pairing,files));
    }
 
    @ApiOperation(value = "查询订单最长预计时间")
    @PostMapping("/selectOrderManDay")
    @ValueAuth
    public Result<?> selectOrderManDay(Integer id) {
        int day = insProductService.selectOrderManDay(id);
        return Result.success("成功", LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    }
 
    @ApiOperation(value = "查询检验下单内容详情")
    @PostMapping("/getInsOrder")
    @ValueAuth
    public Result<?> getInsOrder(Integer orderId) {
        return Result.success(insOrderService.getInsOrder(orderId));
    }
 
    @ValueAuth
    @ApiOperation(value = "审核检验单进行状态修改")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "state", value = "审核结果 1:通过 2:不通过", dataTypeClass = Integer.class)
    })
    @PostMapping("/upInsOrderOfState")
    public Result<?> upInsOrderOfState(@RequestBody InsOrder insOrder) {
        return Result.success(insOrderService.upInsOrderOfState(insOrder));
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "检测中心主任审核/研发部经理审核/技术负责人审核")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "state", value = "审核结果 1:通过 2:不通过", dataTypeClass = Integer.class)
    })
    @PostMapping("/upInsOrderOfState2")
    public Result<?> upInsOrderOfState2(@RequestBody InsOrder insOrder) {
        return Result.success(insOrderService.upInsOrderOfState2(insOrder));
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "添加检验单模板")
    @PostMapping("/addInsOrderTemplate")
    public Result<?> addInsOrderTemplate(@RequestBody InsOrderTemplate insOrderTemplate) {
        return Result.success(insOrderTemplateService.addInsOrderTemplate(insOrderTemplate));
    }
 
    @ApiOperation(value = "查询检验单模板")
    @GetMapping("/selectInsOrderTemplate")
    @ValueAuth
    public Result<?> selectInsOrderTemplate(String company) {
        return Result.success(insOrderTemplateService.selectInsOrderTemplate(company));
    }
 
    @ApiOperation(value = "通过检验单模板id获取检验单模板内容")
    @PostMapping("/selectInsOrderTemplateById")
    @ValueAuth
    public Result<?> selectInsOrderTemplateById(Integer id) {
        return Result.success("成功", insOrderTemplateService.selectInsOrderTemplateById(id));
    }
    @ValueClassify("检验下单")
    @ApiOperation(value = "删除检验单模板")
    @PostMapping("/delInsOrderTemplate")
    public Result<?> delInsOrderTemplate(Integer id) {
        return Result.success(insOrderTemplateService.delInsOrderTemplate(id));
    }
 
    @ApiOperation(value = "通过检验单查询检验数据(数据查看)")
    @PostMapping("/selectSampleAndProductByOrderId")
    @ValueAuth
    public Result<?> selectSampleAndProductByOrderId(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        SampleProductDto2 sampleProductDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleProductDto2.class);
        return Result.success(insOrderService.selectSampleAndProductByOrderId(page, sampleProductDto));
    }
    @ValueClassify("费用统计")
    @ApiOperation(value = "费用统计")
    @PostMapping("/costStatistics")
    public Result<?> costStatistics(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
        return Result.success(insOrderService.costStatistics(page, costStatisticsDto));
    }
 
    @ValueAuth
    @ApiOperation(value = "费用统计获取总价")
    @PostMapping("/costStatistics2")
    public Result<?> costStatistics2(@RequestBody Map<String, Object> data) throws Exception {
        CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
        return Result.success(insOrderService.costStatistics2(costStatisticsDto));
    }
 
    @ValueClassify("统计图表")
    @ApiOperation(value = "样品缺陷指数")
    @PostMapping("/selectSampleDefects")
    public Result selectSampleDefects(Integer size, Integer current, String inspectionItems, String orderNumber) {
        return Result.success(insOrderService.selectSampleDefects(new Page<>(current, size),inspectionItems, orderNumber));
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "撤销")
    @PutMapping("/updateStatus")
    public Result<?> updateStatus(Integer id) {
        insOrderService.updateStatus(id);
        return Result.success();
    }
 
    //待检的撤销的查询待检项目
    @ValueAuth
    @PostMapping("/selectNoProducts")
    public Result<?> selectNoProducts(@RequestBody Map<String, Object> data,Integer orderId ,String ids) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        InsProduct insProduct = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsProduct.class);
        return Result.success(insProductService.selectNoProducts(page, insProduct,orderId,ids));
    }
 
 
    @ApiOperation(value = "待检的撤销")
    @PutMapping("/updateInspected")
    @ValueAuth
    public Result<?> updateInspected(Integer orderId,String ids){
        insProductService.updateInspected(orderId,ids);
        return Result.success();
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "审核待检撤销")
    @PostMapping("/checkUpdate")
    public Result<?> checkUpdate(Integer orderId,Integer state){
        insProductService.checkUpdate(orderId,state);
        return Result.success();
    }
 
    @ValueClassify("检验下单")
    @ApiOperation(value = "标签打印")
    @PostMapping("/labelPrinting")
    public Result<?> labelPrinting(String ids) {
        return Result.success(insOrderService.labelPrinting(ids));
    }
 
    @ValueAuth
    @ApiOperation(value = "校验电机编号")
    @PostMapping("/checkNumber")
    public Result<?> checkNumber(String ids) {
        return Result.success(insOrderService.checkNumber(ids));
    }
 
    @ValueAuth
    @ApiOperation(value = "填写电机编号")
    @PostMapping("/addNumber")
    public Result<?> addNumber(@RequestBody AddNumberDto addNumberDto) {
        return Result.success(insOrderService.addNumber(addNumberDto.getInsSamples()));
    }
 
    @ValueClassify("费用统计")
    @ApiOperation(value = "费用统计导出")
    @PostMapping("/export")
    public void export(@RequestBody Map<String, Object> data,HttpServletResponse response) throws Exception {
        CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
       insOrderService.export(costStatisticsDto,response);
    }
 
 
}