whycxzp
2022-09-03 24ffd7762ead9354264b29a3374ee46cae07ad45
产品bom提交更新
5个文件已修改
39 ■■■■■ 已修改文件
src/main/java/com/whyc/mapper/ProductBomMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Product.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductBomService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ProductBomMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ProductBomMapper.java
@@ -22,4 +22,7 @@
    //根据产品id查询子件及其关联的物料信息
    List<ProductBom> getBomAndMaterial(int productId,int version);
    List<ProductBom> getListByCodeAndModelList2(List<ProductBom> bomList);
}
src/main/java/com/whyc/pojo/Product.java
@@ -29,7 +29,7 @@
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    @TableId(value = "id", type = IdType.INPUT)
    private Integer id;
    private String parentCode;
src/main/java/com/whyc/service/ProductBomService.java
@@ -471,4 +471,8 @@
        update.eq("product_id",productId);
        mapper.delete(update);
    }
    public List<ProductBom> getListByCodeAndModelList2(List<ProductBom> bomList) {
        return mapper.getListByCodeAndModelList2(bomList);
    }
}
src/main/java/com/whyc/service/ProductService.java
@@ -111,8 +111,6 @@
    }
    public Response zipParse(MultipartFile file) throws IOException, InvalidFormatException {
        List<ProductBom> list = new LinkedList<>();
        Product product = new Product();
        List<ProductBom> bomList = new LinkedList<>();
        Response response = new Response();
@@ -430,8 +428,6 @@
                material.setNotes(bom.getNotes());
                material.setPictureUrl(bom.getPictureUrl());
                material.setProducer(bom.getProducer());
                //TODO quantity
                //material.setQuantity(bom.getQuantity());
                // TODO 是否要更新同物料编码的老物料状态为0?
                material.setStatus(1);
                material.setSubCode(bom.getSubCode());
@@ -457,13 +453,11 @@
        }
        mService.insertBatch(materialList);
        //更新product/product_bom/product_history/product_bom_history
        //根据编码和型号确定物料id,存入数据库
        List<Material> bomMaterialList = mService.getListByCodeAndModelList2(bomList);
        // -> product
        product.setCreateTime(new Date());
        product.setVersion(nextVersion);
        deleteAndInsert(product);
        //更新product_history/product_bom_history/product/product_bom,
        // product的主键沿用对应product_history的
        //根据编码和型号确定物料id并对应quantity,存入数据库
        //List<Material> bomMaterialList = mService.getListByCodeAndModelList2(bomList);
        List<ProductBom> bomMaterialList = pbService.getListByCodeAndModelList2(bomList);
        // -> product_history
        ProductHistory productHistory = new ProductHistory();
        productHistory.setParentCode(product.getParentCode());
@@ -473,14 +467,22 @@
        productHistory.setCustomCode(product.getCustomCode());
        productHistory.setCreateTime(product.getCreateTime());
        productHistory.setVersion(product.getVersion());
        //版本新增,初始bom子件版本为1
        productHistory.setSubVersionMax(1);
        productHistory.setEnabled(1);
        phService.insertAndUpdateEnabled(productHistory);
        // -> product
        product.setId(productHistory.getId());
        product.setCreateTime(new Date());
        product.setVersion(nextVersion);
        deleteAndInsert(product);
        // -> product_bom
        List<ProductBom> productBomList = new LinkedList<>();
        bomMaterialList.forEach(bomMaterial->{
            ProductBom bom = new ProductBom();
            bom.setProductId(product.getId());
            bom.setMaterialId(bomMaterial.getId());
            bom.setQuantity(bomMaterial.getQuantity());
            bom.setSubVersion(1);
            bom.setCreateDate(new Date());
@@ -493,6 +495,7 @@
            ProductBomHistory bomHistory = new ProductBomHistory();
            bomHistory.setProductId(productHistory.getId());
            bomHistory.setMaterialId(bomMaterial.getId());
            bomHistory.setQuantity(bomMaterial.getQuantity());
            bomHistory.setSubSVersion(1);
            bomHistory.setSubEVersion(1);
            bomHistory.setCreateDate(new Date());
src/main/resources/mapper/ProductBomMapper.xml
@@ -164,4 +164,9 @@
        and tb_material_product_history.s_version&lt;=#{version}
        and tb_material_product_history.e_version>=#{version}
    </select>
    <select id="getListByCodeAndModelList2" resultType="com.whyc.pojo.ProductBom">
        <foreach collection="list" item="item" separator=" union ">
            select id,#{item.quantity} as quantity from db_doc.tb_material where sub_code = #{item.subCode} and sub_model = #{item.subModel}
        </foreach>
    </select>
</mapper>