Bläddra i källkod

fix: 供应商欠料看板tenant_id写入+0项欠料不生成待办+迁移脚本

Pengxy 1 vecka sedan
förälder
incheckning
afc1247bdd

+ 1 - 1
Web/package.json

@@ -1,7 +1,7 @@
 {
 {
 	"name": "admin.net",
 	"name": "admin.net",
 	"type": "module",
 	"type": "module",
-	"version": "2.4.347",
+	"version": "2.4.348",
 	"packageManager": "pnpm@10.32.1",
 	"packageManager": "pnpm@10.32.1",
 	"lastBuildTime": "2026.03.15",
 	"lastBuildTime": "2026.03.15",
 	"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
 	"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",

+ 4 - 2
Web/src/views/aidop/s4/execution-kanban/supplierShortageKanbanList.vue

@@ -187,8 +187,10 @@ async function onRefresh() {
 		if (r?.ok) {
 		if (r?.ok) {
 			ElMessage.success(`刷新完成(${r.elapsedMs ?? 0}ms)`);
 			ElMessage.success(`刷新完成(${r.elapsedMs ?? 0}ms)`);
 			await loadList();
 			await loadList();
-			// 刷新成功后自动生成催料待办
-			await autoCreateTodo();
+			// 刷新成功后有欠料数据时才自动生成催料待办
+			if (total.value > 0) {
+				await autoCreateTodo();
+			}
 		} else {
 		} else {
 			ElMessage.error(r?.message || '刷新失败');
 			ElMessage.error(r?.message || '刷新失败');
 		}
 		}

+ 23 - 0
doc/migrations/2026-09-01_workorddetailtotal_add_tenant_id.sql

@@ -0,0 +1,23 @@
+-- 供应商欠料看板中间表/结果表补 tenant_id 列
+-- WorkOrdDetailTotal: 中间计算表
+-- WorkOrdDetailTotalKB: 透视结果表(前端列表数据源)
+
+-- 1. WorkOrdDetailTotal
+SET @col_exists = (SELECT COUNT(1) FROM information_schema.COLUMNS
+    WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'WorkOrdDetailTotal' AND COLUMN_NAME = 'tenant_id');
+SET @sql = IF(@col_exists = 0,
+    'ALTER TABLE WorkOrdDetailTotal ADD COLUMN tenant_id BIGINT NULL',
+    'SELECT 1');
+PREPARE stmt FROM @sql;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+-- 2. WorkOrdDetailTotalKB
+SET @col_exists2 = (SELECT COUNT(1) FROM information_schema.COLUMNS
+    WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'WorkOrdDetailTotalKB' AND COLUMN_NAME = 'tenant_id');
+SET @sql2 = IF(@col_exists2 = 0,
+    'ALTER TABLE WorkOrdDetailTotalKB ADD COLUMN tenant_id BIGINT NULL',
+    'SELECT 1');
+PREPARE stmt2 FROM @sql2;
+EXECUTE stmt2;
+DEALLOCATE PREPARE stmt2;

+ 3 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.438</AssemblyVersion>
-    <FileVersion>1.0.438</FileVersion>
-    <Version>1.0.438</Version>
+    <AssemblyVersion>1.0.439</AssemblyVersion>
+    <FileVersion>1.0.439</FileVersion>
+    <Version>1.0.439</Version>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>

+ 8 - 5
server/Plugins/Admin.NET.Plugin.AiDOP/ProcurementExecution/SupplierShortageKanbanService.cs

@@ -162,7 +162,7 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                 INSERT INTO WorkOrdDetailTotal(
                 INSERT INTO WorkOrdDetailTotal(
                     RowNum, Status, workord, Priority, OrdDate, morder_type, bom_number,
                     RowNum, Status, workord, Priority, OrdDate, morder_type, bom_number,
                     Descr, Descr1, production_number, QtyRequired, supplier_name, ItemNum,
                     Descr, Descr1, production_number, QtyRequired, supplier_name, ItemNum,
-                    supplier_number, ljsl
+                    supplier_number, ljsl, tenant_id
                 )
                 )
                 SELECT
                 SELECT
                     viewql.*,
                     viewql.*,
@@ -170,7 +170,8 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                         PARTITION BY viewql.ItemNum
                         PARTITION BY viewql.ItemNum
                         ORDER BY viewql.OrdDate, viewql.RowNum, viewql.Priority
                         ORDER BY viewql.OrdDate, viewql.RowNum, viewql.Priority
                         ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
                         ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-                    ) AS ljsl
+                    ) AS ljsl,
+                    @TenantId AS tenant_id
                 FROM (
                 FROM (
                     SELECT
                     SELECT
                         a.*, b.morder_type, c.ItemNum AS bom_number, c.Descr, c.Descr1,
                         a.*, b.morder_type, c.ItemNum AS bom_number, c.Descr, c.Descr1,
@@ -321,7 +322,8 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
             await _db.Ado.ExecuteCommandAsync("""
             await _db.Ado.ExecuteCommandAsync("""
                 INSERT INTO WorkOrdDetailTotalKB (
                 INSERT INTO WorkOrdDetailTotalKB (
                     supplier_number, supplier_name, ItemNum, Descr, Descr1,
                     supplier_number, supplier_name, ItemNum, Descr, Descr1,
-                    D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14
+                    D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14,
+                    tenant_id
                 )
                 )
                 SELECT
                 SELECT
                     IFNULL(supplier_number, '无'), IFNULL(supplier_name, '无'),
                     IFNULL(supplier_number, '无'), IFNULL(supplier_name, '无'),
@@ -340,7 +342,8 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                     IFNULL(SUM(CASE WHEN daynum = 11 THEN ABS(shortage) END), 0),
                     IFNULL(SUM(CASE WHEN daynum = 11 THEN ABS(shortage) END), 0),
                     IFNULL(SUM(CASE WHEN daynum = 12 THEN ABS(shortage) END), 0),
                     IFNULL(SUM(CASE WHEN daynum = 12 THEN ABS(shortage) END), 0),
                     IFNULL(SUM(CASE WHEN daynum = 13 THEN ABS(shortage) END), 0),
                     IFNULL(SUM(CASE WHEN daynum = 13 THEN ABS(shortage) END), 0),
-                    IFNULL(SUM(CASE WHEN daynum = 14 THEN ABS(shortage) END), 0)
+                    IFNULL(SUM(CASE WHEN daynum = 14 THEN ABS(shortage) END), 0),
+                    @TenantId
                 FROM (
                 FROM (
                     SELECT DATEDIFF(DATE(a.OrdDate), DATE(NOW())) AS daynum,
                     SELECT DATEDIFF(DATE(a.OrdDate), DATE(NOW())) AS daynum,
                            a.supplier_number, a.supplier_name, a.ItemNum,
                            a.supplier_number, a.supplier_name, a.ItemNum,
@@ -350,7 +353,7 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                     WHERE a.shortage < 0
                     WHERE a.shortage < 0
                 ) src
                 ) src
                 GROUP BY supplier_number, supplier_name, ItemNum, Descr, Descr1
                 GROUP BY supplier_number, supplier_name, ItemNum, Descr, Descr1
-                """);
+                """, new List<SugarParameter> { new("@TenantId", tenantId) });
 
 
             return new { ok = true, elapsedMs = sw.ElapsedMilliseconds };
             return new { ok = true, elapsedMs = sw.ElapsedMilliseconds };
         }
         }