whycxzp
2022-09-03 581c7b2b2e7d631ecf3ab3276639f51f6745f784
产品bom提交更新
6个文件已修改
63 ■■■■ 已修改文件
src/main/java/com/whyc/controller/ProductBomApprovingController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ProductController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Product.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/ProductHistory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductBomHistoryService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ProductBomApprovingController.java
@@ -3,7 +3,6 @@
import com.whyc.dto.Response;
import com.whyc.pojo.ProductBomApproving;
import com.whyc.service.ProductBomApprovingService;
import com.whyc.util.Zip4jUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
src/main/java/com/whyc/controller/ProductController.java
@@ -3,6 +3,7 @@
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;
@@ -86,8 +87,10 @@
    }
    @PostMapping("zipParse")
    @ApiOperation("zip解析")
    public Response zipParse(@RequestParam("file") MultipartFile file) throws IOException, InvalidFormatException {
        return service.zipParse(file);
    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);
    }
    @PostMapping
src/main/java/com/whyc/pojo/Product.java
@@ -45,6 +45,9 @@
    private Date createTime;
    @ApiModelProperty("版本时间")
    private Date versionTime;
    private Integer version;
    @TableField(exist = false)
src/main/java/com/whyc/pojo/ProductHistory.java
@@ -41,6 +41,9 @@
    private Date createTime;
    @ApiModelProperty("版本时间")
    private Date versionTime;
    private Integer version;
    @ApiModelProperty(value = "是否启用:更新自动启用,同时可以手动启用某个")
src/main/java/com/whyc/service/ProductBomHistoryService.java
@@ -22,10 +22,7 @@
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -44,6 +41,10 @@
    @Autowired
    private ProductBomService bomService;
    @Autowired
    private ProductService productService;
    //根据子件名称和母料型号查询历史版本记录
    public Response getBomHistoryByPModelAndSName(String pmodel, String sname) {
        QueryWrapper wrapper=new QueryWrapper();
@@ -376,6 +377,35 @@
        return new Response().setIII(1,diffList,addList,deleteList,"对比完成");
    }
    /**
     * @param baseProduct 基准产品为null,则直接找上传产品的最新标准版本
     * @param product 上传产品
     * @return
     */
    public Map<String, List> parseCompare(Product baseProduct, Product product) {
        List<ProductBom> bomList = product.getBomList();
        List<ProductBom> baseBomList = new LinkedList<>();
        Map<String,List> compareMap = new HashMap<>();
        List<ProductBomHistory> diffList = new LinkedList<>();
        List<ProductBomHistory> addList = new LinkedList<>();
        List<ProductBomHistory> deleteList = new LinkedList<>();
        //根据baseProduct的code和custom_code,查找到基准产品
        if(baseProduct == null){
            //productService.
        }else{
        }
        //对比:根据code+model定位,比较数量
        compareMap.put("diffList",diffList);
        compareMap.put("addList",addList);
        compareMap.put("deleteList",deleteList);
        return compareMap;
    }
    /**关联查询到具体的bom内物料信息*/
    private List<ProductBomHistory> getLatestBomListByProductId(int productId) {
        QueryWrapper<ProductBomHistory> query = Wrappers.query();
src/main/java/com/whyc/service/ProductService.java
@@ -22,10 +22,7 @@
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -110,7 +107,7 @@
        mapper.insert(product);
    }
    public Response zipParse(MultipartFile file) throws IOException, InvalidFormatException {
    public Response zipParse(MultipartFile file, Product baseProduct) throws IOException, InvalidFormatException {
        Product product = new Product();
        List<ProductBom> bomList = new LinkedList<>();
        Response response = new Response();
@@ -264,7 +261,9 @@
                product.setBomList(bomList);
            }
        }
        return response.setII(1, true, product, filePath);
        //产品bom对比
        Map<String,List> compareMap = pbhService.parseCompare(baseProduct,product);
        return response.setIII(1, true, product,compareMap, filePath);
    }