liyong
3 天以前 7998ad65e1a632b02e9aaca1ca9e575a13b3e203
feat(production): 添加工艺路线明细管理功能
已添加8个文件
已修改7个文件
265 ■■■■■ 文件已修改
doc/create_table_process_route_item.sql 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/controller/ProductController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/mapper/ProductModelMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/IProductService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/basic/ProductModelMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProcessRouteItemMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProcessRouteMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductStructureMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/create_table_process_route_item.sql
@@ -5,8 +5,8 @@
    id          bigint auto_increment primary key,
    route_id    bigint   not null default 0 comment '工艺路线id',
    product_model_id  bigint   not null default 0 comment '产品id',
    process_id bigint   not null default 0 comment '工序id',
    tenant_id   bigint   not null comment '租户id',
    create_time datetime null comment '录入时间',
    update_time datetime null comment '更新时间',
    sort bigint  not null comment '排序'
    update_time datetime null comment '更新时间'
);
src/main/java/com/ruoyi/basic/controller/ProductController.java
@@ -12,6 +12,8 @@
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -94,6 +96,12 @@
        return productModelService.modelListPage(page, productDto);
    }
    @ApiOperation("分页查询所有产品型号")
    @GetMapping("/pageModel")
    public IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel) {
        return productService.listPageProductModel(page, productModel);
    }
    /**
     * å¯¼å…¥äº§å“
     */
src/main/java/com/ruoyi/basic/mapper/ProductModelMapper.java
@@ -1,7 +1,10 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.pojo.ProductModel;
import org.apache.ibatis.annotations.Param;
/**
@@ -12,4 +15,5 @@
 */
public interface ProductModelMapper extends BaseMapper<ProductModel> {
 
    IPage<ProductModel> listPageProductModel(Page<ProductModel> page, @Param("c") ProductModel productModel);
}
src/main/java/com/ruoyi/basic/service/IProductService.java
@@ -1,9 +1,12 @@
package com.ruoyi.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ProductTreeDto;
import com.ruoyi.basic.pojo.Product;
import com.ruoyi.basic.pojo.ProductModel;
import java.util.List;
@@ -15,4 +18,5 @@
    List<ProductTreeDto> selectProductList(ProductDto productDto);
    IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel);
}
src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ProductTreeDto;
@@ -52,6 +54,10 @@
        return tree;
    }
    @Override
    public IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel) {
        return productModelMapper.listPageProductModel(page, productModel);
    }
    // é€’归构建子节点
