using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.SYS; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.WebApi.Models.BAS; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Query.SqlExpressions; using System.Reflection; namespace AMESCoreStudio.WebApi { /// <summary> /// /// </summary> public class AMESContext : DbContext { /// <summary> /// /// </summary> /// <param name="options"></param> public AMESContext(DbContextOptions<AMESContext> options) : base(options) { //Configuration.ProxyCreationEnabled = false; } /// <summary> /// /// </summary> /// <param name="datePartArg"></param> /// <param name="date"></param> /// <returns></returns> public int? DatePart(string datePartArg, DateTimeOffset? date) => throw new InvalidOperationException($"{nameof(DatePart)} cannot be called client side."); /// <summary> /// /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(ModelBuilder modelBuilder) { var methodInfo = typeof(DbFunctionExtensions).GetMethod(nameof(DatePart)); var datePartMethodInfo = typeof(AMESContext) .GetRuntimeMethod(nameof(AMESContext.DatePart), new[] { typeof(string), typeof(DateTimeOffset) }); modelBuilder.HasDbFunction(datePartMethodInfo) .HasTranslation(args => new SqlFunctionExpression("DatePart", new[] { new SqlFragmentExpression((args.ToArray()[0] as SqlConstantExpression).Value.ToString()), args.ToArray()[1] }, true, new[] { false, false }, typeof(int?), null ) ); /* modelBuilder.Entity<RoleModule>() .HasOne(m => m.Module); */ modelBuilder.Entity<Rules>().HasKey(c => new { c.RuleID }); modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO }); modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate }); modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN }); modelBuilder.Entity<BarcodeWip>().HasKey(c => new { c.WipID, c.BarcodeID }); modelBuilder.Entity<BarcodeStation>().HasKey(c => new { c.BarcodeID ,c.WipID, c.StationID ,c.RuleStatus ,c.InputDate,c.FlowRuleID }); modelBuilder.Entity<WipRule>().HasKey(c => new { c.WipNO, c.StationID, c.KeyNo }); modelBuilder.Entity<WipMAC>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO }); modelBuilder.Entity<WipInfoBlob>().HasKey(c => new { c.WipBlobID, c.WipNo }); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.B).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired(); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.I).WithMany().HasForeignKey(r => r.ItemNo).IsRequired(); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.S).WithMany().HasForeignKey(r => r.StationID).IsRequired(); modelBuilder.Entity<WorkClass>().HasOne(r => r.Group).WithMany().HasForeignKey(r => r.GroupID).IsRequired(); modelBuilder.Entity<ListObj>().HasKey(c => new { c.value, c.name }); modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID }); modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired(); modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.Stations>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<MACInfo>().HasKey(c => new { c.Class, c.ClassGroup }); modelBuilder.Entity<RoleModule>().HasOne(r => r.Module).WithMany().HasForeignKey(r => r.ModuleID).IsRequired(); modelBuilder.Entity<StandardWorkTime>().HasOne(r => r.Stations).WithMany().HasForeignKey(r => r.StationID).IsRequired(); modelBuilder.Entity<StandardWorkTime>().HasOne(r => r.LineInfo).WithMany().HasForeignKey(r => r.LineID).IsRequired(); modelBuilder.Entity<UserInfo>().HasKey(c => new { c.UserNo}); modelBuilder.Entity<WorkManPower>().HasOne(r => r.U).WithMany().HasForeignKey(r => r.UserNo).IsRequired(); //modelBuilder.Entity<WorkManPower>().HasOne(r => r.DeptInfo).WithMany().HasForeignKey(r => r.UserNo).IsRequired(); // modelBuilder.Entity<MaterialFlow>().HasKey(c => new { c.ItemID,c.FlowRuleID,c.UnitNo}); // modelBuilder.Entity<MaterialFlow>().HasKey(c => new { c.ItemID, c.FlowSEQ, c.UnitNo }); //modelBuilder.Entity<MaterialFlow>().HasKey(c => new { c.ItemID }); modelBuilder.Entity<MaterialFlow>().HasOne(r => r.MaterialItem).WithMany().HasForeignKey(r => r.ItemID).IsRequired(); modelBuilder.Entity<MaterialFlow>().HasOne(r => r.FlowRule).WithMany().HasForeignKey(r => r.FlowRuleID).IsRequired(); modelBuilder.Entity<RuninTime>().HasKey(c => new { c.ItemNo }); //modelBuilder.Entity<BarcodeWip>().HasKey(c => new { c.WipID, c.BarcodeID }); modelBuilder.Entity<BarcodeGroup>().HasKey(c => new { c.GroupID, c.BarcodeID }); modelBuilder.Entity<FqcInhouseMaster>().HasKey(c => new { c.InhouseNo, c.SeqID }); modelBuilder.Entity<FqcInhouseDetail>().HasKey(c => new { c.InhouseNo, c.SeqID , c.SerialNo }); modelBuilder.Entity<FqcResultDetail>().HasKey(c => new { c.FqcID, c.BoxNo ,c.BarcodeNo }); modelBuilder.Entity<FqcBarcode>().HasKey(c => new { c.FqcID, c.BarcodeID }); modelBuilder.Entity<FqcItem>().HasKey(c => new { c.FqcID, c.ItemID }); modelBuilder.Entity<FqcResultMasterBlob>().HasKey(e => new { e.FqcID, e.CreateDate }); modelBuilder.Entity<NgInfo>().HasOne(r => r.Barcode).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired(); modelBuilder.Entity<NgInfo>().HasOne(r => r.Wip).WithMany().HasForeignKey(r => r.WipId).IsRequired(); modelBuilder.Entity<NgInfo>().HasOne(r => r.Station).WithMany().HasForeignKey(r => r.StationId).IsRequired(); //modelBuilder.Entity<NgInfo>().HasOne(r => r.User).WithMany().HasForeignKey(r => r.OperatorID).IsRequired(); modelBuilder.Entity<WipStation>().HasKey(c => new { c.WipID, c.StationID, c.RuleStatus, c.CreateDate}); modelBuilder.Entity<WipClass>().HasKey(c => new { c.WipID, c.StationID, c.RuleStatus, c.ClassID, c.CreateDate }); modelBuilder.Entity<WipTime>().HasKey(c => new { c.WipID, c.StationID, c.RuleStatus, c.SegmentID, c.CreateDate }); //Yiru add --------------------------------------------------------------------------------------------------------------------------- modelBuilder.Entity<WareHouseing>().HasKey(c => new { c.InhouseNo, c.SeqID, c.SerialNo }); modelBuilder.Entity<OutfitFactoryInfo>().HasKey(c => new { c.OutfitFactoryID }); modelBuilder.Entity<OutfitInfoBlob>().HasKey(c => new { c.OutfitID }); modelBuilder.Entity<RLabelReprint>().HasKey(c => new { c.SerialNumber,c.ReprintTime}); modelBuilder.Entity<CZmomaterialList>().HasNoKey(); modelBuilder.Entity<SerialRuleDetail>().HasKey(c => new { c.SerialRuleDetailID }); modelBuilder.Entity<ExceptionWorktimeBlob>().HasKey(c => new { c.ExceptionWorktimeID, c.CreateDate }); //Yiru End --------------------------------------------------------------------------------------------------------------------------- modelBuilder.Entity<InspectionResultBlob>().HasKey(c => new { c.InspectionItemID, c.InspectionID,c.CreateDate }); modelBuilder.Entity<InspectionResultDetail>().HasKey(c => new { c.InspectionItemID, c.InspectionID }); modelBuilder.Entity<InspectionResultDetail>().HasOne(r => r.Stations).WithMany().HasForeignKey(r => r.RuleStationID).IsRequired(); modelBuilder.Entity<InspectionResultDetail>().HasOne(r => r.LineInfo).WithMany().HasForeignKey(r => r.LineID).IsRequired(); //modelBuilder.Entity<InspectionResultDetail>().HasOne(r => r.FactoryUnit).WithMany().HasForeignKey(r => r.MissingUnitNo).IsRequired(); //modelBuilder.Entity<InspectionResultDetail>().HasOne(r => r.User).WithMany().HasForeignKey(r => r.MissingUserID).IsRequired(); modelBuilder.Entity<InspectionResultDetail>().HasOne(r => r.InspectionItem).WithMany().HasForeignKey(r => r.InspectionItemID).IsRequired(); modelBuilder.Entity<InspectionForm>().HasOne(r => r.FactoryUnit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<SNKeyPart>().HasKey(c => new { c.StockInNo, c.KPItem }); modelBuilder.Entity<NGReason>().HasKey(c => new { c.NGClassNo, c.NGReasonNo }); } /// <summary> /// /// </summary> public DbSet<IDKey> IDKeys { get; set; } /// <summary> /// /// </summary> public DbSet<AuthInfo> AuthInfo { get; set; } /// <summary> /// /// </summary> public DbSet<SystemInfo> SystemInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<ModuleInfo> ModuleInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<ProgramInfo> ProgramInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<RoleInfo> RoleInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<UserInfo> UserInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<DeptInfo> DeptInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<RoleModule> RoleModules { get; set; } /// <summary> /// /// </summary> public DbSet<RoleProgram> RolePrograms { get; set; } /// <summary> /// /// </summary> public DbSet<UserRole> UserRoles { get; set; } //#region AMES Table BAS /// <summary> /// 工廠 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.FactoryInfo> FactoryInfos { get; set; } /// <summary> /// 單位 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.FactoryUnit> FactoryUnits { get; set; } /// <summary>ClassInfo /// 線別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.LineInfo> LineInfoes { get; set; } /// <summary> /// 班别資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.ClassInfo> ClassInfoes { get; set; } /// <summary>TIME_SEGMENT /// 生產時段 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.TimeSegment> TimeSegments { get; set; } /// <summary> /// 工作臺類別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.StationType> StationTypes { get; set; } /// <summary> /// 工作臺 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.Stations> Stationses { get; set; } /// <summary> /// 責任單位資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.RepairResponsibleUnits> RepairResponsibleUnitses { get; set; } /// <summary> /// 郵件群组類别 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.MailGroup> MailGroups { get; set; } /// <summary> /// 郵件群组資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.MailGroupDetail> MailGroupDetails { get; set; } /// <summary> /// 測試代號 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.TestType> TestTypes { get; set; } /// <summary> /// List /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.ListObj> ListObjs { get; set; } /////////////////////////*****///////////////////////////////////////////////////////// /// <summary> /// 正背面 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.MFGType> MFGTypes { get; set; } /// <summary> /// 工單性質 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.ProcessType> ProcessTypes { get; set; } /// <summary> /// 產品別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.ProductType> ProductTypes { get; set; } /// <summary> /// 工單機種資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.WipAtt> WipAtts { get; set; } /// <summary> /// 工單基本資料文件 /// </summary> public virtual DbSet<WipInfo> WipInfos { get; set; } /// <summary> /// 流程資料 /// </summary> public DbSet<FlowRule> FlowRules { get; set; } /// <summary> /// 流程站別資料 /// </summary> public DbSet<RuleStation> RuleStations { get; set; } /// <summary> /// 流程規則資料 /// </summary> public DbSet<Rules> Ruleses { get; set; } /// <summary> /// 條碼狀態資料 /// </summary> public DbSet<BarcodeStatus> BarcodeStatus { get; set; } /// <summary> /// 異常群組資料 /// </summary> public DbSet<ErrorGroup> ErrorGroups { get; set; } /// <summary> /// 異常類別資料 /// </summary> public DbSet<ErrorClass> ErrorClasses { get; set; } /// <summary> /// 工單狀態資料 /// </summary> public DbSet<WipStatus> WipStatus { get; set; } /// <summary> /// 工單鎖定資料檔 /// </summary> public DbSet<WipLock> WipLocks { get; set; } /// <summary> /// 工單條碼起迄資料檔 /// </summary> public DbSet<WipBarcode> WipBarcodes { get; set; } /// <summary> /// 異常原因資料 /// </summary> public DbSet<ErrorReason> ErrorReasons { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<WipLog> WipLogs { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<NGGroup> NGGroups { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<NGClass> NGClasses { get; set; } /// <summary> /// 維修群組資料 /// </summary> public DbSet<RMAGroup> RMAGroups { get; set; } /// <summary> /// 維修類別資料 /// </summary> public DbSet<RMAClass> RMAClasses { get; set; } /// <summary> /// 維修原因資料 /// </summary> public DbSet<RMAReason> RMAReasons { get; set; } /// <summary> /// 機種C/T資料 /// </summary> public DbSet<CycleTime> CycleTimes { get; set; } /// <summary> /// 不良現象原因代碼資料 /// </summary> public DbSet<NGReason> NGReasons { get; set; } /// <summary> /// 問題類別資料 /// </summary> public DbSet<QAType> QATypes { get; set; } /// <summary> /// 維修方式資料 /// </summary> public DbSet<RepairType> RepairTypes { get; set; } /// <summary> /// 組件類別資料 /// </summary> public DbSet<RepairItem> RepairItems { get; set; } /// <summary> /// 序號料號資料 /// </summary> public DbSet<PartMap> PartMaps { get; set; } /// <summary> /// 組件料號序號資料 /// </summary> public DbSet<KPLink> KPLinks { get; set; } /// <summary> /// 組件類別資料 /// </summary> public virtual DbSet<Items> Items { get; set; } /// <summary> /// MAC資料 /// </summary> public DbSet<MACInfo> MACInfoes { get; set; } /// <summary> /// SOP文件維護 /// </summary> //public virtual DbSet<WipSop> WipSops { get; set; } public virtual DbSet<MaterialSop> MaterialSops { get; set; } /// <summary> /// 料號基本資料檔 /// </summary> public virtual DbSet<MaterialItem> MaterialItems { get; set; } /// <summary> /// /// </summary> public virtual DbSet<MaterialKp> MaterialKps { get; set; } /// <summary> /// 工單資訊-板卡工程資訊 /// </summary> public virtual DbSet<WipBoard> WipBoards { get; set; } /// <summary> /// 工單資訊-系統組裝工程資訊 /// </summary> public virtual DbSet<WipSystem> WipSystems { get; set; } /// <summary> /// 工單資訊-系統組裝工程資訊 /// </summary> public virtual DbSet<BarcodeChange> BarcodeChanges { get; set; } /// <summary> /// 工單對應SOP文件log /// </summary> public virtual DbSet<WipSop> WipSops { get; set; } /// <summary> /// 工單資料-標籤 /// </summary> public virtual DbSet<WipLabel> WipLabels { get; set; } /// <summary> /// 工單MAC資料檔 /// </summary> public virtual DbSet<WipMAC> WipMACs { get; set; } /// <summary> /// 工單條碼規則設定文件檔 /// </summary> public virtual DbSet<WipRule> WipRules { get; set; } /// <summary> /// 工單條碼區間設定檔(除内部SN) /// </summary> public virtual DbSet<WipBarcodeOther> WipBarcodeOthers { get; set; } /// <summary> ///條碼資料 /// </summary> public virtual DbSet<BarcodeInfo> BarcodeInfoes { get; set; } /// <summary> ///條碼组件資料 /// </summary> public virtual DbSet<BarcodeItem> BarcodeItems { get; set; } /// <summary> ///工時群組資料 /// </summary> public DbSet<WorkGroup> WorkGroups { get; set; } /// <summary> ///工作類別資料 /// </summary> public DbSet<WorkClass> WorkClasses { get; set; } /// <summary> ///標準工時資料 /// </summary> public DbSet<StandardWorkTime> StandardWorkTimes { get; set; } /// <summary> ///每日出勤資料 /// </summary> public DbSet<WorkManPower> WorkManPowers { get; set; } /// <summary> ///援入援外資料 /// </summary> public DbSet<SupportUser> SupportUsers { get; set; } /// <summary> ///異常工時資料 /// </summary> public DbSet<ExceptionWorktime> ExceptionWorktimes { get; set; } /// <summary> ///重工工時資料 /// </summary> public DbSet<StandardWorkTimeRework> StandardWorkTimeReworks { get; set; } /// <summary> ///無效工時在線收集資料 /// </summary> public DbSet<ExceptionWorktimeOline> ExceptionWorktimeOlines { get; set; } /// <summary> /// 條碼類別資料檔 /// </summary> public virtual DbSet<BarcodeType> BarcodeTypes { get; set; } /// <summary> /// 料號属性代碼基本檔 /// </summary> public virtual DbSet<MatProperty> MatPropertys { get; set; } /// <summary> ///條碼组件變更資料 /// </summary> public DbSet<BarcodeItemChange> BarcodeItemChanges { get; set; } /// <summary> /// 料號站別工項資料檔 /// </summary> public virtual DbSet<AMESCoreStudio.WebApi.Models.AMES.MaterialStationsItem> MaterialStationsItems { get; set; } /// <summary> /// 料號治具資訊資料檔 /// </summary> public virtual DbSet<AMESCoreStudio.WebApi.Models.AMES.MaterialOutfit> MaterialOutfits { get; set; } /// <summary> /// 條碼鎖定資料表 /// </summary> public DbSet<BarcodeLock> BarcodeLocks { get; set; } /// <summary> /// 檔案用途 條碼工單資料檔 /// </summary> public virtual DbSet<BarcodeWip> BarcodeWips { get; set; } /// <summary> /// 測試不良基本資料檔 /// </summary> public virtual DbSet<NgInfo> NgInfos { get; set; } /// <summary> /// 條碼過站資料檔 /// </summary> //public DbSet<AMESCoreStudio.WebApi.Models.AMES.BarcodeStation> BarcodeStation { get; set; } public DbSet<BarcodeStation> BarcodeStation { get; set; } /// <summary> /// 條碼關聯資料檔 /// </summary> public virtual DbSet<BarcodeGroup> BarcodeGroups { get; set; } /// <summary> /// 料號流程資料檔 /// </summary> public virtual DbSet<AMESCoreStudio.WebApi.Models.BAS.MaterialFlow> MaterialFlows { get; set; } /// <summary> /// 燒机時間資料檔 /// </summary> public virtual DbSet<RuninTime> RuninTimes { get; set; } /// <summary> /// 檢驗類別維護資料檔 /// </summary> public virtual DbSet<QcGroup> QcGroups { get; set; } /// <summary> /// 檢驗項目維護資料檔 /// </summary> public virtual DbSet<QcItem> QcItems { get; set; } /// <summary> /// 檢驗结果維護資料檔 /// </summary> public virtual DbSet<FqcResult> FqcResults { get; set; } /// <summary> /// 抽驗係数資料檔 /// </summary> public virtual DbSet<QcQuot> QcQuots { get; set; } /// <summary> /// 抽驗標準資料檔 /// </summary> public virtual DbSet<QcCriterion> QcCriteria { get; set; } /// <summary> /// 入庫單資料檔 /// </summary> public virtual DbSet<FqcInhouseMaster> FqcInhouseMasters { get; set; } /// <summary> /// 檢驗單明細資料檔 /// </summary> public virtual DbSet<FqcInhouseDetail> FqcInhouseDetails { get; set; } /// <summary> /// 檢驗單結果資料檔 /// </summary> public virtual DbSet<FqcResultMaster> FqcResultMasters { get; set; } /// <summary> /// FQC檢驗結果明細資料檔 /// </summary> public virtual DbSet<FqcResultDetail> FqcResultDetails { get; set; } /// <summary> /// FQC條碼資料檔 /// </summary> public virtual DbSet<FqcBarcode> FqcBarcodes { get; set; } /// <summary> /// FQC细目資料檔 /// </summary> public virtual DbSet<FqcItem> FqcItems { get; set; } /// <summary> /// 抽驗批退資料檔 /// </summary> public virtual DbSet<QngInfo> QngInfos { get; set; } /// <summary> /// 測試不良基本資料檔 /// </summary> public DbSet<NgComponent> NgComponents { get; set; } /// <summary> /// 維修紀錄資料檔 /// </summary> public DbSet<RepairRecord> RepairRecords { get; set; } /// <summary> /// 不良維修資料檔 /// </summary> public DbSet<NgRepair> NgRepairs { get; set; } /// <summary> /// 維修解碼上傳圖檔資料表 /// </summary> public DbSet<NgRepairBlob> NgRepairBlobs { get; set; } /// <summary> /// 過站狀態檔 /// </summary> public virtual DbSet<StatusType> StatusTypes { get; set; } /// <summary> /// 異常工時類別資料檔 /// </summary> public virtual DbSet<ExceptionClass> ExceptionClasses { get; set; } /// <summary> /// 異常工時CODE資料檔 /// </summary> public virtual DbSet<ExceptionCode> ExceptionCodes { get; set; } /// <summary> /// 異常工時REASON資料檔 /// </summary> public virtual DbSet<ExceptionReason> ExceptionReasons { get; set; } /// <summary> /// 工單箱號資料檔 /// </summary> public virtual DbSet<WipBox> WipBoxs { get; set; } /// <summary> /// 巡檢類別資料檔 /// </summary> public virtual DbSet<InspectionType> InspectionTypes { get; set; } /// <summary> /// 工單各站數量資料檔 /// </summary> public virtual DbSet<WipStation> WipStations { get; set; } /// <summary> /// 巡檢表單資料檔 /// </summary> public virtual DbSet<InspectionItem> InspectionItems { get; set; } /// <summary> /// 巡檢項目資料檔 /// </summary> public virtual DbSet<InspectionForm> InspectionForms { get; set; } /// <summary> /// 巡檢項目資料檔 /// </summary> public virtual DbSet<InspectionResultMaster> InspectionResultMasters { get; set; } /// <summary> /// 巡檢項目資料檔 /// </summary> public virtual DbSet<InspectionResultDetail> InspectionResultDetails { get; set; } /// <summary> /// 巡檢項目資料檔 /// </summary> public virtual DbSet<InspectionResultBlob> InspectionResultBlobs { get; set; } /// <summary> /// 各班別數量資料檔 /// </summary> public virtual DbSet<WipClass> WipClass { get; set; } /// <summary> /// 工單各站數量資料檔 – By TIME /// </summary> public virtual DbSet<WipTime> WipTimes { get; set; } /// <summary> /// 工單KP資訊資料檔 /// </summary> public virtual DbSet<WipKp> WipKps { get; set; } /// <summary> /// 日曆資料表 /// </summary> public DbSet<CalendarTable> CalendarTables { get; set; } /// <summary> /// 內部序號對應的治具序號明細 /// </summary> public virtual DbSet<BarcodeOutfit> BarcodeOutfits { get; set; } /// <summary> /// 設備種類資料檔 /// </summary> public virtual DbSet<OutfitCommodityInfo> OutfitCommodityInfoes { get; set; } /// <summary> /// 設備規格資料檔 /// </summary> public virtual DbSet<OutfitVarityInfo> OutfitVarityInfoes { get; set; } /// <summary> /// 廠商資料檔 /// </summary> public virtual DbSet<OutfitVendorInfo> OutfitVendorInfoes { get; set; } /// <summary> /// 治具資料檔 /// </summary> public virtual DbSet<OutfitInfo> OutfitInfoes { get; set; } /// <summary> /// PLM轉入料號說明 /// </summary> public virtual DbSet<PlmMeterialInfo> PlmMeterialInfos { get; set; } /// <summary> /// 設備狀態紀錄資料檔 /// </summary> public virtual DbSet<OutfitStatusLog> OutfitStatusLogs { get; set; } /// <summary> /// 工單資訊確認 /// </summary> public virtual DbSet<WipCheck> WipChecks { get; set; } /// <summary> /// 工單治具資料檔 /// </summary> public virtual DbSet<WipOutfit> WipOutfits { get; set; } /// <summary> /// 工單上傳圖檔資料表 /// </summary> public virtual DbSet<WipInfoBlob> WipInfoBlobs { get; set; } /// <summary> /// 出貨序號規則 /// </summary> public virtual DbSet<SerialRule> SerialRules { get; set; } /// <summary> /// 燒機記錄資料表 /// </summary> public virtual DbSet<BurnInfo> BurnInfos { get; set; } /// <summary> /// 樣本序號取得記錄資料表 /// </summary> public virtual DbSet<SampleSipmentSN> SampleSipmentSNs { get; set; } /// <summary> /// 工單序號退回紀錄 /// </summary> public virtual DbSet<WipReturn> WipReturns { get; set; } /// <summary> /// 料號對應工項資料檔 /// </summary> public virtual DbSet<MaterialFqcItem> MaterialFqcItems { get; set; } /// <summary> /// 工單對應工項資料檔 /// </summary> public virtual DbSet<WipFqcItem> WipFqcItems { get; set; } /// <summary> /// 檢驗結果上傳圖檔資料表 /// </summary> public virtual DbSet<FqcResultMasterBlob> FqcResultMasterBlobs { get; set; } /// <summary> /// 工單警報資料 /// </summary> public DbSet<WipAlarm> WipAlarms { get; set; } /// <summary> /// 工時收集資料檔 /// </summary> public DbSet<WorkingHoursCollection> WorkingHoursCollections { get; set; } /// <summary> /// 外包機種資料 /// </summary> public DbSet<SNKeyPart> SNKeyParts { get; set; } /// <summary> Yiru add --------------------------------------------------- /// 檢驗單明細資料檔 /// </summary> public virtual DbSet<WareHouseing> WareHouseings { get; set; } /// <summary> /// 生產工時報工資料檔 /// </summary> public DbSet<WipTimeSheet> WipTimeSheets { get; set; } /// <summary> /// 鋼板基本資料檔 /// </summary> public virtual DbSet<SteelPlateInfo> SteelPlateInfos { get; set; } /// <summary> /// 鋼板量測記錄資料檔 /// </summary> public virtual DbSet<SteelPlateMeasure> SteelPlateMeasures { get; set; } /// <summary> /// 錫膏基本資料檔 /// </summary> public virtual DbSet<SolderPasteInfo> SolderPasteInfos { get; set; } /// <summary> /// 錫膏使用紀錄資料檔 /// </summary> public virtual DbSet<SolderPasteRecord> SolderPasteRecords { get; set; } /// <summary> /// 條碼報廢轉出資料檔 /// </summary> public DbSet<BarcodeQngInfo> BarcodeQngInfos { get; set; } /// <summary> /// 異常工時附件資料檔 /// </summary> public virtual DbSet<ExceptionWorktimeBlob> ExceptionWorktimeBlobs { get; set; } /// <summary> Yiru add --------------------------------------------------- /// 設備廠別資料檔 /// </summary> public virtual DbSet<OutfitFactoryInfo> OutfitFactoryInfos { get; set; } public virtual DbSet<RLabelReprint> RLabelReprints { get; set; } /// <summary> yiru 2022-09-20 --------------------------------------------------- /// 治具ID圖檔 /// </summary> public virtual DbSet<OutfitInfoBlob> OutfitInfoBlobs { get; set; } /// <summary> /// FQC 報表自動派送維護 /// </summary> public virtual DbSet<FqcNoticeMail> FqcNoticeMails { get; set; } /// <summary> /// 解除綁定出貨序號箱號資料檔 /// </summary> public virtual DbSet<UnbindExtraBarcode> UnbindExtraBarcodes { get; set; } /// <summary> /// SOP資訊 - SOP類型為暫行文件 /// </summary> public virtual DbSet<CTempSop> CTempSops { get; set; } /// <summary> yiru add /// 工單發料資料 /// </summary> public DbSet<CZmomaterialList> CZmomaterialLists { get; set; } /// <summary> yiru add /// 出貨序號規則-明細 /// </summary> public DbSet<SerialRuleDetail> SerialRuleDetails { get; set; } /// <summary> /// 清線資料 /// </summary> public DbSet<WipClear> WipClears { get; set; } /// <summary> /// 清線明細資料 /// </summary> public DbSet<WipClearDetail> WipClearDetails { get; set; } /// <summary> /// PlmBom資料 /// </summary> public DbSet<PlmBom> PlmBoms { get; set; } /// <summary> /// 工程編號 /// </summary> public virtual DbSet<MaterialBake> MaterialBakes { get; set; } /// <summary> /// 報工站別資料 /// </summary> public DbSet<StationWorkingHour> StationWorkingHours { get; set; } } }