liding
2025-04-01 8bf9254ba43e744517d4de2516121da2979fd057
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
package com.ruoyi.basic.controller;
 
 
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.StructureTestObjectDto;
import com.ruoyi.basic.excel.ExcelMultiSheetImporter;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.basic.dto.PageTestObjectDto;
import com.ruoyi.basic.dto.ProductDTO1;
import com.ruoyi.basic.excel.StructureTestObjectData;
import com.ruoyi.basic.excel.StructureTestObjectListener;
import com.ruoyi.basic.pojo.Product;
import com.ruoyi.basic.pojo.StructureItemParameter;
import com.ruoyi.basic.pojo.StructureTestObject;
import com.ruoyi.basic.service.CapacityScopeService;
import com.ruoyi.basic.service.ProductService;
import com.ruoyi.basic.service.StandardTemplateService;
import com.ruoyi.basic.service.StructureItemParameterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 检验项目参数(StructureItemParameter)表控制层
 *
 * @author makejava
 * @since 2024-02-26 16:21:17
 */
@Api(tags = "能力范围")
@AllArgsConstructor
@RestController
@RequestMapping("/capacityScope")
public class CapacityScopeController {
 
    private CapacityScopeService capacityScopeService;
 
    private ProductService productService;
 
    private StructureItemParameterService structureItemParameterService;
 
    private ISysDictTypeService dictTypeService;
 
    private StandardTemplateService standardTemplateService;
 
    @ApiOperation(value = "获取项目检验参数列表")
    @GetMapping("/selectItemParameterList")
    public Result selectItemParameterList(Page page, StructureItemParameter itemParameter) {
        return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter));
    }
 
    @ApiOperation(value = "添加项目检验参数")
    @PostMapping("/addItemParameter")
    public Result addItemParameter(@RequestBody StructureItemParameter itemParameter) {
        return Result.success(capacityScopeService.addItemParameter(itemParameter));
    }
 
    @ApiOperation(value = "删除项目检验参数")
    @DeleteMapping("/delItemParameter")
    public Result<?> delItemParameter(Integer id) {
        return Result.success(capacityScopeService.delItemParameter(id));
    }
 
    @ApiOperation(value = "修改项目检验参数")
    @PostMapping("/upItemParameter")
    public Result<?> upItemParameter(@RequestBody StructureItemParameter itemParameter) {
        return Result.success(capacityScopeService.upItemParameter(itemParameter));
    }
 
    @ApiOperation(value = "获取检验对象")
    @GetMapping("/selectTestObjectList")
    public Result selectTestObjectList(Page page, PageTestObjectDto pageTestObjectDto) {
        return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto));
    }
 
    @ApiOperation(value = "添加检验对象")
    @PostMapping("/addTestObject")
    public Result addTestObject(@RequestBody StructureTestObject testObject) {
        return Result.success(capacityScopeService.addTestObject(testObject));
    }
 
    @ApiOperation(value = "删除检验对象")
    @DeleteMapping("/delTestObject")
    public Result<?> delTestObject(Integer id) {
        return Result.success(capacityScopeService.delTestObject(id));
    }
 
    @ApiOperation(value = "修改检验对象")
    @PostMapping("/upTestObject")
    public Result upTestObject(@RequestBody StructureTestObject testObject) {
        return Result.success(capacityScopeService.upTestObject(testObject));
    }
 
    @ApiOperation(value = "获取检验对象枚举")
    @GetMapping("/selectTestObjectByName")
    public Result selectTestObjectByName() {
        return Result.success(capacityScopeService.selectTestObjectByName());
    }
 
    @ApiOperation(value = "设备里面选择检验项目(树形结构)")
    @GetMapping("/getInsProduction")
    public Result getInsProduction() {
        return Result.success(capacityScopeService.getInsProduction());
    }
 
    @ApiOperation(value = "维护检验对象的产品")
    @GetMapping("/selectProductListByObjectId")
    public Result selectProductListByObjectId(Page page, ProductDTO1 productDTO) {
        return Result.success(productService.selectProductListByObjectId(page, productDTO));
    }
 
    @ApiOperation(value = "添加产品")
    @PostMapping("/addProduct")
    public Result addProduct(@RequestBody Product product) {
        return Result.success(productService.addProduct(product));
    }
 
    @ApiOperation(value = "修改产品")
    @PostMapping("/upProduct")
    public Result upProduct(@RequestBody Product product) {
        return Result.success(productService.upProduct(product));
    }
 
    @ApiOperation(value = "删除产品")
    @DeleteMapping("/delProduct")
    public Result delProduct(Integer id) {
        return Result.success(productService.delProduct(id));
    }
 
    @ApiOperation(value = "获取检验对象树")
    @GetMapping("/getItemTree")
    public Result getItemTree() {
        return Result.success(capacityScopeService.getItemTree());
    }
 
    @PostMapping("/importEquipData")
    public Result importData(@RequestParam("file") MultipartFile file) {
        // 调用导入工具
        String result = ExcelMultiSheetImporter.importExcel(file, structureItemParameterService, standardTemplateService, dictTypeService);
        return Result.success(result);
    }
 
    @ApiOperation(value = "导入检验对象")
    @PostMapping("/importExcel")
    public Result importExcel(@RequestParam("file") MultipartFile file) {
        List<String> processedFiles = new ArrayList<>();
        try (InputStream inputStream = file.getInputStream()) {
            String fileHash = DigestUtils.md5Hex(inputStream);
            if (processedFiles.contains(fileHash)) {
                return Result.success(); // 已处理过的文件直接跳过
            }
            processedFiles.add(fileHash);
 
            EasyExcel.read(file.getInputStream(), StructureTestObjectData.class, new StructureTestObjectListener(capacityScopeService)).sheet().doRead();
        } catch (IOException e) {
            // 这里可以根据实际情况进行更完善的错误处理,比如记录日志等
            System.err.println("读取文件时发生错误: " + e.getMessage());
        }
        return Result.success();
    }
 
    @ApiOperation(value = "更新产品车间")
    @PostMapping("/updateWorkShop")
    public Result updateWorkShop(@RequestBody ProductDto productDto) {
        return Result.success(productService.updateWorkShop(productDto.getId(), productDto.getWorkShopId(), productDto.getWorkShopName()));
    }
 
    @ApiOperation(value = "更新检测对象车间")
    @PostMapping("/updateObjectWorkShop")
    public Result updateObjectWorkShop(@RequestBody StructureTestObjectDto structureTestObjectDto) {
        return Result.success(productService.updateObjectWorkShop(structureTestObjectDto));
    }
}