buhuazhen
2026-05-09 a80419d9872b29c0abf5be65ec4233d628c04cba
feat: 为生产订单和计划添加车间信息支持

在生产订单实体和视图对象中添加车间ID和名称字段,并在创建订单时关联车间信息。同时在生产计划下发时增加车间信息校验,确保车间信息必填,以支持按车间进行生产管理和数据筛选。
已修改6个文件
27 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductionPlanController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductionOrder.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductionOrderMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.production.bean.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.production.pojo.ProductionPlan;
@@ -52,4 +53,6 @@
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate requiredDateEnd;
    @Schema(description = "车间id")
    private Long workshopId;
}
src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
@@ -39,4 +39,12 @@
    @Schema(description = "是否已退料")
    private Boolean returned;
    @Schema(description = "车间id")
    private Long workshopId;
    @Schema(description = "车间名称")
    private String workshopName;
}
src/main/java/com/ruoyi/production/controller/ProductionPlanController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -53,6 +54,9 @@
        if (productionPlanDto.getTotalAssignedQuantity() == null || productionPlanDto.getTotalAssignedQuantity().compareTo(BigDecimal.ZERO) <= 0) {
            return R.fail("请输入下发数量");
        }
        if(productionPlanDto.getWorkshopId() == null){
            throw new BaseException("请选择车间信息");
        }
        return R.ok(productionPlanService.combine(productionPlanDto));
    }
src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
@@ -80,4 +80,9 @@
    @Schema(description = "是否结束)")
    @TableField("is_end_order")
    private Boolean endOrder;
    @TableField("workshop_id")
    @Schema(description = "车间id")
    private Long workshopId;
}
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
@@ -131,6 +131,7 @@
        productionOrder.setProductionPlanIds(formatPlanIds(issuedPlanIds));
        productionOrder.setProductModelId(firstPlan.getProductModelId());
        productionOrder.setQuantity(assignedQuantity);
        productionOrder.setWorkshopId(productionPlanDto.getWorkshopId());
        productionOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
        boolean saved = productionOrderService.saveProductionOrder(productionOrder);
src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -54,7 +54,9 @@
        tr.process_route_code as processRouteCode,
        ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
        tb.bom_no as bomNo,
        pop_return.returned as returned
        pop_return.returned as returned,
        t7.name as workshop_name,
        t7.id as workshop_id
    </sql>
    <sql id="ProductionOrderVoFrom">
@@ -81,6 +83,8 @@
            from production_order_pick
            group by production_order_id
        ) pop_return on pop_return.productionOrderId = po.id
                left join workshop as t7 on po.workshop_id = t7.id
    </sql>
    <sql id="ProductionOrderWhere">