lxw
2022-08-19 47e56bf8919dc916b34744e7bb5223b20445378d
产品下载
2个文件已修改
65 ■■■■■ 已修改文件
src/main/java/com/whyc/pojo/ProductBom.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductBomService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/ProductBom.java
@@ -63,14 +63,6 @@
    @TableField(exist = false)
    private List<Material> materials;
    @TableField(exist = false)
    @ApiModelProperty("是否是替换件:0:原子件,1:替换件")
    private int replaceStatus;
    @TableField(exist = false)
    @ApiModelProperty("替换关系中替换件的原子件名称")
    private String oldSubName;
    public Integer getId() {
        return id;
@@ -248,19 +240,4 @@
        this.materials = materials;
    }
    public int getReplaceStatus() {
        return replaceStatus;
    }
    public void setReplaceStatus(int replaceStatus) {
        this.replaceStatus = replaceStatus;
    }
    public String getOldSubName() {
        return oldSubName;
    }
    public void setOldSubName(String oldSubName) {
        this.oldSubName = oldSubName;
    }
}
src/main/java/com/whyc/service/ProductBomService.java
@@ -26,6 +26,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;
@@ -202,9 +203,20 @@
        Product product=productMapper.selectOne(wrapper);
        //读取产品的子件和关联的物料信息
        List<ProductBom> list=mapper.getBomAndMaterial(productId,version);
        //处理
        //处理存在关联关系的物料
        List<ProductBom> endList=new ArrayList<>();
        list.stream().forEach(bom -> {
            endList.add(bom);
            if(bom.getMaterials()!=null&&bom.getMaterials().size()>0){
                for (Material m:bom.getMaterials()) {
                    //将物料存放为一个bom为下载做准备
                    ProductBom copyBom=copyMaterialToBom(m);
                    endList.add(copyBom);
                }
            }
        });
        //生成excel并将dwg文件放在同一报下压缩
        creatBomExcel(req,resp,product,list,wb,"bom");
        creatBomExcel(req,resp,product,endList,wb,"bom");
        //记录日志
        DocUser docUser= ActionUtil.getUser();
        String operationDetail="具体产品信息为:"+product.toString();
@@ -212,8 +224,10 @@
        String terminalIp=req.getRemoteAddr();
        logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail);
    }
    //根据产品信息创建excel表格并存放在指定目录
    public void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,Product product,List list, HSSFWorkbook wb,String type){
    private void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,Product product,List list, HSSFWorkbook wb,String type){
        String fileDirName = FileDirPath.getFileDirName();
        String rootFace="";
        String excelName="";
@@ -386,4 +400,26 @@
        List<ProductBom> list=mapper.getBomAndMaterial(productId,version);
        return new Response().setII(1,list.size()>0?true:false,list,"返回物料信息及关联物料");
    }
    //将物料存放为一个bom为下载做准备
    private ProductBom copyMaterialToBom(Material m) {
        ProductBom bom=new ProductBom();
        bom.setType(m.getType());
        bom.setCategory(m.getCategory());
        bom.setSubCode(m.getSubCode());
        bom.setSubName(m.getSubName());
        bom.setSubModel(m.getSubModel());
        bom.setUnit(m.getUnit());
        bom.setQuantity(m.getQuantity());
        bom.setProducer(m.getProducer());
        bom.setMaterial(m.getMaterial());
        bom.setThickness(m.getThickness());
        bom.setSurfaceDetail(m.getSurfaceDetail());
        bom.setNotes(m.getNotes());
        bom.setPictureUrl(m.getPictureUrl());
        bom.setDwgUrl(m.getDwgUrl());
        bom.setFileUrl(m.getFileUrl());
        bom.setCreateDate(m.getCreateDate());
        return  bom;
    }
}