|
|
@@ -170,6 +170,7 @@ public class S8ManualReportService : ITransient
|
|
|
ResponsibleDeptId = dto.ResponsibleDeptId,
|
|
|
ReporterId = currentUserId,
|
|
|
ExceptionTypeCode = inferredType,
|
|
|
+ ModuleCode = S8ModuleCode.FromScene(dto.SceneCode.Trim()),
|
|
|
CreatedAt = DateTime.Now,
|
|
|
IsDeleted = false
|
|
|
};
|
|
|
@@ -242,9 +243,8 @@ public class S8ManualReportService : ITransient
|
|
|
IsDeleted = false,
|
|
|
// G-01 首版唯一异常类型映射(seed 已确认 EQUIP_FAULT 属 S2S6_PRODUCTION 场景)。
|
|
|
ExceptionTypeCode = "EQUIP_FAULT",
|
|
|
- // ModuleCode:S2S6_PRODUCTION 场景对应 S2+S6 两个模块(见 S8ModuleCode.SceneOf),
|
|
|
- // 无稳定“scene → 单一 module”映射;首版置空,不靠经验写死。
|
|
|
- ModuleCode = null,
|
|
|
+ // 取场景代表模块:S2S6_PRODUCTION → S2。看板按 module_code 聚合,留空会导致模块卡空白。
|
|
|
+ ModuleCode = S8ModuleCode.FromScene(S8SceneCode.S2S6Production),
|
|
|
ProcessNodeCode = null,
|
|
|
// 追溯三件套(自动建单必填口径)。
|
|
|
SourceRuleId = hit.SourceRuleId,
|
|
|
@@ -310,7 +310,10 @@ public class S8ManualReportService : ITransient
|
|
|
CreatedAt = DateTime.Now,
|
|
|
IsDeleted = false,
|
|
|
ExceptionTypeCode = hit.ExceptionTypeCode,
|
|
|
- ModuleCode = null,
|
|
|
+ // 优先使用 evaluator 显式提供的 module_code,否则按 hit.SceneCode 取代表模块。
|
|
|
+ ModuleCode = !string.IsNullOrWhiteSpace(hit.ModuleCode)
|
|
|
+ ? hit.ModuleCode
|
|
|
+ : S8ModuleCode.FromScene(string.IsNullOrWhiteSpace(hit.SceneCode) ? S8SceneCode.S2S6Production : hit.SceneCode),
|
|
|
ProcessNodeCode = null,
|
|
|
SourceRuleId = hit.SourceRuleId,
|
|
|
SourceDataSourceId = hit.DataSourceId == 0 ? null : hit.DataSourceId,
|