From a80419d9872b29c0abf5be65ec4233d628c04cba Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期六, 09 五月 2026 10:14:26 +0800
Subject: [PATCH] feat: 为生产订单和计划添加车间信息支持

---
 src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java             |    3 +++
 src/main/java/com/ruoyi/production/controller/ProductionPlanController.java    |    4 ++++
 src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java |    1 +
 src/main/java/com/ruoyi/production/pojo/ProductionOrder.java                   |    5 +++++
 src/main/resources/mapper/production/ProductionOrderMapper.xml                 |    6 +++++-
 src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java              |    8 ++++++++
 6 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
index 60ab542..ed85c3f 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
+++ b/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;
 }
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
index 1bb26a4..cdf442e 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
+++ b/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;
+
+
 }
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java b/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java
index 6190a47..3cb9af3 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionPlanController.java
+++ b/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));
     }
 
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
index 1f882b1..6689a8b 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
+++ b/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;
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
index b3ad742..0d1a982 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
+++ b/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);
diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
index 1a304ef..50ebd4d 100644
--- a/src/main/resources/mapper/production/ProductionOrderMapper.xml
+++ b/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">

--
Gitblit v1.9.3