whycxzp
2024-11-07 d3113b2a1c4c7a6c44cb0eeaf728c302cb899792
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
package com.whyc.controller;
 
import com.whyc.dto.Response;
import com.whyc.pojo.Product;
import com.whyc.service.*;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
 
@Api(tags = "产品管理")
@RestController
@RequestMapping("product")
public class ProductController {
    @Autowired
    private ProductService service;
 
    @Autowired
    private ProductHistoryService historyService;
 
    @Autowired
    private ProductBomService bomService;
 
    @Autowired
    private ProductBomHistoryService bomHistoryService;
 
    @Autowired
    private MaterialService meterService;
 
    @ApiOperation(value = "建立关联时查询所有的物料(不分页)",notes = "8.17修改后使用")
    @GetMapping("getAllMaterialNoLimit")
    public Response getAllMaterialNoLimit(){
        return meterService.getAllMaterialNoLimit();
    }
 
    @ApiOperation(value = "查询出所有的产品信息(分页加模糊查询<产品的编码,型号,名字,定制表编号>)",notes = "8.17修改后使用")
    @GetMapping("getAllProduct")
    public Response getAllProduct(@RequestParam(required = false) String subCode,
                                  @RequestParam(required = false) String parentCode,
                                  @RequestParam(required = false) String parentName,
                                  @RequestParam(required = false) String parentModel,
                                  @RequestParam(required = false) String customCode,
                                  @RequestParam(required = false) Integer enabled,
                                  @RequestParam int pageCurr,
                                  @RequestParam int pageSize){
        return service.getAllProduct(subCode,parentCode,parentName,parentModel,customCode,enabled,pageCurr,pageSize);
    }
 
    @ApiOperation(value = "查询出所有的产品无参不分页(产品上传的是用)",notes = "9.2修改后使用")
    @GetMapping("getUpBomUseProduct")
    public Response getUpBomUseProduct(){
        return service.getUpBomUseProduct();
    }
 
    @ApiOperation(value = "产品详情查看版本信息",notes = "8.17修改后使用")
    @GetMapping("getProductVersion")
    public Response getProductVersion( @RequestParam String parentCode, String customCode){
        return historyService.getProductVersion(parentCode,customCode);
    }
    @ApiOperation(value = "根据产品id和版本查询子件及其关联的物料信息",notes = "8.17修改后使用")
    @GetMapping("getBomAndMaterial")
    public Response getBomAndMaterial( @RequestParam int productId, @RequestParam int version){
        return bomService.getBomAndMaterial(productId,version);
    }
    @ApiOperation(value = "产品下载(产品id和版本<当前最新版本>)",notes = "8.17修改后使用")
    @GetMapping("downloadProduct")
    public void downloadProduct(HttpServletRequest req, HttpServletResponse resp, @RequestParam int productId, @RequestParam int version
            , @RequestParam String oprateReason, @RequestParam String oprateInfo){
         bomService.downloadProduct(req,resp,productId,version,oprateReason,oprateInfo);
    }
 
    @ApiOperation(value = "历史产品信息查看(根据历史产品产品id和版本查询子件及其关联的物料信息)",notes = "8.17修改后使用")
    @GetMapping("getBomHistoryAndMaterial")
    public Response getBomHistoryAndMaterial( @RequestParam int productId, @RequestParam int version){
        return bomHistoryService.getBomHistoryAndMaterial(productId,version);
    }
 
    @ApiOperation(value = "历史产品信息查看(产品中有0120开头的物料其实是产品,查看产品信息)",notes = "2.8修改后使用!!!暂时无用!!!!")
    @GetMapping("getBomHistoryAndMaterial_0120")
    public Response getBomHistoryAndMaterial_0120( @RequestParam String parentCode, @RequestParam String parentName, @RequestParam String parentModel){
        return bomHistoryService.getBomHistoryAndMaterial_0120(parentCode,parentName,parentModel);
    }
 
    @ApiOperation(value = "根据产品母料型号,定制单号,版本下载原始压缩包文件",notes = "11.17修改后使用")
    @GetMapping("getOriginalZip")
    public Response getOriginalZip(@RequestParam String parentCode, @RequestParam String parentModel,@RequestParam(required = false) String customCode,@RequestParam int version){
        return bomHistoryService.getOriginalZip(parentCode,parentModel,customCode,version);
    }
 
 
    @ApiOperation(value = "历史产品下载(产品id和版本<下载的版本>)",notes = "8.17修改后使用")
    @GetMapping("downloadProductHistory")
    public void downloadProductHistory(HttpServletRequest req, HttpServletResponse resp, @RequestParam int productId, @RequestParam int version
            , @RequestParam String oprateReason, @RequestParam String oprateInfo){
        bomHistoryService.downloadProductHistory(req,resp,productId,version,oprateReason,oprateInfo);
    }
 
    @ApiOperation(value = "历史版本可用性设定",notes = "8.31修改后使用")
    @GetMapping("setpHistoryEnable")
    public Response setpHistoryEnable( @RequestParam String parentCode, @RequestParam String customCode, @RequestParam int version,@RequestParam int enabled,@RequestParam(required = false) String reason,@RequestParam String versionTime) {
        return historyService.setpHistoryEnable(parentCode, customCode, version, enabled,reason,versionTime);
    }
    @PostMapping("zipParse")
    @ApiOperation(value = "zip解析",notes = "返回结果中,追加data3为对比结果,为key-value集合,key为diffList,addList,deleteList,diffDwgList")
    public Response zipParse(@RequestParam("file") MultipartFile file,@RequestParam(required = false) String baseStr) throws IOException, InvalidFormatException {
        //要做对比的产品,传入了物料(parent_code)和定制表单号(custom_code)
        Product baseProduct = (baseStr==null?null:ActionUtil.getGson().fromJson(baseStr, Product.class));
        return service.zipParse(file,baseProduct);
    }
 
    /**
     * 这个接口是进行产品新增,产品bom新增的接口.
     * 新增方式有很多,有直接从zip解析新增产品,也可以基于原有产品复制进行定制等.需要注意兼容!
     * @param product 产品新增,bom新增,产品版本更新
     * @return
     * @throws IOException
     */
    @PostMapping
    @ApiOperation(value = "新增",notes = "解析时返回的绝对路径,需要回传到字段fileUrl")
    public Response add(@RequestBody Product product) throws IOException {
        return service.add(product);
    }
 
    @ApiOperation(value = "根据产品id查询被锁定的物料dwg和产品丝印",notes = "8.17修改后使用")
    @GetMapping("getLockedByProductId")
    public Response getLockedByProductId( @RequestParam int productId){
        return service.getLockedByProductId(productId);
    }
 
    /*@GetMapping("manualUpdate")
    @Transactional
    public void manualUpdate(){
        //material属性转移到bom和bomHistory
        bomHistoryService.updateMaterialField2BomHistory();
        bomService.updateMaterialField2Bom();
    }*/
 
    @ApiOperation(tags = "反馈管理",value = "查询当前使用的所有的产品")
    @GetMapping("getFkProduct")
    public Response getFkProduct(){
        return service.getFkProduct();
    }
 
    @ApiOperation(value = "产品对比下拉选中")
    @GetMapping("getCompareProduct")
    public Response getCompareProduct(){
        return service.getCompareProduct();
    }
 
    @ApiOperation(value = "验证母料编码是否存在产品中")
    @GetMapping("judgeParentCode")
    public Response judgeParentCode(@RequestParam String parentCode,@RequestParam(required = false) String customCode){
        return service.judgeParentCode(parentCode,customCode);
    }
}