Эх сурвалжийг харах

fix(s0): 物料维护P/L件筛选字典值对齐PurMfg真实库值

s0_pl_category 字典 value 原为 purchase/manufacture/outsource,与
ItemMaster.PurMfg 实存 P/L 不匹配,后端精确等值查询导致选采购件/自制件查空。
方案A:种子+幂等迁移(按字典Code+Label定位)将采购件→P、自制件→L;委外件
当前库无真实存储值,保持 outsource 不动。bump server 1.0.196→1.0.197。
YY968XX 3 өдөр өмнө
parent
commit
897f92ccc0

+ 6 - 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.196</AssemblyVersion>
-    <FileVersion>1.0.196</FileVersion>
-    <Version>1.0.196</Version>
+    <AssemblyVersion>1.0.197</AssemblyVersion>
+    <FileVersion>1.0.197</FileVersion>
+    <Version>1.0.197</Version>
   </PropertyGroup>
 
   <ItemGroup>
@@ -181,6 +181,9 @@
     <None Update="UpdateScripts\1.0.196.sql">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <None Update="UpdateScripts\1.0.197.sql">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
 
   <ItemGroup>

+ 24 - 0
server/Admin.NET.Web.Entry/UpdateScripts/1.0.197.sql

@@ -0,0 +1,24 @@
+-- =============================================================================
+-- S0-MATERIAL-PL-CATEGORY-FILTER-DICT-VALUE-ALIGN-1
+-- 目的:修正 s0_pl_category 字典 value 与 ItemMaster.PurMfg 真实存储值对齐,
+--       修复物料维护列表 P/L件筛选选「采购件/自制件」查空的 bug。
+--       采购件 value purchase→P;自制件 value manufacture→L。
+-- 字段:SysDictData.Value,按字典 Code='s0_pl_category' + Label 定位(不按 Id——
+--       运行期 Id 与种子 seq 已漂移,按 Label 才能 dev/prod 通用)。
+-- 安全:幂等(Value 已正确则不重复写);委外件无真实存储值,保持 outsource 不动;
+--       不清洗 PurMfg 脏数据(11/6/空/NULL);不改 ItemType;不动其他字典/页面。
+-- 回滚:UPDATE SysDictData d JOIN SysDictType t ON d.DictTypeId=t.Id
+--         SET d.Value='purchase' WHERE t.Code='s0_pl_category' AND d.Label='采购件';
+--       UPDATE SysDictData d JOIN SysDictType t ON d.DictTypeId=t.Id
+--         SET d.Value='manufacture' WHERE t.Code='s0_pl_category' AND d.Label='自制件';
+-- =============================================================================
+
+UPDATE SysDictData d
+JOIN SysDictType t ON d.DictTypeId = t.Id
+SET d.Value = 'P', d.UpdateTime = NOW()
+WHERE t.Code = 's0_pl_category' AND d.Label = '采购件' AND d.Value <> 'P';
+
+UPDATE SysDictData d
+JOIN SysDictType t ON d.DictTypeId = t.Id
+SET d.Value = 'L', d.UpdateTime = NOW()
+WHERE t.Code = 's0_pl_category' AND d.Label = '自制件' AND d.Value <> 'L';

+ 4 - 2
server/Plugins/Admin.NET.Plugin.AiDOP/SeedData/S0DictDataSeedData.cs

@@ -48,8 +48,10 @@ public class S0DictDataSeedData : ISqlSugarEntitySeedData<SysDictData>
             D(seq++, materialTypeId, "RS99", "RS99", 108, ct),
 
             // ── s0_pl_category ──
-            D(seq++, plCategoryId, "采购件", "purchase",    100, ct),
-            D(seq++, plCategoryId, "自制件", "manufacture", 101, ct),
+            // value 对齐 ItemMaster.PurMfg 真实存储值:采购件=P、自制件=L(代码反证 DeliveryScheduleService/ProductDesignService 均以 'P' 判采购)。
+            // 委外件当前库内无任何真实存储值,编码无法确认,保持 outsource 不动(选中查空为正确表现,非 bug)。
+            D(seq++, plCategoryId, "采购件", "P", 100, ct),
+            D(seq++, plCategoryId, "自制件", "L", 101, ct),
             D(seq++, plCategoryId, "委外件", "outsource",   102, ct),
 
             // ── s0_stock_type ──