| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- namespace Admin.NET.Plugin.AiDOP.FinishedWarehouse.Dto;
- // ══════════════════════════════════════════════════════════════════════════
- // S7 FQC 成品质量:检验任务列表 / 检验单(结果)列表 只读 DTO
- //
- // 数据源(均 aidopdev,只读):
- // - 检验任务:qms_fqcbj(37 列,归口自旧系统 dopdemo,空表待上游抽数)
- // - 检验单 :qms_qcpp_inspbill(主表)+ WorkOrdMaster(取 SAP 工单号,sczld=Batch)
- // 两表均无 tenant_id:前端 withAidopTenantParams 注入的 TenantId 仅透传、本查询不据其过滤。
- // 字段修正:物料名称=wlmc(非 lmc);检验数量=jysj(非 ysj);SAP工单号=WorkOrdMaster.WorkOrd。
- // ══════════════════════════════════════════════════════════════════════════
- /// <summary>FQC 检验任务列表 查询入参(只读,源 qms_fqcbj)。</summary>
- public class FqcTaskListInput
- {
- /// <summary>页码(从 1 开始)</summary>
- public int Page { get; set; } = 1;
- /// <summary>每页条数(上限 200)</summary>
- public int PageSize { get; set; } = 10;
- /// <summary>排序字段(前端 prop,白名单校验)</summary>
- public string? OrderBy { get; set; }
- /// <summary>排序方向 asc/desc(默认 desc)</summary>
- public string? OrderDir { get; set; }
- /// <summary>生产指令单(qms_fqcbj.sczld,模糊)</summary>
- public string? ProductionOrderNo { get; set; }
- /// <summary>生产批号(qms_fqcbj.scph,模糊)</summary>
- public string? ProductionBatchNo { get; set; }
- /// <summary>物料编码(qms_fqcbj.wlbm,模糊)</summary>
- public string? MaterialCode { get; set; }
- /// <summary>申请时间起(qms_fqcbj.FAPPLYTIME,含当日,yyyy-MM-dd)</summary>
- public string? ApplyTimeStart { get; set; }
- /// <summary>申请时间止(qms_fqcbj.FAPPLYTIME,含当日,yyyy-MM-dd)</summary>
- public string? ApplyTimeEnd { get; set; }
- /// <summary>检验进度(qms_fqcbj.FINSPECTSTATUS,精确)</summary>
- public string? InspectProgress { get; set; }
- /// <summary>检验优先级(qms_fqcbj.yxj,模糊;字典未接,原样匹配)</summary>
- public string? Priority { get; set; }
- /// <summary>检验负责人(qms_fqcbj.jyfzr,模糊)</summary>
- public string? Inspector { get; set; }
- /// <summary>租户 ID(前端注入;qms_fqcbj 无租户列,本查询忽略)</summary>
- public long? TenantId { get; set; }
- }
- /// <summary>FQC 检验任务列表 行(只读)。prop 对齐前端列;源列见注释(qms_fqcbj)。</summary>
- public class FqcTaskListRow
- {
- /// <summary>主键(qms_fqcbj.id)</summary>
- public long Id { get; set; }
- /// <summary>单据编号(qms_fqcbj.FBILLNO)</summary>
- public string? BillNo { get; set; }
- /// <summary>生产指令单(qms_fqcbj.sczld)</summary>
- public string? ProductionOrderNo { get; set; }
- /// <summary>申请组织(qms_fqcbj.FORGID,原样 id)</summary>
- public long? ApplyOrgId { get; set; }
- /// <summary>申请时间(qms_fqcbj.FAPPLYTIME)</summary>
- public DateTime? ApplyTime { get; set; }
- /// <summary>物料编码(qms_fqcbj.wlbm)</summary>
- public string? MaterialCode { get; set; }
- /// <summary>产品名称(qms_fqcbj.cpmc)</summary>
- public string? ProductName { get; set; }
- /// <summary>产品型号(qms_fqcbj.cpxh)</summary>
- public string? ProductModel { get; set; }
- /// <summary>生产批号(qms_fqcbj.scph)</summary>
- public string? ProductionBatchNo { get; set; }
- /// <summary>指令单数量(qms_fqcbj.sczldsl)</summary>
- public decimal? OrderQty { get; set; }
- /// <summary>数量(qms_fqcbj.sl)</summary>
- public decimal? Qty { get; set; }
- /// <summary>申请人(qms_fqcbj.FAPPLYUSER)</summary>
- public string? Applicant { get; set; }
- /// <summary>备注(qms_fqcbj.FCOMMENT)</summary>
- public string? Remark { get; set; }
- /// <summary>检验优先级(qms_fqcbj.yxj,原样,未接字典)</summary>
- public string? Priority { get; set; }
- /// <summary>检验开始时间(qms_fqcbj.jykssj)</summary>
- public DateTime? InspectStartTime { get; set; }
- /// <summary>检验完成时间(qms_fqcbj.jywcsj)</summary>
- public DateTime? InspectFinishTime { get; set; }
- /// <summary>检验负责人(qms_fqcbj.jyfzr)</summary>
- public string? Inspector { get; set; }
- /// <summary>检验进度(qms_fqcbj.FINSPECTSTATUS,原样)</summary>
- public string? InspectProgress { get; set; }
- }
- /// <summary>FQC 检验单(结果)列表 查询入参(只读,源 qms_qcpp_inspbill)。</summary>
- public class FqcResultListInput
- {
- /// <summary>页码(从 1 开始)</summary>
- public int Page { get; set; } = 1;
- /// <summary>每页条数(上限 200)</summary>
- public int PageSize { get; set; } = 10;
- /// <summary>排序字段(前端 prop,白名单校验)</summary>
- public string? OrderBy { get; set; }
- /// <summary>排序方向 asc/desc(默认 desc)</summary>
- public string? OrderDir { get; set; }
- /// <summary>单据编号(qms_qcpp_inspbill.FBILLNO,模糊)</summary>
- public string? BillNo { get; set; }
- /// <summary>生产批号(qms_qcpp_inspbill.scph,模糊)</summary>
- public string? ProductionBatchNo { get; set; }
- /// <summary>物料编码(qms_qcpp_inspbill.FMATERIALCFG,模糊)</summary>
- public string? MaterialCode { get; set; }
- /// <summary>物料名称(qms_qcpp_inspbill.wlmc,模糊)</summary>
- public string? MaterialName { get; set; }
- /// <summary>检验人(qms_qcpp_inspbill.jyr,模糊)</summary>
- public string? Inspector { get; set; }
- /// <summary>来源单据编号(qms_qcpp_inspbill.lydjbh,模糊)</summary>
- public string? SourceBillNo { get; set; }
- /// <summary>生产指令单(qms_qcpp_inspbill.sczld,模糊)</summary>
- public string? ProductionOrderNo { get; set; }
- /// <summary>检验日期起(qms_qcpp_inspbill.FINSPEENDDATE,含当日,yyyy-MM-dd)</summary>
- public string? InspectDateStart { get; set; }
- /// <summary>检验日期止(qms_qcpp_inspbill.FINSPEENDDATE,含当日,yyyy-MM-dd)</summary>
- public string? InspectDateEnd { get; set; }
- /// <summary>判定(qms_qcpp_inspbill.pd,原样精确)</summary>
- public string? Judgment { get; set; }
- /// <summary>租户 ID(前端注入;qms_qcpp_inspbill 无租户列,本查询忽略)</summary>
- public long? TenantId { get; set; }
- }
- /// <summary>FQC 检验单(结果)列表 行(只读)。prop 对齐前端列;源列见注释。</summary>
- public class FqcResultListRow
- {
- /// <summary>主键(qms_qcpp_inspbill.id)</summary>
- public long Id { get; set; }
- /// <summary>单据编号(qms_qcpp_inspbill.FBILLNO)</summary>
- public string? BillNo { get; set; }
- /// <summary>检验时间(qms_qcpp_inspbill.FINSPEENDDATE)</summary>
- public DateTime? InspectTime { get; set; }
- /// <summary>生产批号(qms_qcpp_inspbill.scph)</summary>
- public string? ProductionBatchNo { get; set; }
- /// <summary>物料编码(qms_qcpp_inspbill.FMATERIALCFG)</summary>
- public string? MaterialCode { get; set; }
- /// <summary>物料名称(qms_qcpp_inspbill.wlmc)</summary>
- public string? MaterialName { get; set; }
- /// <summary>规格型号(qms_qcpp_inspbill.ggxh)</summary>
- public string? Spec { get; set; }
- /// <summary>检验人(qms_qcpp_inspbill.jyr)</summary>
- public string? Inspector { get; set; }
- /// <summary>检验数量(qms_qcpp_inspbill.jysj)</summary>
- public decimal? InspectQty { get; set; }
- /// <summary>来源单据编号(qms_qcpp_inspbill.lydjbh)</summary>
- public string? SourceBillNo { get; set; }
- /// <summary>生产指令单(qms_qcpp_inspbill.sczld)</summary>
- public string? ProductionOrderNo { get; set; }
- /// <summary>指令单数量(qms_qcpp_inspbill.sczldsl)</summary>
- public decimal? OrderQty { get; set; }
- /// <summary>SAP 工单号(WorkOrdMaster.WorkOrd,经 sczld=Batch,MIN 取确定值)</summary>
- public string? SapWorkOrderNo { get; set; }
- /// <summary>判定(qms_qcpp_inspbill.pd,原样,字典未接)</summary>
- public string? Judgment { get; set; }
- /// <summary>合格数量(qms_qcpp_inspbill.hgsl)</summary>
- public decimal? QualifiedQty { get; set; }
- /// <summary>不合格数量(qms_qcpp_inspbill.bhgsl)</summary>
- public decimal? UnqualifiedQty { get; set; }
- }
- // ══════════════════════════════════════════════════════════════════════════
- // FQC 检验单只读详情:头(qms_qcpp_inspbill + SAP工单号)+ 品检项目明细(qms_qcpp_inspbillst,glid=id)
- // 契约对齐 S6 IPQC:扁平头字段 + Lines[];id<=0/未命中 return null。样本 j1..j50 收敛为 Samples[](样品序号值)。
- // ══════════════════════════════════════════════════════════════════════════
- /// <summary>FQC 检验单详情(只读):扁平头 + 明细行。</summary>
- public class FqcInspBillDetailDto
- {
- // —— 基本信息 ——
- /// <summary>主键(qms_qcpp_inspbill.id)</summary>
- public long Id { get; set; }
- /// <summary>单据编号 FBILLNO</summary>
- public string? BillNo { get; set; }
- /// <summary>检验时间 FINSPEENDDATE</summary>
- public DateTime? InspectTime { get; set; }
- /// <summary>来源单据编号 lydjbh</summary>
- public string? SourceBillNo { get; set; }
- /// <summary>检验人 jyr</summary>
- public string? Inspector { get; set; }
- /// <summary>判定 pd(原样,字典未接)</summary>
- public string? Judgment { get; set; }
- // —— 成品信息 ——
- /// <summary>物料编码 FMATERIALCFG</summary>
- public string? MaterialCode { get; set; }
- /// <summary>物料名称 wlmc</summary>
- public string? MaterialName { get; set; }
- /// <summary>规格型号 ggxh</summary>
- public string? Spec { get; set; }
- /// <summary>生产批号 scph</summary>
- public string? ProductionBatchNo { get; set; }
- // —— 生产信息 ——
- /// <summary>生产指令单 sczld</summary>
- public string? ProductionOrderNo { get; set; }
- /// <summary>指令单数量 sczldsl</summary>
- public decimal? OrderQty { get; set; }
- /// <summary>SAP 工单号 WorkOrdMaster.WorkOrd(sczld=Batch, MIN)</summary>
- public string? SapWorkOrderNo { get; set; }
- // —— 检验数量 ——
- /// <summary>检验数量 jysj</summary>
- public decimal? InspectQty { get; set; }
- /// <summary>合格数量 hgsl</summary>
- public decimal? QualifiedQty { get; set; }
- /// <summary>不合格数量 bhgsl</summary>
- public decimal? UnqualifiedQty { get; set; }
- // —— 检规信息 ——
- /// <summary>击发编号 jfbh</summary>
- public string? FireNo { get; set; }
- /// <summary>检规编号 jgbh</summary>
- public string? InspectSpecNo { get; set; }
- /// <summary>检规版本 jgbb</summary>
- public string? InspectSpecVersion { get; set; }
- /// <summary>品检项目明细(qms_qcpp_inspbillst,按 xh,id 排序)</summary>
- public List<FqcInspBillDetailLineDto> Lines { get; set; } = new();
- }
- /// <summary>FQC 品检项目明细行(只读,仅已确认列 + 样本数组;jlhb/jyyqsbj/vbl 语义未确认后置)。</summary>
- public class FqcInspBillDetailLineDto
- {
- /// <summary>明细主键(qms_qcpp_inspbillst.id)</summary>
- public long Id { get; set; }
- /// <summary>序号 xh</summary>
- public int? SeqNo { get; set; }
- /// <summary>检验项目 jyxm</summary>
- public string? InspectionItem { get; set; }
- /// <summary>接收标准 jsbz</summary>
- public string? AcceptStandard { get; set; }
- /// <summary>技术要求 jsyq</summary>
- public string? TechRequirement { get; set; }
- /// <summary>抽样方案 cyfa</summary>
- public string? SamplingPlan { get; set; }
- /// <summary>样本量 ybl</summary>
- public string? SampleQty { get; set; }
- /// <summary>上限 sx</summary>
- public string? UpperLimit { get; set; }
- /// <summary>下限 xx</summary>
- public string? LowerLimit { get; set; }
- /// <summary>规格标准 SizeSpecifications</summary>
- public string? SizeSpecification { get; set; }
- /// <summary>判定 pd(原样)</summary>
- public string? Judgment { get; set; }
- /// <summary>非数值型 OK NonNumericalTypeOK</summary>
- public long? NonNumericOk { get; set; }
- /// <summary>非数值型 NG NonNumericalTypeNG</summary>
- public long? NonNumericNg { get; set; }
- /// <summary>备注 bz</summary>
- public string? Remark { get; set; }
- /// <summary>样品值(样品1..样品N,按序 j1..j50,末尾空值已裁剪;前端按非空动态展开)</summary>
- public List<string?> Samples { get; set; } = new();
- }
- /// <summary>明细查询行(内部):已确认列 + j1..j50 原始样本列,ToLine() 收敛为 Samples[]。禁止直接出前端。</summary>
- public class FqcInspBillDetailLineRow
- {
- public long Id { get; set; }
- public int? SeqNo { get; set; }
- public string? InspectionItem { get; set; }
- public string? AcceptStandard { get; set; }
- public string? TechRequirement { get; set; }
- public string? SamplingPlan { get; set; }
- public string? SampleQty { get; set; }
- public string? UpperLimit { get; set; }
- public string? LowerLimit { get; set; }
- public string? SizeSpecification { get; set; }
- public string? Judgment { get; set; }
- public long? NonNumericOk { get; set; }
- public long? NonNumericNg { get; set; }
- public string? Remark { get; set; }
- public string? J1 { get; set; } public string? J2 { get; set; } public string? J3 { get; set; } public string? J4 { get; set; } public string? J5 { get; set; }
- public string? J6 { get; set; } public string? J7 { get; set; } public string? J8 { get; set; } public string? J9 { get; set; } public string? J10 { get; set; }
- public string? J11 { get; set; } public string? J12 { get; set; } public string? J13 { get; set; } public string? J14 { get; set; } public string? J15 { get; set; }
- public string? J16 { get; set; } public string? J17 { get; set; } public string? J18 { get; set; } public string? J19 { get; set; } public string? J20 { get; set; }
- public string? J21 { get; set; } public string? J22 { get; set; } public string? J23 { get; set; } public string? J24 { get; set; } public string? J25 { get; set; }
- public string? J26 { get; set; } public string? J27 { get; set; } public string? J28 { get; set; } public string? J29 { get; set; } public string? J30 { get; set; }
- public string? J31 { get; set; } public string? J32 { get; set; } public string? J33 { get; set; } public string? J34 { get; set; } public string? J35 { get; set; }
- public string? J36 { get; set; } public string? J37 { get; set; } public string? J38 { get; set; } public string? J39 { get; set; } public string? J40 { get; set; }
- public string? J41 { get; set; } public string? J42 { get; set; } public string? J43 { get; set; } public string? J44 { get; set; } public string? J45 { get; set; }
- public string? J46 { get; set; } public string? J47 { get; set; } public string? J48 { get; set; } public string? J49 { get; set; } public string? J50 { get; set; }
- /// <summary>收敛为明细 DTO:j1..j50 → Samples[](裁剪末尾空值,保留样品序号位置)。</summary>
- public FqcInspBillDetailLineDto ToLine()
- {
- var raw = new[]
- {
- J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12, J13, J14, J15, J16, J17, J18, J19, J20,
- J21, J22, J23, J24, J25, J26, J27, J28, J29, J30, J31, J32, J33, J34, J35, J36, J37, J38, J39, J40,
- J41, J42, J43, J44, J45, J46, J47, J48, J49, J50,
- };
- var last = -1;
- for (var i = 0; i < raw.Length; i++)
- if (!string.IsNullOrWhiteSpace(raw[i])) last = i;
- var samples = last < 0 ? new List<string?>() : raw.Take(last + 1).ToList();
- return new FqcInspBillDetailLineDto
- {
- Id = Id, SeqNo = SeqNo, InspectionItem = InspectionItem, AcceptStandard = AcceptStandard,
- TechRequirement = TechRequirement, SamplingPlan = SamplingPlan, SampleQty = SampleQty,
- UpperLimit = UpperLimit, LowerLimit = LowerLimit, SizeSpecification = SizeSpecification,
- Judgment = Judgment, NonNumericOk = NonNumericOk, NonNumericNg = NonNumericNg, Remark = Remark,
- Samples = samples,
- };
- }
- }
|