Просмотр исходного кода

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

Pengxy 5 дней назад
Родитель
Сommit
afc1247bdd

+ 1 - 1
Web/package.json

@@ -1,7 +1,7 @@
 {
 	"name": "admin.net",
 	"type": "module",
-	"version": "2.4.347",
+	"version": "2.4.348",
 	"packageManager": "pnpm@10.32.1",
 	"lastBuildTime": "2026.03.15",
 	"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) {
 			ElMessage.success(`刷新完成(${r.elapsedMs ?? 0}ms)`);
 			await loadList();
-			// 刷新成功后自动生成催料待办
-			await autoCreateTodo();
+			// 刷新成功后有欠料数据时才自动生成催料待办
+			if (total.value > 0) {
+				await autoCreateTodo();
+			}
 		} else {
 			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>
     <Copyright>Admin.NET</Copyright>
     <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>
 
   <ItemGroup>

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

@@ -162,7 +162,7 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                 INSERT INTO WorkOrdDetailTotal(
                     RowNum, Status, workord, Priority, OrdDate, morder_type, bom_number,
                     Descr, Descr1, production_number, QtyRequired, supplier_name, ItemNum,
-                    supplier_number, ljsl
+                    supplier_number, ljsl, tenant_id
                 )
                 SELECT
                     viewql.*,
@@ -170,7 +170,8 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                         PARTITION BY viewql.ItemNum
                         ORDER BY viewql.OrdDate, viewql.RowNum, viewql.Priority
                         ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-                    ) AS ljsl
+                    ) AS ljsl,
+                    @TenantId AS tenant_id
                 FROM (
                     SELECT
                         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("""
                 INSERT INTO WorkOrdDetailTotalKB (
                     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
                     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 = 12 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 (
                     SELECT DATEDIFF(DATE(a.OrdDate), DATE(NOW())) AS daynum,
                            a.supplier_number, a.supplier_name, a.ItemNum,
@@ -350,7 +353,7 @@ public class SupplierShortageKanbanService : IDynamicApiController, ITransient
                     WHERE a.shortage < 0
                 ) src
                 GROUP BY supplier_number, supplier_name, ItemNum, Descr, Descr1
-                """);
+                """, new List<SugarParameter> { new("@TenantId", tenantId) });
 
             return new { ok = true, elapsedMs = sw.ElapsedMilliseconds };
         }