buhuazhen
2 天以前 c0a9f70dc2192da1f5e7c9d5a4d02c258ef9b003
feat(product-structure): 新增按父节点筛选的产品结构查询接口

- 在ProductStructureMapper增加isParent参数用于筛选父节点
- 修改SQL查询动态判断是否筛选父节点(parent_id不为空)
- 在ProductStructureService及其实现中增加listBybomIdIsParent方法
- 在ProductStructureController新增对应的接口listBybomIdIsParent
- 调整SalesLedgerProductServiceImpl调用listBybomId时传入isParent参数false
- 保持原有listBybomId方法默认查询非父节点结构
已修改6个文件
21 ■■■■ 文件已修改
src/main/java/com/ruoyi/production/controller/ProductStructureController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProductStructureService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductStructureMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -37,4 +37,10 @@
    public R listBybomId( @PathVariable("bomId") Integer bomId){
        return R.ok(productStructureService.listBybomId(bomId));
    }
    @GetMapping("/listBybomIdIsParent/{bomId}")
    public R listBybomIdIsParent(@PathVariable Integer bomId){
        return R.ok(productStructureService.listBybomIdIsParent(bomId));
    }
}
src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
@@ -13,7 +13,7 @@
@Mapper
public interface ProductStructureMapper  extends BaseMapper<ProductStructure> {
    List<ProductStructureDto> listBybomId(@Param("bomId") Integer bomId);
    List<ProductStructureDto> listBybomId(@Param("bomId") Integer bomId,@Param("isParent") Boolean isParent);
    List<ProductStructureDto> listBybomAndProcess(@Param("bomId") Integer bomId, @Param("processId") Long processId);
}
src/main/java/com/ruoyi/production/service/ProductStructureService.java
@@ -14,4 +14,5 @@
    List<ProductStructureDto> listBybomId(Integer bomId);
    List<ProductStructureDto> listBybomIdIsParent(Integer bomId);
}
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -131,7 +131,7 @@
    @Override
    public List<ProductStructureDto> listBybomId(Integer bomId) {
        List<ProductStructureDto> list = productStructureMapper.listBybomId(bomId);
        List<ProductStructureDto> list = productStructureMapper.listBybomId(bomId, false);
        Map<Long, ProductStructureDto> map = new HashMap<>();
        for (ProductStructureDto node : list) {
@@ -154,4 +154,9 @@
        return tree;
    }
    @Override
    public List<ProductStructureDto> listBybomIdIsParent(Integer bomId) {
        return productStructureMapper.listBybomId(bomId, true);
    }
}
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -495,7 +495,7 @@
        if (processRoute == null) {
            return R.fail("请先设置工艺路线");
        }
        List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomId(processRoute.getBomId());
        List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomId(processRoute.getBomId(),false);
        if (productStructureDtos.isEmpty()) {
            return R.fail("请先设置产品结构");
        }
src/main/resources/mapper/production/ProductStructureMapper.xml
@@ -23,6 +23,9 @@
                left join product p on pm.product_id = p.id
                left join product_process pp on ps.process_id = pp.id
        where ps.bom_id = #{bomId}
        <if test="isParent">
            and ps.parent_id is not null
        </if>
        order by ps.id
    </select>
    <select id="listBybomAndProcess" resultType="com.ruoyi.production.dto.ProductStructureDto">