src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.ruoyi.production.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProcessRouteItemDto;
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.service.ProcessRouteItemService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("processRouteItem")
@Api(tags = "工艺路线明细")
public class ProcessRouteItemController {
    @Autowired
    private ProcessRouteItemService processRouteItemService;
    @GetMapping("list")
    public R listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
        return R.ok(processRouteItemService.listProcessRouteItemDto(processRouteItemDto));
    }
    @PostMapping ()
    public R add(@RequestBody List<ProcessRouteItem> processRouteItem) {
        return R.ok(processRouteItemService.saveBatch(processRouteItem));
    }
    @PutMapping ()
    public R update(@RequestBody List<ProcessRouteItem> processRouteItem) {
        processRouteItemService.remove(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRouteItem.get(0).getRouteId()));
        return R.ok(processRouteItemService.saveBatch(processRouteItem));
    }
}
src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.production.dto;
import com.ruoyi.production.pojo.ProcessRouteItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProcessRouteItemDto extends ProcessRouteItem {
    @ApiModelProperty(value = "工序名称")
    private String processName;
    @ApiModelProperty(value = "工艺路线名称")
    private String routeName;
    @ApiModelProperty(value = "产品名称")
    private String speculativeTradingName;
}
src/main/java/com/ruoyi/production/mapper/ProcessRouteItemMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.ruoyi.production.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.production.dto.ProcessRouteItemDto;
import com.ruoyi.production.pojo.ProcessRouteItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ProcessRouteItemMapper  extends BaseMapper<ProcessRouteItem> {
    List<ProcessRouteItemDto> listProcessRouteItemDto(@Param("c") ProcessRouteItemDto processRouteItemDto);
}
src/main/java/com/ruoyi/production/pojo/ProcessRouteItem.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ProcessRouteItem {
    @TableId(type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "工艺路线id")
    private Long routeId;
    @ApiModelProperty(value = "工序id")
    private Long processId;
    @ApiModelProperty(value ="产品id")
    private Long productModelId;
    @ApiModelProperty(value = "租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;
}
src/main/java/com/ruoyi/production/service/ProcessRouteItemService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.ruoyi.production.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProcessRouteItemDto;
import com.ruoyi.production.pojo.ProcessRouteItem;
import java.util.List;
public interface ProcessRouteItemService extends IService<ProcessRouteItem> {
    List<ProcessRouteItemDto> listProcessRouteItemDto( ProcessRouteItemDto processRouteItemDto);
}
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.production.dto.ProcessRouteItemDto;
import com.ruoyi.production.mapper.ProcessRouteItemMapper;
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.service.ProcessRouteItemService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
public class ProcessRouteItemServiceImpl extends ServiceImpl<ProcessRouteItemMapper, ProcessRouteItem> implements ProcessRouteItemService {
    @Autowired
    private  ProcessRouteItemMapper processRouteItemMapper;
    @Override
    public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
        return processRouteItemMapper.listProcessRouteItemDto( processRouteItemDto);
    }
}
src/main/resources/mapper/basic/ProductModelMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.basic.mapper.ProductModelMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.basic.pojo.ProductModel">
        <id column="id" property="id" />
        <result column="product_id" property="productId" />
        <result column="model" property="model" />
        <result column="unit" property="unit" />
        <result column="speculative_trading_name" property="speculativeTradingName" />
        <result column="tenant_id" property="tenantId" />
        <result column="product_name" property="productName" />
        <result column="product_id" property="productId" />
    </resultMap>
    <select id="listPageProductModel" resultType="com.ruoyi.basic.pojo.ProductModel">
        select pm.*,p.product_name
        from product_model pm
        left join product p on pm.product_id = p.id
        <where>
            <if test="c.model != null || c.model != ''">
                and pm.model = like  concat('%',#{c.model},'%')
            </if>
            <if test="c.productName != null || c.productName != ''">
                and p.product_name = like  concat('%',#{c.productName},'%')
            </if>
            <if test="c.speculativeTradingName != null || c.speculativeTradingName != ''">
                and pm.speculative_trading_name like  concat('%',#{c.speculativeTradingName},'%')
            </if>
        </where>
    </select>
</mapper>
src/main/resources/mapper/production/ProcessRouteItemMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProcessRouteItemMapper">
    <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRouteItem">
        <id property="id" column="id"/>
        <result property="routeId" column="route_id"/>
        <result property="processId" column="process_id"/>
        <result property="productModelId" column="product_model_id"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <select id="listProcessRouteItemDto" resultType="com.ruoyi.production.dto.ProcessRouteItemDto">
        select pri.*,
               pr.description ,
               pp.name as process_name,
               pm.speculative_trading_name
        from
            process_route_item pri
                left join product_model pm on pri.product_model_id = pm.id
                left join product_process pp on pp.id = pri.process_id
                left join process_route pr on pr.id = pri.route_id
        where
            pri.route_id = #{c.routeId}
    </select>
</mapper>
src/main/resources/mapper/production/ProcessRouteMapper.xml
@@ -3,6 +3,15 @@
<mapper namespace="com.ruoyi.production.mapper.ProcessRouteMapper">
    <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRoute">
            <id property="id" column="id"/>
            <result property="productModelId" column="product_model_id"/>
            <result property="description" column="description"/>
            <result property="tenantId" column="tenant_id"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
    </resultMap>
    <select id="pageProcessRouteDto" resultType="com.ruoyi.production.dto.ProcessRouteDto">
        select ps.*, pm.speculative_trading_name
        from process_route ps
src/main/resources/mapper/production/ProductStructureMapper.xml
@@ -2,6 +2,18 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.production.mapper.ProductStructureMapper">
    <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductStructure">
        <id property="id" column="id"/>
        <result property="productModelId" column="product_model_id"/>
        <result property="processId" column="process_id"/>
        <result property="unitQuantity" column="unit_quantity"/>
        <result property="demandedQuantity" column="demanded_quantity"/>
        <result property="unit" column="unit"/>
        <result property="diskQuantity" column="disk_quantity"/>
        <result property="tenantId" column="tenant_id"/>
    </resultMap>
    <select id="listByproductModelId" resultType="com.ruoyi.production.dto.ProductStructureDto">
        select ps.*,