在制品的生产信息的关联使用在制品的ID来关联,优化生产信息保存逻辑
| | |
| | | var wipSN = new MES_WIP_DATA() |
| | | { |
| | | SN = input.SN, |
| | | FLOW_SN = input.SN, |
| | | STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(), |
| | | ITEM_CODE = CurBatch.WO.ITEM_CODE, |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | |
| | | //绑定条码到工单 |
| | | foreach (var wipSN in wipSNs) |
| | | { |
| | | if (!CurBatch.WoSNs.Any(q => q.SN == wipSN.SN)) |
| | | if (!CurBatch.WoSNs.Any(q => q.WIP_ID == wipSN.ID)) |
| | | { |
| | | CurBatch.WoSNs.Add(new() |
| | | { |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | | WIP_ID = wipSN.ID, |
| | | SN = wipSN.SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | STATUS = BIZ_MES_WO_SN.STATUSs.NotInput.GetValue(), |
| | |
| | | DFT_CODE = dft.DFT_CODE, |
| | | DFT_NAME = dft.DFT_NAME, |
| | | DFT_LEVEL = dft.DFT_LEVEL, |
| | | FLOW_SN = wipSN.FLOW_SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | CONTAINER_SN = wipSN.CONTAINER_SN, |
| | | INNER_SN = wipSN.INNER_SN, |
| | | CARTON_SN = wipSN.CARTON_SN, |
| | | PALLET_SN = wipSN.PALLET_SN, |
| | | INV_FLAG = wipSN.INV_FLAG, |
| | | OPERATION_TIME = DateTime.Now, |
| | |
| | | var wipSN = new MES_WIP_DATA() |
| | | { |
| | | SN = input.SN, |
| | | FLOW_SN = input.SN, |
| | | STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(), |
| | | ITEM_CODE = CurBatch.WO.ITEM_CODE, |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | |
| | | CurBatch.WoSNs.Add(new() |
| | | { |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | | WIP_ID = wipSN.ID, |
| | | SN = wipSN.SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | STATUS = BIZ_MES_WO_SN.STATUSs.NotInput.GetValue(), |
| | |
| | | DFT_CODE = dft.DFT_CODE, |
| | | DFT_NAME = dft.DFT_NAME, |
| | | DFT_LEVEL = dft.DFT_LEVEL, |
| | | FLOW_SN = wipSN.FLOW_SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | CONTAINER_SN = wipSN.CONTAINER_SN, |
| | | INNER_SN = wipSN.INNER_SN, |
| | | CARTON_SN = wipSN.CARTON_SN, |
| | | PALLET_SN = wipSN.PALLET_SN, |
| | | INV_FLAG = wipSN.INV_FLAG, |
| | | OPERATION_TIME = DateTime.Now, |
| | |
| | | /// <summary> |
| | | /// MES岗位事务 |
| | | /// </summary> |
| | | public class Position : MESTransactionBase, IPosition, ICloneable |
| | | public class Position : MESTransactionBase, IPosition |
| | | { |
| | | public IPosition Init(string id, string apiHost, string userCode, string postCode) |
| | | { |
| | |
| | | return result; |
| | | } |
| | | |
| | | public object Clone() |
| | | { |
| | | var newObject = this.MemberwiseClone() as Position; |
| | | newObject.Steps = Steps.Clone(); |
| | | newObject.CurWipSNs = CurWipSNs.Clone(); |
| | | |
| | | return newObject; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 保存工步的数据库提交操作到数据库 |
| | | /// </summary> |
| | |
| | | throw dbTran.ErrorException; |
| | | } |
| | | } |
| | | |
| | | |
| | | //if (NeedTemporaryStoreDBCommitAction) |
| | | //{ |
| | | |
| | | |
| | | // NodeCommitList.Add(this.Clone() as Position); |
| | | //} |
| | | //else |
| | | //{ |
| | | // //保存成功则清空提交操作列表 |
| | | // foreach (var item in NodeCommitList) |
| | | // { |
| | | // item?.DoSaveToDB(); |
| | | // item?.Dispose(); |
| | | // } |
| | | // DoSaveToDB(); |
| | | // NodeCommitList.Clear(); |
| | | //} |
| | | } |
| | | |
| | | protected void DoSaveToDB() |
| | |
| | | switch (pv.VAR_METHOD) |
| | | { |
| | | case "GetCartonGenerate": |
| | | return Biz.CodeRule[lv.BARCODE_RULE].Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString(); |
| | | return Biz.CodeRule[lv.BARCODE_RULE ?? ""]?.Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; |
| | | default: |
| | | return ""; |
| | | } |
| | |
| | | var wipSN = new MES_WIP_DATA() |
| | | { |
| | | SN = input.SN, |
| | | FLOW_SN = input.SN, |
| | | STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(), |
| | | ITEM_CODE = CurBatch.WO.ITEM_CODE, |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | |
| | | CurBatch.WoSNs.Add(new() |
| | | { |
| | | WORK_ORDER = CurBatch.Batch.ORDER_NO, |
| | | WIP_ID = wipSN.ID, |
| | | SN = wipSN.SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | STATUS = BIZ_MES_WO_SN.STATUSs.NotInput.GetValue(), |
| | |
| | | DFT_CODE = dft.DFT_CODE, |
| | | DFT_NAME = dft.DFT_NAME, |
| | | DFT_LEVEL = dft.DFT_LEVEL, |
| | | FLOW_SN = wipSN.FLOW_SN, |
| | | TRAY_SN = wipSN.TRAY_SN, |
| | | CONTAINER_SN = wipSN.CONTAINER_SN, |
| | | INNER_SN = wipSN.INNER_SN, |
| | | CARTON_SN = wipSN.CARTON_SN, |
| | | PALLET_SN = wipSN.PALLET_SN, |
| | | INV_FLAG = wipSN.INV_FLAG, |
| | | OPERATION_TIME = DateTime.Now, |
| | |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | SN = input.SN, |
| | | PROD_SN = wipSn.SN, |
| | | ITEM_CODE = item.ItemInfo.ITEM_CODE, |
| | |
| | | } |
| | | else |
| | | { |
| | | foreach (var wipSn in CurPosition.CurWipSNs) |
| | | { |
| | | var record = new MES_WIP_ASSY() |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | SN = input.SN, |
| | | PROD_SN = CurPosition.CurSN, |
| | | PROD_SN = wipSn.SN, |
| | | ITEM_CODE = item.ItemInfo.ITEM_CODE, |
| | | QTY = 1, |
| | | UNIT = item.ItemInfo.UNIT, |
| | | WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER, |
| | | BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO, |
| | | ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE, |
| | | NODE_ID = CurPosition.CurWipSNs.First().NODE_ID, |
| | | NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME, |
| | | FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE, |
| | | WS_CODE = CurPosition.CurWipSNs.First().WS_CODE, |
| | | LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE, |
| | | POST_CODE = CurPosition.CurWipSNs.First().POST_CODE, |
| | | OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE, |
| | | SEGMENT = CurPosition.CurWipSNs.First().SEGMENT, |
| | | WORK_ORDER = wipSn.WORK_ORDER, |
| | | BATCH_NO = wipSn.BATCH_NO, |
| | | ROT_CODE = wipSn.ROT_CODE, |
| | | NODE_ID = wipSn.NODE_ID, |
| | | NODE_NAME = wipSn.NODE_NAME, |
| | | FTY_CODE = wipSn.FTY_CODE, |
| | | WS_CODE = wipSn.WS_CODE, |
| | | LINE_CODE = wipSn.LINE_CODE, |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | }; |
| | | item.Records.Add(record); |
| | | } |
| | | |
| | | if (item.Records.Sum(q => q.QTY) >= item.LoadQty * CurPosition.CurWipSNs.Count) |
| | | if (item.Records.Sum(q => q.QTY) / item.Records.Count >= item.LoadQty * CurPosition.CurWipSNs.Count) |
| | | { |
| | | item.IsFinished = true; |
| | | } |
| | |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, |
| | | SN = wipSn.SN, |
| | | STATUS = wipSn.STATUS, |
| | |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | FLOW_SN = wipSn.FLOW_SN, |
| | | TRAY_SN = wipSn.TRAY_SN, |
| | | INNER_SN = wipSn.INNER_SN, |
| | | CARTON_SN = wipSn.CARTON_SN, |
| | | PALLET_SN = wipSn.PALLET_SN, |
| | | OPERATION_TIME = DateTime.Now, |
| | | SFTS_CODE = wipSn.SFTS_CODE, |
| | | SFT_CODE = wipSn.SFT_CODE, |
| | |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, |
| | | SN = wipSn.SN, |
| | | STATUS = wipSn.STATUS, |
| | |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | FLOW_SN = wipSn.FLOW_SN, |
| | | TRAY_SN = wipSn.TRAY_SN, |
| | | INNER_SN = wipSn.INNER_SN, |
| | | CARTON_SN = wipSn.CARTON_SN, |
| | | PALLET_SN = wipSn.PALLET_SN, |
| | | OPERATION_TIME = DateTime.Now, |
| | | SFTS_CODE = wipSn.SFTS_CODE, |
| | | SFT_CODE = wipSn.SFT_CODE, |
| | |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | SN = pInput.PkgSN, |
| | | WIP_ID = CurPosition.CurWipSNs.Count == 1 ? CurPosition.CurWipSNs.First().ID : null, |
| | | PKG_TYPE = dtl.PkgType.PKG_NAME, |
| | | ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE, |
| | | QTY = CurPosition.CurWipSNs.First().QTY, |
| | |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, |
| | | SN = wipSn.SN, |
| | | STATUS = wipSn.STATUS, |
| | |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | FLOW_SN = wipSn.FLOW_SN, |
| | | TRAY_SN = wipSn.TRAY_SN, |
| | | INNER_SN = wipSn.INNER_SN, |
| | | CARTON_SN = wipSn.CARTON_SN, |
| | | PALLET_SN = wipSn.PALLET_SN, |
| | | OPERATION_TIME = DateTime.Now, |
| | | SFTS_CODE = wipSn.SFTS_CODE, |
| | | SFT_CODE = wipSn.SFT_CODE, |
| | |
| | | //包装信息保存到在制品信息表 |
| | | db.Updateable<MES_WIP_DATA>() |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.CONTAINER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.SN == pkg.SN) |
| | | .ExecuteCommand(); |
| | |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, |
| | | WIP_ID = wipSn.ID, |
| | | SN = wipSn.SN, |
| | | STATUS = wipSn.STATUS, |
| | | ITEM_CODE = wipSn.ITEM_CODE, |
| | |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | FLOW_SN = wipSn.FLOW_SN, |
| | | TRAY_SN = wipSn.TRAY_SN, |
| | | INNER_SN = wipSn.INNER_SN, |
| | | CARTON_SN = wipSn.CARTON_SN, |
| | | PALLET_SN = wipSn.PALLET_SN, |
| | | OPERATION_TIME = DateTime.Now, |
| | | SFTS_CODE = wipSn.SFTS_CODE, |
| | | SFT_CODE = wipSn.SFT_CODE, |
| | |
| | | AUTH_ORG = wipSN.AUTH_ORG, |
| | | AUTH_PROD = wipSN.AUTH_PROD, |
| | | SN = wipSN.SN, |
| | | WIP_ID = wipSN.ID, |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | //都没有物料验证通过,则返回错误信息 |
| | | |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | WIP_ID = wipSn.ID, |
| | | HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, |
| | | SN = wipSn.SN, |
| | | STATUS = wipSn.STATUS, |
| | |
| | | POST_CODE = wipSn.POST_CODE, |
| | | OPER_CODE = wipSn.OPER_CODE, |
| | | SEGMENT = wipSn.SEGMENT, |
| | | FLOW_SN = wipSn.FLOW_SN, |
| | | TRAY_SN = wipSn.TRAY_SN, |
| | | INNER_SN = wipSn.INNER_SN, |
| | | CARTON_SN = wipSn.CARTON_SN, |
| | | PALLET_SN = wipSn.PALLET_SN, |
| | | OPERATION_TIME = DateTime.Now, |
| | | SFTS_CODE = wipSn.SFTS_CODE, |
| | | SFT_CODE = wipSn.SFT_CODE, |
| | |
| | | [DisplayName("工单批次号")] |
| | | public string BATCH_NO { get; set; } |
| | | /// <summary> |
| | | /// 在制品ID |
| | | /// </summary> |
| | | [DisplayName("在制品ID")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 条码 |
| | | /// </summary> |
| | | [DisplayName("条码")] |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:生产行为记录 |
| | | /// 实体:生产行为记录 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("生产行为记录")] |
| | | [DisplayName("生产行为记录")] |
| | | [Serializable] |
| | | [SugarTable("MES_WIP_ACT")] |
| | | public class MES_WIP_ACT : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:生产行为记录 |
| | | /// 实体:生产行为记录 |
| | | /// </summary> |
| | | public MES_WIP_ACT() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 生产过程记录ID |
| | | /// 在制品ID |
| | | /// </summary> |
| | | [DisplayName("生产过程记录ID")] |
| | | [DisplayName("在制品ID")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 生产过程记录ID |
| | | /// </summary> |
| | | [DisplayName("生产过程记录ID")] |
| | | public string HIS_ID { get; set; } |
| | | /// <summary> |
| | | /// 过站条码 |
| | | /// 过站条码 |
| | | /// </summary> |
| | | [DisplayName("过站条码")] |
| | | [DisplayName("过站条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货) |
| | | /// 状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货) |
| | | /// </summary> |
| | | [DisplayName("状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货)")] |
| | | [DisplayName("状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货)")] |
| | | public int STATUS { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("物料编码")] |
| | | [DisplayName("物料编码")] |
| | | public string ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工单号 |
| | | /// 工单号 |
| | | /// </summary> |
| | | [DisplayName("工单号")] |
| | | [DisplayName("工单号")] |
| | | public string WORK_ORDER { get; set; } |
| | | /// <summary> |
| | | /// 工单批次号 |
| | | /// 工单批次号 |
| | | /// </summary> |
| | | [DisplayName("工单批次号")] |
| | | [DisplayName("工单批次号")] |
| | | public string BATCH_NO { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线编码 |
| | | /// 工艺路线编码 |
| | | /// </summary> |
| | | [DisplayName("工艺路线编码")] |
| | | [DisplayName("工艺路线编码")] |
| | | public string ROT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点ID |
| | | /// 工艺路线节点ID |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点ID")] |
| | | [DisplayName("工艺路线节点ID")] |
| | | public string NODE_ID { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点名称 |
| | | /// 工艺路线节点名称 |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点名称")] |
| | | [DisplayName("工艺路线节点名称")] |
| | | public string NODE_NAME { get; set; } |
| | | /// <summary> |
| | | /// 工序行为ID |
| | | /// 工序行为ID |
| | | /// </summary> |
| | | [DisplayName("工序行为ID")] |
| | | [DisplayName("工序行为ID")] |
| | | public string ACT_ID { get; set; } |
| | | /// <summary> |
| | | /// 行为名称 |
| | | /// 行为名称 |
| | | /// </summary> |
| | | [DisplayName("行为名称")] |
| | | [DisplayName("行为名称")] |
| | | public string ACT_NAME { get; set; } |
| | | /// <summary> |
| | | /// 工厂编码 |
| | | /// 工厂编码 |
| | | /// </summary> |
| | | [DisplayName("工厂编码")] |
| | | [DisplayName("工厂编码")] |
| | | public string FTY_CODE { get; set; } |
| | | /// <summary> |
| | | /// 车间编码 |
| | | /// 车间编码 |
| | | /// </summary> |
| | | [DisplayName("车间编码")] |
| | | [DisplayName("车间编码")] |
| | | public string WS_CODE { get; set; } |
| | | /// <summary> |
| | | /// 产线编码 |
| | | /// 产线编码 |
| | | /// </summary> |
| | | [DisplayName("产线编码")] |
| | | [DisplayName("产线编码")] |
| | | public string LINE_CODE { get; set; } |
| | | /// <summary> |
| | | /// 岗位编码 |
| | | /// 岗位编码 |
| | | /// </summary> |
| | | [DisplayName("岗位编码")] |
| | | [DisplayName("岗位编码")] |
| | | public string POST_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工序编码 |
| | | /// 工序编码 |
| | | /// </summary> |
| | | [DisplayName("工序编码")] |
| | | [DisplayName("工序编码")] |
| | | public string OPER_CODE { get; set; } |
| | | /// <summary> |
| | | /// 加工段 |
| | | /// 加工段 |
| | | /// </summary> |
| | | [DisplayName("加工段")] |
| | | [DisplayName("加工段")] |
| | | public string SEGMENT { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// 厂内流转条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | [DisplayName("厂内流转条码")] |
| | | public string FLOW_SN { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | public string TRAY_SN { get; set; } |
| | | /// <summary> |
| | | /// 当前操作时间 |
| | | /// 内包装条码 |
| | | /// </summary> |
| | | [DisplayName("当前操作时间")] |
| | | [DisplayName("内包装条码")] |
| | | public string INNER_SN { get; set; } |
| | | /// <summary> |
| | | /// 外箱条码 |
| | | /// </summary> |
| | | [DisplayName("外箱条码")] |
| | | public string CARTON_SN { get; set; } |
| | | /// <summary> |
| | | /// 栈板条码 |
| | | /// </summary> |
| | | [DisplayName("栈板条码")] |
| | | public string PALLET_SN { get; set; } |
| | | /// <summary> |
| | | /// 当前操作时间 |
| | | /// </summary> |
| | | [DisplayName("当前操作时间")] |
| | | public DateTime OPERATION_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 班制编码 |
| | | /// 班制编码 |
| | | /// </summary> |
| | | [DisplayName("班制编码")] |
| | | [DisplayName("班制编码")] |
| | | public string SFTS_CODE { get; set; } |
| | | /// <summary> |
| | | /// 班次编码 |
| | | /// 班次编码 |
| | | /// </summary> |
| | | [DisplayName("班次编码")] |
| | | [DisplayName("班次编码")] |
| | | public string SFT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 时段编码 |
| | | /// 时段编码 |
| | | /// </summary> |
| | | [DisplayName("时段编码")] |
| | | [DisplayName("时段编码")] |
| | | public string PRD_CODE { get; set; } |
| | | /// <summary> |
| | | /// 行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则) |
| | | /// 行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则) |
| | | /// </summary> |
| | | [DisplayName("行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则)")] |
| | | [DisplayName("行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则)")] |
| | | public int ACT_TYPE { get; set; } |
| | | /// <summary> |
| | | /// 行为扫码 |
| | | /// 行为扫码 |
| | | /// </summary> |
| | | [DisplayName("行为扫码")] |
| | | [DisplayName("行为扫码")] |
| | | public string ACT_SN { get; set; } |
| | | /// <summary> |
| | | /// 行为操作值1 |
| | | /// 行为操作值1 |
| | | /// </summary> |
| | | [DisplayName("行为操作值1")] |
| | | [DisplayName("行为操作值1")] |
| | | public string ACT_VALUE_1 { get; set; } |
| | | /// <summary> |
| | | /// 行为操作值2 |
| | | /// 行为操作值2 |
| | | /// </summary> |
| | | [DisplayName("行为操作值2")] |
| | | [DisplayName("行为操作值2")] |
| | | public string ACT_VALUE_2 { get; set; } |
| | | /// <summary> |
| | | /// 行为操作值3 |
| | | /// 行为操作值3 |
| | | /// </summary> |
| | | [DisplayName("行为操作值3")] |
| | | [DisplayName("行为操作值3")] |
| | | public string ACT_VALUE_3 { get; set; } |
| | | /// <summary> |
| | | /// 行为操作值4 |
| | | /// 行为操作值4 |
| | | /// </summary> |
| | | [DisplayName("行为操作值4")] |
| | | [DisplayName("行为操作值4")] |
| | | public string ACT_VALUE_4 { get; set; } |
| | | /// <summary> |
| | | /// 行为操作值5 |
| | | /// 行为操作值5 |
| | | /// </summary> |
| | | [DisplayName("行为操作值5")] |
| | | [DisplayName("行为操作值5")] |
| | | public string ACT_VALUE_5 { get; set; } |
| | | /// <summary> |
| | | /// 行为是否成功(Y/N) |
| | | /// 行为是否成功(Y/N) |
| | | /// </summary> |
| | | [DisplayName("行为是否成功(Y/N)")] |
| | | [DisplayName("行为是否成功(Y/N)")] |
| | | public string ACT_RESULT { get; set; } |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | /// <summary> |
| | | /// 追溯信息 |
| | | /// 追溯信息 |
| | | /// </summary> |
| | | [DisplayName("追溯信息")] |
| | | [DisplayName("追溯信息")] |
| | | public string TRACE_INFO { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_ACT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_ACTId))]//ClassA表中的MES_WIP_ACTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_ACTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_ACT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_ACTId))]//ClassA表中的MES_WIP_ACTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_ACTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | |
| | | /// <summary> |
| | | /// 枚举:状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货) |
| | | /// 枚举:状态(0Init初始化|1Input已投入|2OK良品过站|3NG不良过站|4Repair维修中|5Finished已完工|6Scrap已报废|7InStorage已入库|8Reject已拒收|9Shipped已出货) |
| | | /// </summary> |
| | | public enum STATUSs |
| | | { |
| | | [Description("初始化")] |
| | | [Description("初始化")] |
| | | Init = 0, |
| | | [Description("已投入")] |
| | | [Description("已投入")] |
| | | Input = 1, |
| | | [Description("良品过站")] |
| | | [Description("良品过站")] |
| | | OK = 2, |
| | | [Description("不良过站")] |
| | | [Description("不良过站")] |
| | | NG = 3, |
| | | [Description("维修中")] |
| | | [Description("维修中")] |
| | | Repair = 4, |
| | | [Description("已完工")] |
| | | [Description("已完工")] |
| | | Finished = 5, |
| | | [Description("已报废")] |
| | | [Description("已报废")] |
| | | Scrap = 6, |
| | | [Description("已入库")] |
| | | [Description("已入库")] |
| | | InStorage = 7, |
| | | [Description("已拒收")] |
| | | [Description("已拒收")] |
| | | Reject = 8, |
| | | [Description("已出货")] |
| | | [Description("已出货")] |
| | | Shipped = 9, |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 枚举:行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则) |
| | | /// 枚举:行为类型(0Normal默认行为|1Scan扫码验证|2Assy组装上料|3Test产品测试|4Audit产品抽检|5Print标签打印|6Package包装规则) |
| | | /// </summary> |
| | | public enum ACT_TYPEs |
| | | { |
| | | [Description("默认行为")] |
| | | [Description("默认行为")] |
| | | Normal = 0, |
| | | [Description("扫码验证")] |
| | | [Description("扫码验证")] |
| | | Scan = 1, |
| | | [Description("组装上料")] |
| | | [Description("组装上料")] |
| | | Assy = 2, |
| | | [Description("产品测试")] |
| | | [Description("产品测试")] |
| | | Test = 3, |
| | | [Description("产品抽检")] |
| | | [Description("产品抽检")] |
| | | Audit = 4, |
| | | [Description("标签打印")] |
| | | [Description("标签打印")] |
| | | Print = 5, |
| | | [Description("包装规则")] |
| | | [Description("包装规则")] |
| | | Package = 6, |
| | | } |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:生产上料记录 |
| | | /// 实体:生产上料记录 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("生产上料记录")] |
| | | [DisplayName("生产上料记录")] |
| | | [Serializable] |
| | | [SugarTable("MES_WIP_ASSY")] |
| | | public class MES_WIP_ASSY : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:生产上料记录 |
| | | /// 实体:生产上料记录 |
| | | /// </summary> |
| | | public MES_WIP_ASSY() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 物料条码 |
| | | /// 在制品ID |
| | | /// </summary> |
| | | [DisplayName("物料条码")] |
| | | [DisplayName("在制品ID")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 物料条码 |
| | | /// </summary> |
| | | [DisplayName("物料条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 产品条码 |
| | | /// 产品条码(厂内流转条码) |
| | | /// </summary> |
| | | [DisplayName("产品条码")] |
| | | [DisplayName("产品条码(厂内流转条码)")] |
| | | public string PROD_SN { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("物料编码")] |
| | | [DisplayName("物料编码")] |
| | | public string ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// 数量 |
| | | /// 数量 |
| | | /// </summary> |
| | | [DisplayName("数量")] |
| | | [DisplayName("数量")] |
| | | public double QTY { get; set; } |
| | | /// <summary> |
| | | /// 单位 |
| | | /// 单位 |
| | | /// </summary> |
| | | [DisplayName("单位")] |
| | | [DisplayName("单位")] |
| | | public string UNIT { get; set; } |
| | | /// <summary> |
| | | /// 工单号 |
| | | /// 工单号 |
| | | /// </summary> |
| | | [DisplayName("工单号")] |
| | | [DisplayName("工单号")] |
| | | public string WORK_ORDER { get; set; } |
| | | /// <summary> |
| | | /// 工单批次号 |
| | | /// 工单批次号 |
| | | /// </summary> |
| | | [DisplayName("工单批次号")] |
| | | [DisplayName("工单批次号")] |
| | | public string BATCH_NO { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线编码 |
| | | /// 工艺路线编码 |
| | | /// </summary> |
| | | [DisplayName("工艺路线编码")] |
| | | [DisplayName("工艺路线编码")] |
| | | public string ROT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点ID |
| | | /// 工艺路线节点ID |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点ID")] |
| | | [DisplayName("工艺路线节点ID")] |
| | | public string NODE_ID { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点名称 |
| | | /// 工艺路线节点名称 |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点名称")] |
| | | [DisplayName("工艺路线节点名称")] |
| | | public string NODE_NAME { get; set; } |
| | | /// <summary> |
| | | /// 工厂编码 |
| | | /// 工厂编码 |
| | | /// </summary> |
| | | [DisplayName("工厂编码")] |
| | | [DisplayName("工厂编码")] |
| | | public string FTY_CODE { get; set; } |
| | | /// <summary> |
| | | /// 车间编码 |
| | | /// 车间编码 |
| | | /// </summary> |
| | | [DisplayName("车间编码")] |
| | | [DisplayName("车间编码")] |
| | | public string WS_CODE { get; set; } |
| | | /// <summary> |
| | | /// 产线编码 |
| | | /// 产线编码 |
| | | /// </summary> |
| | | [DisplayName("产线编码")] |
| | | [DisplayName("产线编码")] |
| | | public string LINE_CODE { get; set; } |
| | | /// <summary> |
| | | /// 岗位编码 |
| | | /// 岗位编码 |
| | | /// </summary> |
| | | [DisplayName("岗位编码")] |
| | | [DisplayName("岗位编码")] |
| | | public string POST_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工序编码 |
| | | /// 工序编码 |
| | | /// </summary> |
| | | [DisplayName("工序编码")] |
| | | [DisplayName("工序编码")] |
| | | public string OPER_CODE { get; set; } |
| | | /// <summary> |
| | | /// 加工段 |
| | | /// 加工段 |
| | | /// </summary> |
| | | [DisplayName("加工段")] |
| | | [DisplayName("加工段")] |
| | | public string SEGMENT { get; set; } |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | /// <summary> |
| | | /// 追溯信息 |
| | | /// 追溯信息 |
| | | /// </summary> |
| | | [DisplayName("追溯信息")] |
| | | [DisplayName("追溯信息")] |
| | | public string TRACE_INFO { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_ASSY类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_ASSYId))]//ClassA表中的MES_WIP_ASSYId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_ASSYId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_ASSY类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_ASSYId))]//ClassA表中的MES_WIP_ASSYId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_ASSYId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | [DisplayName("维修回流工序名称(为空则不指定回流工序)")] |
| | | public string REFLOW_NODE { get; set; } |
| | | /// <summary> |
| | | /// 厂内流转条码 |
| | | /// </summary> |
| | | [DisplayName("厂内流转条码")] |
| | | public string FLOW_SN { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | public string TRAY_SN { get; set; } |
| | | /// <summary> |
| | | /// 容器/内包装条码 |
| | | /// 内包装条码 |
| | | /// </summary> |
| | | [DisplayName("容器/内包装条码")] |
| | | public string CONTAINER_SN { get; set; } |
| | | [DisplayName("内包装条码")] |
| | | public string INNER_SN { get; set; } |
| | | /// <summary> |
| | | /// 外箱条码 |
| | | /// </summary> |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:生产不良记录 |
| | | /// 实体:生产不良记录 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("生产不良记录")] |
| | | [DisplayName("生产不良记录")] |
| | | [Serializable] |
| | | [SugarTable("MES_WIP_DFT")] |
| | | public class MES_WIP_DFT : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:生产不良记录 |
| | | /// 实体:生产不良记录 |
| | | /// </summary> |
| | | public MES_WIP_DFT() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 过站条码 |
| | | /// 在制品ID |
| | | /// </summary> |
| | | [DisplayName("过站条码")] |
| | | [DisplayName("在制品ID")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 过站条码 |
| | | /// </summary> |
| | | [DisplayName("过站条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理) |
| | | /// 状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理) |
| | | /// </summary> |
| | | [DisplayName("状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理)")] |
| | | [DisplayName("状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理)")] |
| | | public int STATUS { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("物料编码")] |
| | | [DisplayName("物料编码")] |
| | | public string ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工单号 |
| | | /// 工单号 |
| | | /// </summary> |
| | | [DisplayName("工单号")] |
| | | [DisplayName("工单号")] |
| | | public string WORK_ORDER { get; set; } |
| | | /// <summary> |
| | | /// 工单批次号 |
| | | /// 工单批次号 |
| | | /// </summary> |
| | | [DisplayName("工单批次号")] |
| | | [DisplayName("工单批次号")] |
| | | public string BATCH_NO { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线编码 |
| | | /// 工艺路线编码 |
| | | /// </summary> |
| | | [DisplayName("工艺路线编码")] |
| | | [DisplayName("工艺路线编码")] |
| | | public string ROT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点ID |
| | | /// 工艺路线节点ID |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点ID")] |
| | | [DisplayName("工艺路线节点ID")] |
| | | public string NODE_ID { get; set; } |
| | | /// <summary> |
| | | /// 工艺路线节点名称 |
| | | /// 工艺路线节点名称 |
| | | /// </summary> |
| | | [DisplayName("工艺路线节点名称")] |
| | | [DisplayName("工艺路线节点名称")] |
| | | public string NODE_NAME { get; set; } |
| | | /// <summary> |
| | | /// 工厂编码 |
| | | /// 工厂编码 |
| | | /// </summary> |
| | | [DisplayName("工厂编码")] |
| | | [DisplayName("工厂编码")] |
| | | public string FTY_CODE { get; set; } |
| | | /// <summary> |
| | | /// 车间编码 |
| | | /// 车间编码 |
| | | /// </summary> |
| | | [DisplayName("车间编码")] |
| | | [DisplayName("车间编码")] |
| | | public string WS_CODE { get; set; } |
| | | /// <summary> |
| | | /// 产线编码 |
| | | /// 产线编码 |
| | | /// </summary> |
| | | [DisplayName("产线编码")] |
| | | [DisplayName("产线编码")] |
| | | public string LINE_CODE { get; set; } |
| | | /// <summary> |
| | | /// 岗位编码 |
| | | /// 岗位编码 |
| | | /// </summary> |
| | | [DisplayName("岗位编码")] |
| | | [DisplayName("岗位编码")] |
| | | public string POST_CODE { get; set; } |
| | | /// <summary> |
| | | /// 工序编码 |
| | | /// 工序编码 |
| | | /// </summary> |
| | | [DisplayName("工序编码")] |
| | | [DisplayName("工序编码")] |
| | | public string OPER_CODE { get; set; } |
| | | /// <summary> |
| | | /// 加工段 |
| | | /// 加工段 |
| | | /// </summary> |
| | | [DisplayName("加工段")] |
| | | [DisplayName("加工段")] |
| | | public string SEGMENT { get; set; } |
| | | /// <summary> |
| | | /// 是否不良 |
| | | /// 不良代码编码 |
| | | /// </summary> |
| | | [DisplayName("是否不良")] |
| | | public string DFT_FLAG { get; set; } |
| | | /// <summary> |
| | | /// 不良计数 |
| | | /// </summary> |
| | | [DisplayName("不良计数")] |
| | | public int DFT_COUNT { get; set; } |
| | | /// <summary> |
| | | /// 不良代码编码 |
| | | /// </summary> |
| | | [DisplayName("不良代码编码")] |
| | | [DisplayName("不良代码编码")] |
| | | public string DFT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 不良代码名称 |
| | | /// 不良代码名称 |
| | | /// </summary> |
| | | [DisplayName("不良代码名称")] |
| | | [DisplayName("不良代码名称")] |
| | | public string DFT_NAME { get; set; } |
| | | /// <summary> |
| | | /// 缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷) |
| | | /// 缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷) |
| | | /// </summary> |
| | | [DisplayName("缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷)")] |
| | | [DisplayName("缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷)")] |
| | | public int DFT_LEVEL { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// 厂内流转条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | [DisplayName("厂内流转条码")] |
| | | public string FLOW_SN { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | public string TRAY_SN { get; set; } |
| | | /// <summary> |
| | | /// 容器/内包装条码 |
| | | /// 内包装条码 |
| | | /// </summary> |
| | | [DisplayName("容器/内包装条码")] |
| | | public string CONTAINER_SN { get; set; } |
| | | [DisplayName("内包装条码")] |
| | | public string INNER_SN { get; set; } |
| | | /// <summary> |
| | | /// 外箱条码 |
| | | /// 外箱条码 |
| | | /// </summary> |
| | | [DisplayName("外箱条码")] |
| | | [DisplayName("外箱条码")] |
| | | public string CARTON_SN { get; set; } |
| | | /// <summary> |
| | | /// 栈板条码 |
| | | /// 栈板条码 |
| | | /// </summary> |
| | | [DisplayName("栈板条码")] |
| | | [DisplayName("栈板条码")] |
| | | public string PALLET_SN { get; set; } |
| | | /// <summary> |
| | | /// 是否入库 |
| | | /// 是否入库 |
| | | /// </summary> |
| | | [DisplayName("是否入库")] |
| | | [DisplayName("是否入库")] |
| | | public string INV_FLAG { get; set; } |
| | | /// <summary> |
| | | /// 当前操作时间 |
| | | /// 当前操作时间 |
| | | /// </summary> |
| | | [DisplayName("当前操作时间")] |
| | | [DisplayName("当前操作时间")] |
| | | public DateTime OPERATION_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 班制编码 |
| | | /// 班制编码 |
| | | /// </summary> |
| | | [DisplayName("班制编码")] |
| | | [DisplayName("班制编码")] |
| | | public string SFTS_CODE { get; set; } |
| | | /// <summary> |
| | | /// 班次编码 |
| | | /// 班次编码 |
| | | /// </summary> |
| | | [DisplayName("班次编码")] |
| | | [DisplayName("班次编码")] |
| | | public string SFT_CODE { get; set; } |
| | | /// <summary> |
| | | /// 时段编码 |
| | | /// 时段编码 |
| | | /// </summary> |
| | | [DisplayName("时段编码")] |
| | | [DisplayName("时段编码")] |
| | | public string PRD_CODE { get; set; } |
| | | /// <summary> |
| | | /// 抽检批次号 |
| | | /// 抽检批次号 |
| | | /// </summary> |
| | | [DisplayName("抽检批次号")] |
| | | [DisplayName("抽检批次号")] |
| | | public string OBA_BATCH { get; set; } |
| | | /// <summary> |
| | | /// 锁定批次号 |
| | | /// 锁定批次号 |
| | | /// </summary> |
| | | [DisplayName("锁定批次号")] |
| | | [DisplayName("锁定批次号")] |
| | | public string LOCK_BATCH { get; set; } |
| | | /// <summary> |
| | | /// 不良原因编码 |
| | | /// 不良原因编码 |
| | | /// </summary> |
| | | [DisplayName("不良原因编码")] |
| | | [DisplayName("不良原因编码")] |
| | | public string RSN_CODE { get; set; } |
| | | /// <summary> |
| | | /// 不良原因名称 |
| | | /// 不良原因名称 |
| | | /// </summary> |
| | | [DisplayName("不良原因名称")] |
| | | [DisplayName("不良原因名称")] |
| | | public string RSN_NAME { get; set; } |
| | | /// <summary> |
| | | /// 是否必须更换零件(Y/N) |
| | | /// 是否必须更换零件(Y/N) |
| | | /// </summary> |
| | | [DisplayName("是否必须更换零件(Y/N)")] |
| | | [DisplayName("是否必须更换零件(Y/N)")] |
| | | public string NEED_REPLACE { get; set; } |
| | | /// <summary> |
| | | /// 不良责任编码 |
| | | /// 不良责任编码 |
| | | /// </summary> |
| | | [DisplayName("不良责任编码")] |
| | | [DisplayName("不良责任编码")] |
| | | public string DUTY_CODE { get; set; } |
| | | /// <summary> |
| | | /// 不良责任名称 |
| | | /// 不良责任名称 |
| | | /// </summary> |
| | | [DisplayName("不良责任名称")] |
| | | [DisplayName("不良责任名称")] |
| | | public string DUTY_NAME { get; set; } |
| | | /// <summary> |
| | | /// 缺陷位置编码 |
| | | /// 缺陷位置编码 |
| | | /// </summary> |
| | | [DisplayName("缺陷位置编码")] |
| | | [DisplayName("缺陷位置编码")] |
| | | public string LOC_CODE { get; set; } |
| | | /// <summary> |
| | | /// 缺陷位置名称 |
| | | /// 缺陷位置名称 |
| | | /// </summary> |
| | | [DisplayName("缺陷位置名称")] |
| | | [DisplayName("缺陷位置名称")] |
| | | public string LOC_NAME { get; set; } |
| | | /// <summary> |
| | | /// 不良解决方案编码 |
| | | /// 不良解决方案编码 |
| | | /// </summary> |
| | | [DisplayName("不良解决方案编码")] |
| | | [DisplayName("不良解决方案编码")] |
| | | public string SOL_CODE { get; set; } |
| | | /// <summary> |
| | | /// 不良解决方案名称 |
| | | /// 不良解决方案名称 |
| | | /// </summary> |
| | | [DisplayName("不良解决方案名称")] |
| | | [DisplayName("不良解决方案名称")] |
| | | public string SOL_NAME { get; set; } |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | /// <summary> |
| | | /// 追溯信息 |
| | | /// 追溯信息 |
| | | /// </summary> |
| | | [DisplayName("追溯信息")] |
| | | [DisplayName("追溯信息")] |
| | | public string TRACE_INFO { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_DFT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_DFTId))]//ClassA表中的MES_WIP_DFTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_DFTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_DFT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_DFTId))]//ClassA表中的MES_WIP_DFTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_DFTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | |
| | | /// <summary> |
| | | /// 枚举:状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理) |
| | | /// 枚举:状态(0WaitHandle待处理|1Repairing维修中|2Resolved已处理) |
| | | /// </summary> |
| | | public enum STATUSs |
| | | { |
| | | [Description("待处理")] |
| | | [Description("待处理")] |
| | | WaitHandle = 0, |
| | | [Description("维修中")] |
| | | [Description("维修中")] |
| | | Repairing = 1, |
| | | [Description("已处理")] |
| | | [Description("已处理")] |
| | | Resolved = 2, |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 枚举:缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷) |
| | | /// 枚举:缺陷等级(0MI轻微缺陷|1MA严重缺陷|2CR致命缺陷) |
| | | /// </summary> |
| | | public enum DFT_LEVELs |
| | | { |
| | | [Description("轻微缺陷")] |
| | | [Description("轻微缺陷")] |
| | | MI = 0, |
| | | [Description("严重缺陷")] |
| | | [Description("严重缺陷")] |
| | | MA = 1, |
| | | [Description("致命缺陷")] |
| | | [Description("致命缺陷")] |
| | | CR = 2, |
| | | } |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:在制品扩展信息表 |
| | | /// 实体:在制品扩展信息表 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("在制品扩展信息表")] |
| | | [DisplayName("在制品扩展信息表")] |
| | | [Serializable] |
| | | [SugarTable("MES_WIP_EXT")] |
| | | public class MES_WIP_EXT : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:在制品扩展信息表 |
| | | /// 实体:在制品扩展信息表 |
| | | /// </summary> |
| | | public MES_WIP_EXT() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 过站条码 |
| | | /// 条码(不限于在制品条码) |
| | | /// </summary> |
| | | [DisplayName("过站条码")] |
| | | [DisplayName("条码(不限于在制品条码)")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 彩盒条码 |
| | | /// 在制品ID(不是在制品则留空) |
| | | /// </summary> |
| | | [DisplayName("彩盒条码")] |
| | | public string BOX_SN { get; set; } |
| | | [DisplayName("在制品ID(不是在制品则留空)")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值01 |
| | | /// 扩展字段值01 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值01")] |
| | | [DisplayName("扩展字段值01")] |
| | | public string FIELD_01 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值02 |
| | | /// 扩展字段值02 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值02")] |
| | | [DisplayName("扩展字段值02")] |
| | | public string FIELD_02 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值03 |
| | | /// 扩展字段值03 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值03")] |
| | | [DisplayName("扩展字段值03")] |
| | | public string FIELD_03 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值04 |
| | | /// 扩展字段值04 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值04")] |
| | | [DisplayName("扩展字段值04")] |
| | | public string FIELD_04 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值05 |
| | | /// 扩展字段值05 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值05")] |
| | | [DisplayName("扩展字段值05")] |
| | | public string FIELD_05 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值06 |
| | | /// 扩展字段值06 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值06")] |
| | | [DisplayName("扩展字段值06")] |
| | | public string FIELD_06 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值07 |
| | | /// 扩展字段值07 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值07")] |
| | | [DisplayName("扩展字段值07")] |
| | | public string FIELD_07 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值08 |
| | | /// 扩展字段值08 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值08")] |
| | | [DisplayName("扩展字段值08")] |
| | | public string FIELD_08 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值09 |
| | | /// 扩展字段值09 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值09")] |
| | | [DisplayName("扩展字段值09")] |
| | | public string FIELD_09 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值10 |
| | | /// 扩展字段值10 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值10")] |
| | | [DisplayName("扩展字段值10")] |
| | | public string FIELD_10 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值11 |
| | | /// 扩展字段值11 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值11")] |
| | | [DisplayName("扩展字段值11")] |
| | | public string FIELD_11 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值12 |
| | | /// 扩展字段值12 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值12")] |
| | | [DisplayName("扩展字段值12")] |
| | | public string FIELD_12 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值13 |
| | | /// 扩展字段值13 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值13")] |
| | | [DisplayName("扩展字段值13")] |
| | | public string FIELD_13 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值14 |
| | | /// 扩展字段值14 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值14")] |
| | | [DisplayName("扩展字段值14")] |
| | | public string FIELD_14 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值15 |
| | | /// 扩展字段值15 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值15")] |
| | | [DisplayName("扩展字段值15")] |
| | | public string FIELD_15 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值16 |
| | | /// 扩展字段值16 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值16")] |
| | | [DisplayName("扩展字段值16")] |
| | | public string FIELD_16 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值17 |
| | | /// 扩展字段值17 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值17")] |
| | | [DisplayName("扩展字段值17")] |
| | | public string FIELD_17 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值18 |
| | | /// 扩展字段值18 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值18")] |
| | | [DisplayName("扩展字段值18")] |
| | | public string FIELD_18 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值19 |
| | | /// 扩展字段值19 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值19")] |
| | | [DisplayName("扩展字段值19")] |
| | | public string FIELD_19 { get; set; } |
| | | /// <summary> |
| | | /// 扩展字段值20 |
| | | /// 扩展字段值20 |
| | | /// </summary> |
| | | [DisplayName("扩展字段值20")] |
| | | [DisplayName("扩展字段值20")] |
| | | public string FIELD_20 { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_EXT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_EXTId))]//ClassA表中的MES_WIP_EXTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_EXTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是MES_WIP_EXT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.MES_WIP_EXTId))]//ClassA表中的MES_WIP_EXTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.MES_WIP_EXTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | public MES_WIP_HIS() {} |
| | | |
| | | /// <summary> |
| | | /// 实体:库存历史 |
| | | /// 实体:生产过程记录 |
| | | /// </summary> |
| | | /// <param name="data">历史的来源Item</param> |
| | | /// <param name="traceInfo">追溯信息</param> |
| | |
| | | AUTH_ORG = data.AUTH_ORG; |
| | | AUTH_PROD = data.AUTH_PROD; |
| | | AUTH_WH = data.AUTH_WH; |
| | | WIP_ID = data.ID; |
| | | SN = data.SN; |
| | | STATUS = data.STATUS; |
| | | ITEM_CODE = data.ITEM_CODE; |
| | |
| | | DFT_COUNT = data.DFT_COUNT; |
| | | DFT_CODE = data.DFT_CODE; |
| | | REFLOW_NODE = data.REFLOW_NODE; |
| | | FLOW_SN = data.FLOW_SN; |
| | | TRAY_SN = data.TRAY_SN; |
| | | CONTAINER_SN = data.CONTAINER_SN; |
| | | INNER_SN = data.INNER_SN; |
| | | CARTON_SN = data.CARTON_SN; |
| | | PALLET_SN = data.PALLET_SN; |
| | | INV_FLAG = data.INV_FLAG; |
| | |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 在制品ID |
| | | /// </summary> |
| | | [DisplayName("在制品ID")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 过站条码 |
| | | /// </summary> |
| | |
| | | [DisplayName("维修回流工序名称(为空则不指定回流工序)")] |
| | | public string REFLOW_NODE { get; set; } |
| | | /// <summary> |
| | | /// 厂内流转条码 |
| | | /// </summary> |
| | | [DisplayName("厂内流转条码")] |
| | | public string FLOW_SN { get; set; } |
| | | /// <summary> |
| | | /// 托盘/载具条码 |
| | | /// </summary> |
| | | [DisplayName("托盘/载具条码")] |
| | | public string TRAY_SN { get; set; } |
| | | /// <summary> |
| | | /// 容器/内包装条码 |
| | | /// 内包装条码 |
| | | /// </summary> |
| | | [DisplayName("容器/内包装条码")] |
| | | public string CONTAINER_SN { get; set; } |
| | | [DisplayName("内包装条码")] |
| | | public string INNER_SN { get; set; } |
| | | /// <summary> |
| | | /// 外箱条码 |
| | | /// </summary> |
| | |
| | | |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 条码 |
| | | /// 被包装条码 |
| | | /// </summary> |
| | | [DisplayName("条码")] |
| | | [DisplayName("被包装条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 父包装条码 |
| | | /// 父包装条码(最外层包装留空) |
| | | /// </summary> |
| | | [DisplayName("父包装条码")] |
| | | [DisplayName("父包装条码(最外层包装留空)")] |
| | | public string PARENT_SN { get; set; } |
| | | /// <summary> |
| | | /// 在制品ID(不是最小包装则留空) |
| | | /// </summary> |
| | | [DisplayName("在制品ID(不是最小包装则留空)")] |
| | | public string WIP_ID { get; set; } |
| | | /// <summary> |
| | | /// 包装类型 |
| | | /// </summary> |
| | |
| | | Enum1, |
| | | } |
| | | */ |
| | | |
| | | #endregion |
| | | |
| | | #region 公共方法 |