lxw
2022-08-10 820224c80bb64721df20f52fcb5c388a991e83b0
产品管理查询信息时要显示替换件以及以前存在的关联关系
7个文件已修改
95 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/ProductBomController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ComponentMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ProductBomMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/ProductBom.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductBomService.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ComponentMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ProductBomMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ProductBomController.java
@@ -58,8 +58,8 @@
    @ApiOperation(tags = "产品管理",value = "获取所有产品信息")
    @GetMapping("getAllBom")
    public Response getAllBom(){
        return service.getAllBom();
    public Response getAllBom( @RequestParam int pageCurr, @RequestParam int pageSize){
        return service.getAllBom(pageCurr,pageSize);
    }
    @ApiOperation(tags = "产品管理",value = "根据母料型号查询子件信息及有最新版本关联的散装件信息")
src/main/java/com/whyc/mapper/ComponentMapper.java
@@ -1,6 +1,7 @@
package com.whyc.mapper;
import com.whyc.pojo.Component;
import com.whyc.pojo.ProductBom;
import java.util.List;
@@ -9,4 +10,6 @@
    List<Component> getComponentWithoutSub(String parentModel, String subName,int version);
    //查询所有的散装件信息加设置了替换关系的子件信息
    List<Component> getAllComponent();
    //查询出存在替换关系得散装件
    ProductBom getReplaceComponent(String parentModel);
}
src/main/java/com/whyc/mapper/ProductBomMapper.java
@@ -1,5 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.Component;
import com.whyc.pojo.ProductBom;
import com.whyc.pojo.ProductBomApproving;
@@ -16,4 +17,6 @@
    //根据母料型号查询子件信息及有关联的散装件信息
    List<ProductBom> getSubByComponentProduct(String parentModel);
    //查询出存在的旧的关联子件
    List<Component> getOldComponent(String subName);
}
src/main/java/com/whyc/pojo/ProductBom.java
@@ -70,6 +70,11 @@
    @TableField(exist = false)
    private List<Component> components;
    @TableField(exist = false)
    @ApiModelProperty("是否是替换件:0:原子件,1:替换件")
    private int replaceStatus;
    public Integer getId() {
        return id;
    }
@@ -277,4 +282,12 @@
    public void setComponents(List<Component> components) {
        this.components = components;
    }
    public int getReplaceStatus() {
        return replaceStatus;
    }
    public void setReplaceStatus(int replaceStatus) {
        this.replaceStatus = replaceStatus;
    }
}
src/main/java/com/whyc/service/ProductBomService.java
@@ -9,11 +9,9 @@
import com.whyc.dto.FileDirPath;
import com.whyc.dto.Response;
import com.whyc.dto.ZipUtils;
import com.whyc.mapper.ComponentMapper;
import com.whyc.mapper.ProductBomMapper;
import com.whyc.pojo.DocUser;
import com.whyc.pojo.ProductBom;
import com.whyc.pojo.ProductBomApproving;
import com.whyc.pojo.ProductBomHistory;
import com.whyc.pojo.*;
import com.whyc.util.ActionUtil;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.Cell;
@@ -40,6 +38,8 @@
    @Autowired(required = false)
    private ProductBomMapper mapper;
    @Autowired(required = false)
    private ComponentMapper cponentMapper;
    @Autowired
    private DocLogService logService;
    //图纸分类检索
