namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting; /// IQC 检验结果映射的输入(对应 qms_qcp_inspbill 单行的判定与数量)。 public sealed class IqcResultMappingInput { /// 判定 pd:0=合格 / 1=不合格(qms_qcp_inspbill.pd)。 public int Pd { get; set; } /// 不合格处理方式 clfs:null/'' / '0'退货 / '2'让步接收 / '3'挑选(qms_qcp_inspbill.clfs)。 public string Clfs { get; set; } /// 检验数量 / 收货数(qms_qcp_inspbill.dhsl)—— QtyAcc 基数。 public decimal Dhsl { get; set; } /// 不合格数量(qms_qcp_inspbill.bhgsl)—— QtyReject 基数。 public decimal Bhgsl { get; set; } } /// IQC → WMS 入库的路由类别(据 pr_WMS_SaveIQCResult LIVE 真定义)。 public enum IqcRoutingKind { /// 无匹配分支:旧入口 qms_WMS_SaveIQCResult 不动作。 Unmatched = 0, /// 收货编排 + 库存过账(分支 ① 合格无处理 / ④ 让步接收):QtyAcc>0 且 PartRctFlag=0。 FullReceiptPosting = 1, /// 挑选使用(分支 ② ⑤):PartRctFlag=1 → 生成 PurOrdRctByMRBChoose 移动任务,不过账。 MrbChooseMobileTask = 2, /// 退货标记(分支 ③):QtyAcc=0,仅标 Status='R',不过账。 ReturnOnly = 3, } /// IQC 检验结果映射的输出(判定 / 数量 / 路由决策)。 public sealed class IqcResultMappingResult { /// 是否命中旧入口 5 分支之一。 public bool Matched { get; set; } /// 命中分支号 1-5;0=无匹配。 public int BranchNo { get; set; } /// 分支语义(中文)。 public string BranchSemantics { get; set; } /// WMS 侧 QCStatus:"YES"/"NO";无匹配为 null。 public string QcStatus { get; set; } /// MRB 状态:0 无 / 1 挑选 / 2 退货 / 3 让步接收。 public int MrbStatus { get; set; } /// 合格品数量(经分支转换后传给 WMS 的 @QtyAcc)。 public decimal QtyAcc { get; set; } /// 不合格品数量(经分支转换后传给 WMS 的 @QtyReject)。 public decimal QtyReject { get; set; } /// 部分收货标志 PartRctFlag:0/1(有条码入参才会是 2,本入口路径恒非 2)。 public int PartRctFlag { get; set; } /// 路由类别。 public IqcRoutingKind RoutingKind { get; set; } /// /// 是否进入采购收货编排(RctPurOrdAndPurOrdByBarcode)——(pd,clfs) 可纯判定部分 /// = PartRctFlag==0 && QtyAcc>0。运行期数据门(IsRctTemp/RctDetails)另由 Service 层校验。 /// public bool EntersReceiptOrchestration { get; set; } /// 是否进入库存过账(InventoryTransactionProcessing2)——与收货编排同门(L299 块内)。 public bool EntersInventoryPosting { get; set; } }