liyong
17 小时以前 d9ee1fb5190f91d79c003193b7f27ff7c5072227
feat(production): 添加工艺路线管理功能并重构产品结构相关代码
已添加7个文件
已修改10个文件
207 ■■■■■ 文件已修改
doc/create_table_process_route.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/create_table_process_route_item.sql 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/create_table_product_structure.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProcessRouteController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductStructureController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/ProductStructureDto.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProcessRoute.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductStructure.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProcessRouteService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProductStructureService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProcessRouteMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductStructureMapper.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/create_table_process_route.sql
@@ -3,7 +3,7 @@
create table process_route
(
    id          bigint auto_increment primary key,
    product_id  bigint       not null default 0 comment '产品id',
    product_model_id  bigint       not null default 0 comment '产品id',
    description varchar(255) not null default '' comment '描述',
    tenant_id   bigint       not null comment '租户id',
    create_time datetime     null comment '录入时间',
doc/create_table_process_route_item.sql
@@ -4,8 +4,9 @@
(
    id          bigint auto_increment primary key,
    route_id    bigint   not null default 0 comment '工艺路线id',
    product_id  bigint   not null default 0 comment '产品id',
    product_model_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 '更新时间'
    update_time datetime null comment '更新时间',
    sort bigint  not null comment '排序'
);
doc/create_table_product_structure.sql
@@ -4,7 +4,7 @@
(
    id                 bigint auto_increment
        primary key,
    product_id         bigint         not null comment '产品id',
    product_model_id         bigint         not null comment '产品id',
    process_id         bigint         not null comment '工序id',
    unit_quantity      numeric(16, 4) not null comment '单位产出需要数量',
    demanded_quantity  numeric(16, 4) not null comment '需求数量',
src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.ruoyi.production.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProcessRouteDto;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.service.ProcessRouteService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
@RestController
@RequestMapping("processRoute")
@Api(tags = "工艺路线")
public class ProcessRouteController {
    @Autowired
    private ProcessRouteService processRouteService;
    @GetMapping("page")
    @ApiOperation("分页查询")
    public R page(Page<ProcessRouteDto>  page, ProcessRouteDto processRouteDto) {
        return R.ok(processRouteService.pageProcessRouteDto(page, processRouteDto));
    }
    @ApiOperation("新增工艺路线")
    @PostMapping ()
    public R add(@RequestBody  ProcessRoute processRoute) {
        return R.ok(processRouteService.save(processRoute));
    }
    @ApiOperation("修改工艺路线")
    @PutMapping ()
    public R update(@RequestBody  ProcessRoute processRoute) {
        return R.ok(processRouteService.updateById(processRoute));
    }
    @ApiOperation("删除工艺路线")
    @DeleteMapping("/{ids}")
    public R delete(@PathVariable("ids") Long[] ids) {
        return R.ok(processRouteService.removeBatchByIds(Arrays.asList(ids)));
    }
}
src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -22,20 +22,20 @@
    @ApiOperation("根据productId查询")
    @GetMapping("listByProductId")
    public R listByProductId( Long productId){
        return R.ok(productStructureService.listByProductId( productId));
    @GetMapping("listByproductModelId")
    public R listByproductModelId( Long productModelId){
        return R.ok(productStructureService.listByproductModelId( productModelId));
    }
    @ApiOperation("新增产品结构")
    @PostMapping()
    public R add(ProductStructure productStructure){
    public R add(@RequestBody ProductStructure productStructure){
        return R.ok(productStructureService.save(productStructure));
    }
    @ApiOperation("修改产品结构")
    @PutMapping()
    public R update(ProductStructure productStructure){
    public R update(@RequestBody ProductStructure productStructure){
        return R.ok(productStructureService.updateById(productStructure));
    }
src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.ruoyi.production.dto;
import com.ruoyi.production.pojo.ProcessRoute;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProcessRouteDto extends ProcessRoute {
    @ApiModelProperty(value = "产品名称")
    private String speculativeTradingName;
}
src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
@@ -1,11 +1,14 @@
package com.ruoyi.production.dto;
import com.ruoyi.production.pojo.ProductStructure;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProductStructureDto extends ProductStructure {
    @ApiModelProperty(value = "工艺名称")
    private String processName;
    private String productName;
    @ApiModelProperty(value = "产品名称")
    private String speculativeTradingName;
}
src/main/java/com/ruoyi/production/mapper/ProcessRouteMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
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.ProcessRouteDto;
import com.ruoyi.production.pojo.ProcessRoute;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface ProcessRouteMapper extends BaseMapper<ProcessRoute> {
    IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page,@Param("c") ProcessRouteDto processRouteDto);
}
src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
@@ -12,5 +12,5 @@
@Mapper
public interface ProductStructureMapper  extends BaseMapper<ProductStructure> {
    List<ProductStructure> listByProductId(@Param("productId") Long productId);
    List<ProductStructureDto> listByproductModelId(@Param("productModelId") Long productModelId);
}
src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ProcessRoute {
    @ApiModelProperty(value = "序号")
    private Long id;
    @ApiModelProperty(value = "产品ID")
    private Long productModelId;
    @ApiModelProperty(value = "描述")
    private String description;
    @ApiModelProperty(value = "租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;
}
src/main/java/com/ruoyi/production/pojo/ProductStructure.java
@@ -17,7 +17,7 @@
    /**
     * äº§å“åç§°
     */
    private Long productId;
    private Long productModelId;
    /**
     * å·¥åºid
src/main/java/com/ruoyi/production/service/ProcessRouteService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
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.production.dto.ProcessRouteDto;
import com.ruoyi.production.pojo.ProcessRoute;
public interface ProcessRouteService extends IService<ProcessRoute> {
    IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto);
}
src/main/java/com/ruoyi/production/service/ProductStructureService.java
@@ -1,6 +1,7 @@
package com.ruoyi.production.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProductStructure;
import java.util.List;
@@ -8,5 +9,5 @@
public interface ProductStructureService extends IService<ProductStructure> {
    List<ProductStructure> listByProductId( Long productId);
    List<ProductStructureDto> listByproductModelId(Long productId);
}
src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
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.ProcessRouteDto;
import com.ruoyi.production.mapper.ProcessRouteMapper;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.service.ProcessRouteService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@AllArgsConstructor
@Slf4j
public class ProcessRouteServiceImpl extends ServiceImpl<ProcessRouteMapper, ProcessRoute> implements ProcessRouteService {
    @Autowired
    private ProcessRouteMapper processRouteMapper;
    @Override
    public IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
        return processRouteMapper.pageProcessRouteDto(page, processRouteDto);
    }
}
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.mapper.ProductStructureMapper;
import com.ruoyi.production.pojo.ProductStructure;
import com.ruoyi.production.service.ProductStructureService;
@@ -20,7 +21,7 @@
    private  ProductStructureMapper productStructureMapper;
    @Override
    public List<ProductStructure> listByProductId(Long productId) {
        return productStructureMapper.listByProductId( productId);
    public List<ProductStructureDto> listByproductModelId(Long productModelId) {
        return productStructureMapper.listByproductModelId( productModelId);
    }
}
src/main/resources/mapper/production/ProcessRouteMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<?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.ProcessRouteMapper">
    <select id="pageProcessRouteDto" resultType="com.ruoyi.production.dto.ProcessRouteDto">
        select ps.*, pm.speculative_trading_name
        from process_route ps
                 left join product_model pm on ps.product_model_id = pm.id
        <where>
            <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/ProductStructureMapper.xml
@@ -3,14 +3,14 @@
<mapper namespace="com.ruoyi.production.mapper.ProductStructureMapper">
    <select id="listByProductId" resultType="com.ruoyi.production.pojo.ProductStructure">
    <select id="listByproductModelId" resultType="com.ruoyi.production.dto.ProductStructureDto">
        select ps.*,
        p.product_name as product_name,
        pm.speculative_trading_name ,
        pp.name as  process_name
        from
        product_structure ps
        left join product p on ps.process_id = p.id
        left join product_process pp on ps.process_id = pp.process_id
        where p.id = #{productId}
        left join product_model pm on ps.product_model_id = pm.id
        left join product_process pp on ps.process_id = pp.id
        where pm.id = #{productId}
    </select>
</mapper>