@@ -196,11 +196,13 @@
    }
    /**
     * 获取所有产品信息*/
    public Response getAllBom() {
    public Response getAllBom(int pageCurr,int pageSize) {
        PageHelper.startPage(pageCurr,pageSize);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("distinct parent_code","parent_name","parent_model","version").orderByAsc("id");
        List list=mapper.selectList(wrapper);
        return new Response().setII(1,list!=null?true:false,list,"返回数据");
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list!=null?true:false,pageInfo,"返回数据");
    }
    //产品打包下载
    public  void downloadBom(HttpServletRequest req, HttpServletResponse resp, String parentModel) {
@@ -362,6 +364,21 @@
    //根据母料型号查询子件信息及有最新版本关联的散装件信息
    public Response getSubByComponentProduct(String parentModel) {
        List<ProductBom> list=mapper.getSubByComponentProduct(parentModel);
        //查询出存在替换关系得散装件
        ProductBom replaceBom=cponentMapper.getReplaceComponent(parentModel);
        //如果存在替换关系,查询出原子件的关联关系(将原子件名称放在parent_name中)
        if(replaceBom!=null&&!replaceBom.getSubName().isEmpty()) {
            //replaceBom表示为替换件
            replaceBom.setReplaceStatus(1);
            if (replaceBom.getParentName() != null && !replaceBom.getParentName().isEmpty()) {
                //查询出存在的旧的关联子件,还要与原BOM版本一致
                List<Component> oldCponent = mapper.getOldComponent(replaceBom.getParentName());
                replaceBom.setComponents(oldCponent);
            }
            //还原replaceBom的parent_model为空
            replaceBom.setParentName(null);
        }
        list.add(replaceBom);
        return new Response().setII(1,list.size()>0?true:false,list,"返回数据");
    }
}
src/main/resources/mapper/ComponentMapper.xml
@@ -45,4 +45,35 @@
        where  tb_product_bom.version=tb_component_product_history.e_version  and  tb_product_bom.sub_name=tb_component_product_history.sub_name
        and tb_product_bom.parent_model=tb_component_product_history.parent_model and tb_component_product_history.component_id=#{id}
    </select>
    <resultMap id="replaceBom" type="productBom">
        <result property="parentModel" column="parent_model"></result>
        <result property="parentName" column="old_subName"></result>
        <result property="type" column="type"></result>
        <result property="category" column="category"></result>
        <result property="subCode" column="sub_code"></result>
        <result property="subName" column="sub_name"></result>
        <result property="subModel" column="sub_model"></result>
        <result property="unit" column="unit"></result>
        <result property="quantity" column="quantity"></result>
        <result property="producer" column="producer"></result>
        <result property="material" column="material"></result>
        <result property="thickness" column="thickness"></result>
        <result property="surfaceDetail" column="surface_detail"></result>
        <result property="notes" column="notes"></result>
        <result property="pictureUrl" column="picture_url"></result>
        <result property="fileUrl" column="file_url"></result>
        <result property="upUserId" column="up_user_id"></result>
        <result property="createDate" column="create_date"></result>
        <result property="updateDate" column="update_date"></result>
        <result property="dwgUrl" column="dwg_url"></result>
        <result property="parentVersion" column="parent_version"></result>
    </resultMap>
    <select id="getReplaceComponent" resultMap="replaceBom">
        select tb_component.*,tb_component_product_history.sub_name as old_subName from db_doc.tb_component,db_doc.tb_component_product_history
        where tb_component.id=tb_component_product_history.component_id
        and tb_component_product_history.parent_model=#{parentModel}
        and tb_component_product_history.link_type=2
    </select>
</mapper>
src/main/resources/mapper/ProductBomMapper.xml
@@ -86,12 +86,13 @@
        <result property="version" column="version"></result>
        <result property="dwgUrl" column="dwg_url"></result>
        <result property="parentVersion" column="parent_version"></result>
        <result property="replaceStatus" column="replaceStatus"></result>
        <collection property="components" javaType="java.util.ArrayList" ofType="com.whyc.pojo.Component" column="{subName=sub_name,parentModel=parent_model,eVersion=version}" select="selectComponent">
        </collection>
    </resultMap>
    <select id="getSubByComponentProduct" resultMap="componentList" parameterType="java.lang.String">
        select distinct * from  db_doc.tb_product_bom
        select distinct *,0 as replaceStatus from  db_doc.tb_product_bom
        <where>
            parent_model = #{parentModel}
        </where>
@@ -103,4 +104,13 @@
        and tb_component_product_history.sub_name=#{subName} and tb_component_product_history.parent_model=#{parentModel}
        and tb_component_product_history.e_version=#{eVersion}
    </select>
    <select id="getOldComponent"  resultType="com.whyc.pojo.Component">
        select DISTINCT tb_component.*
        FROM db_doc.tb_component,db_doc.tb_component_product_history,tb_product_bom
        where tb_component.id=tb_component_product_history.component_id
        and tb_component_product_history.parent_model=tb_product_bom.parent_model
        and tb_component_product_history.sub_name=#{subName} and tb_component_product_history.link_type=1
        and tb_component_product_history.e_version=tb_product_bom.version
    </select>
</mapper>