private void DB2Oper() { DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData(sql); foreach (DataRow dr in dB2.dt.Rows) { T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { if (dB2.dt.Columns.Contains(pi.Name)) { if (!pi.CanWrite) { continue; } object value = dr[pi.Name]; if (value != DBNull.Value) { pi.SetValue(t, value, null); } } } entities.EntityList.Add(t); } //部分更新的表需要设定最后的一条记录时间 if (entities.CompareTimeColumnName != "" && entities.EntityList.Count > 0) { T t = entities.EntityList.OrderBy(o => o.GetType().GetProperty(entities.CompareTimeColumnName)).LastOrDefault(); LastRecordTime = (DateTime)t.GetType().GetProperty(entities.CompareTimeColumnName).GetValue(t, null); } }
private void DB2Oper() { DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData(sql); foreach (DataRow dr in dB2.dt.Rows) { T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { if (dB2.dt.Columns.Contains(pi.Name)) { if (!pi.CanWrite) { continue; } object value = dr[pi.Name]; if (value != DBNull.Value) { pi.SetValue(t, value, null); } } } entities.EntityList.Add(t); } }
int GetCount(string eqp, string startTime) { DB2Helper db2 = new DB2Helper(); db2.GetSomeData(string.Format("select distinct proc_time from mmview.fhcdatahs_lot where proc_eqp_id='{0}' and proc_time >'{1}'", eqp, startTime)); return(db2.dt.Rows.Count); }
//querycoordinate public JsonResult querycoordinate() { string RecipeName = Request["RecipeName"].ToString(); string sql = string.Format("select RecipeName,SiteName,Coordinate,CreateTime,Owner from ISTRPT.RPT_WAT_Recipe_coordinate where RecipeName='{0}'", RecipeName); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); DataTable dt = db2.dt; dt.Columns.Add("COORDINATEX", Type.GetType("System.String")); dt.Columns.Add("COORDINATEY", Type.GetType("System.String")); if (dt.Rows.Count != 0) { JsonSerializerSettings setting = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; //JavaScriptSerializer serialize = new JavaScriptSerializer(); string str = JsonConvert.SerializeObject(dt, setting); return(Json(str, JsonRequestBehavior.AllowGet)); } else { //return Json("该RecipeName没有Coordinate,请先添加再查询"); return(Json("nodata")); } }
public JsonResult savecoordinate(List <ReqRpt216coordinate> savelist) { try { //首先检查该RecipeName是否有坐标存在 string sql = string.Format("select count(1) as num from ISTRPT.RPT_WAT_Recipe_coordinate where RecipeName='{0}'", savelist.First().RECIPENAME); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); DataTable dt = db2.dt; if (Convert.ToInt32(dt.Rows[0][0]) > 0) { return(Json("exist")); } List <String> list = new List <string>(); String sql2 = ""; foreach (ReqRpt216coordinate o in savelist) { sql2 = string.Format("insert into ISTRPT.RPT_WAT_Recipe_coordinate(RECIPENAME,SITENAME,COORDINATE,CREATETIME,OWNER) values('{0}','{1}','{2}','{3}','{4}') ;", o.RECIPENAME, o.SITENAME, o.COORDINATEX + ',' + o.COORDINATEY, o.CREATETIME, o.OWNER); list.Add(sql2); } db2.UpdateBatchCommand(list); return(Json("success")); } catch (Exception) { return(Json("error")); } }
public ReqRpt025Translator() { DB2Helper db2 = new DB2Helper(); db2.GetSomeData("select max(Start_Time) from istrpt.RPT_RealTime_Lin"); LastRecordTime = (DateTime)db2.dt.Rows[0][0]; Translate(LastRecordTime, DateTime.Now); }
private InlineDBEntity GetLikelyEntity(InlineDBEntity entity) { var list = inlineDBEntities.Where(a => a.Lot == entity.Lot && a.WaferPosition == entity.WaferPosition && a.WaferSeq != "*" && a.ItemType != "Derived").OrderBy(p => (p.ClaimTime - entity.ClaimTime).Duration()); InlineDBEntity likelyEntity = list.FirstOrDefault(); //如果存在不一致的情况要记录 var testmax = list.Max(p => p.WaferSeq); var testmin = list.Min(p => p.WaferSeq); if (testmax != testmin) { LogHelper.InlineInfoLog(string.Format("testmax:{0},testmin:{1},lot:{2},claimtime:{3}", testmax, testmin, entity.Lot, entity.ClaimTime.ToString())); } //如果没找到,就到数据库中去找 if (likelyEntity is null) { string sqlt = string.Format("(select claim_time, wafer_seq,sourcelot,techbology, product,lotype,owner,measoperator,measequipment,measrecipe,procroute,procroutever,procstep,proctime,procoperatoruser,procequipment,procrecipe from istrpt.fvace_inline_dc where claim_time >= '{0}' and wafer_seq not in ('', '*') order by claim_time FETCH FIRST 1 ROWS ONLY) " + "union (select claim_time, wafer_seq,sourcelot,techbology, product,lotype,owner,measoperator,measequipment,measrecipe,procroute,procroutever,procstep,proctime,procoperatoruser,procequipment,procrecipe from istrpt.fvace_inline_dc where claim_time <= '{0}' and wafer_seq not in ('', '*') order by claim_time desc FETCH FIRST 1 ROWS ONLY)", entity.ClaimTime.ToString("yyyy-MM-dd-HH.mm.ss.ffffff")); DB2Helper dB2Helper = new DB2Helper(); dB2Helper.GetSomeData(sqlt); likelyEntity = new InlineDBEntity(); DataRow dr = dB2Helper.dt.NewRow(); if (dB2Helper.dt.Rows.Count == 2 && dB2Helper.dt.Rows[0][1].ToString() != dB2Helper.dt.Rows[1][1].ToString()) { dr = (DateTime)dB2Helper.dt.Rows[0][0] - entity.ClaimTime < entity.ClaimTime - (DateTime)dB2Helper.dt.Rows[1][0] ? dB2Helper.dt.Rows[0] : dB2Helper.dt.Rows[1]; } else if (dB2Helper.dt.Rows.Count > 0) { dr = dB2Helper.dt.Rows[0]; } likelyEntity.ClaimTime = (DateTime)dr[0]; likelyEntity.WaferSeq = dr[1].ToString(); likelyEntity.SourceLot = dr[2].ToString(); likelyEntity.Technology = dr[3].ToString(); likelyEntity.Product = dr[4].ToString(); likelyEntity.LotType = dr[5].ToString(); likelyEntity.Owner = dr[6].ToString(); likelyEntity.MeasOperator = dr[7].ToString(); likelyEntity.MeasEquipment = dr[8].ToString(); likelyEntity.MeasRecipe = dr[9].ToString(); likelyEntity.ProcRoute = dr[10].ToString(); likelyEntity.ProcRouteVer = dr[11].ToString(); likelyEntity.ProcStep = dr[12].ToString(); if (dr[13] is null) { likelyEntity.ProcTime = null; } else { likelyEntity.ProcTime = (DateTime)dr[13]; } likelyEntity.ProcOperatorUser = dr[14].ToString(); likelyEntity.ProcRecipe = dr[15].ToString(); } return(likelyEntity); }
public ReqRpt030MainViewModel() { DB2Helper db2 = new DB2Helper(); db2.GetSomeData("select lot_id from istrpt.rpt_wip_special_lot"); foreach (DataRow dr in db2.dt.Rows) { Lot_ID.Add(dr[0].ToString()); } }
//为ChamberOphsEntities赋值 public void GetData() { DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData(Sql_chamber); if (dB2.dt.Rows.Count == 0) { throw new NoQueryDataException("没有新的Chamber数据产生"); } foreach (DataRow dr in dB2.dt.Rows) { ChamberDBEntity chamberDB = new ChamberDBEntity() { Eqp_ID = dr["Eqp_ID"].ToString(), Lot_ID = dr["Lot_ID"].ToString(), MainPD_ID = dr["MainPD_ID"].ToString(), Ope_No = dr["Ope_NO"].ToString(), Ope_Pass_Count = (int)dr["Ope_Pass_Count"], Procrsc_ID = dr["Procrsc_ID"].ToString(), Proc_Time = (DateTime)dr["Proc_Time"], Wafer_ID = dr["Wafer_ID"].ToString() }; ChamberDBEntities.Add(chamberDB); } dB2.GetSomeData(Sql_History); foreach (DataRow dr in dB2.dt.Rows) { ChamberOphsEntity chamberOphs = new ChamberOphsEntity() { Claim_Time = (DateTime)dr["Claim_Time"], Eqp_ID = dr["Eqp_ID"].ToString(), Lot_ID = dr["Lot_ID"].ToString(), MainPD_ID = dr["MainPD_ID"].ToString(), Ope_No = dr["Ope_NO"].ToString(), Ope_Pass_Count = (int)dr["Ope_Pass_Count"], Recipe_ID = dr["Recipe_ID"].ToString(), PD_ID = dr["PD_ID"].ToString() }; ChamberOphsEntities.Add(chamberOphs); } }
public ReqRpt030DeleteSpecialLotResultModel(string LotID) { LotID = LotID.Replace("'", ""); LotID = LotID.Replace("\"", ""); List <string> list = LotID.Split(',').ToList(); string sql = string.Format("delete from ISTRPT.RPT_WIP_SPECIAL_LOT where LOT_ID in ('{0}')", string.Join("','", list)); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); }
public void ImportToDB2() { List <string> FRLots = new List <string>(); DB2Helper db2 = new DB2Helper(); string sql = string.Format("select lot_id from mmview.frlot where lot_id in ('{0}')", FormatLotIDCondition); db2.GetSomeData(sql); foreach (DataRow dr in db2.dt.Rows) { FRLots.Add(dr[0].ToString()); } foreach (string lot in LotID) { if (!FRLots.Contains(lot)) { ErrorID.Add(lot); } } LotID = FRLots; if (Mode == "OverRide") { sql = string.Format("insert into ISTRPT.RPT_WIP_SPECIAL_LOT (LOT_ID) values ('{0}')", FormatLotIDCondition2); sql = string.Format("delete from ISTRPT.RPT_WIP_SPECIAL_LOT;{0}", sql); db2.GetSomeData(sql); } else if (Mode == "AddMore") { foreach (string lot in LotID) { try { sql = string.Format("insert into ISTRPT.RPT_WIP_SPECIAL_LOT (LOT_ID) values ('{0}')", lot); db2.GetSomeData(sql); } catch (Exception) { RepeatID.Add(lot); } } } }
private void Initialize() { string sql = string.Format("select Priority_Class from mmview.fhopehs where lot_id='{0}' order by Claim_Time desc fetch first 1 rows only", LotID); var db2 = new DB2Helper(); db2.GetSomeData(sql); Priority = (int)db2.dt.DefaultView[0][0]; GetDb2Datas(); SetHistEntities(); SetForcastEntities(); SetQtValue(); }
// public string Msg { get; set; } //DB2DataCatcher<Rpt_Lot_Quota_Mapping> map { get; set; } = new DB2DataCatcher<Rpt_Lot_Quota_Mapping>("ISTRPT.Rpt_Lot_Quota_Mapping"); private void Initialize() { if (string.IsNullOrEmpty(LotID)) { throw new Exception("LotID是空字符"); } string sql = ""; var db2 = new DB2Helper(); if (string.IsNullOrEmpty(Project)) { sql = string.Format("delete from ISTRPT.Rpt_Lot_Quota_Mapping where lot_id='{0}';", LotID); db2.GetSomeData(sql); } else { sql = string.Format("delete from ISTRPT.Rpt_Lot_Quota_Mapping where lot_id='{0}' and project_desc='{1}'", LotID, Project); db2.GetSomeData(sql); sql = string.Format("insert into ISTRPT.Rpt_Lot_Quota_Mapping (lot_id,quota_type,project_desc) values ('{0}',1,'{1}')", LotID, Project); db2.GetSomeData(sql); } Success = true; }
public JsonResult GetDcitemList() { string sql = "select distinct(dcitem_name) from ISTRPT.Report47_Proc"; DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); List <string> list = new List <string>(); for (var i = 0; i < db2.dt.Rows.Count; i++) { list.Add(db2.dt.Rows[i][0].ToString()); } return(Json(new { success = true, DcItems = list })); }
private void Initialize() { if (LotType.Count == 0) { return; } string sql = string.Format("select distinct prodspec_id from mmview.frlot where lot_type in ('{0}') order by prodspec_id", string.Join("','", LotType)); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); foreach (DataRow dr in db2.dt.Rows) { Products.Add(dr[0].ToString()); } }
public bool UpdateKey(string project, string newKey) { string md5Key = MD5jiami.MD5Encrypt(newKey); string sql = string.Format("update istrpt.rpt_project_key set pass='******' where projectname='{1}'", md5Key, project); try { DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); return(true); } catch (Exception) { return(false); } }
private InlineDBEntity GetLikelyEntity(InlineDBEntity entity) { string sqlt = string.Format("(select claim_time, wafer_seq,sourcelot,technology, product,lotype,owner,measoperator,measequipment,measrecipe,procroute,procroutever,procstep,proctime,procoperatoruser,procequipment,procrecipe from istrpt.fvace_inline_dc where lot='{1}' and wafer_position='{2}' and claim_time >= '{0}' and wafer_seq not in ('', '*') order by claim_time FETCH FIRST 1 ROWS ONLY) " + "union (select claim_time, wafer_seq,sourcelot,technology, product,lotype,owner,measoperator,measequipment,measrecipe,procroute,procroutever,procstep,proctime,procoperatoruser,procequipment,procrecipe from istrpt.fvace_inline_dc where lot='{1}' and wafer_position='{2}' and claim_time <= '{0}' and wafer_seq not in ('', '*') order by claim_time desc FETCH FIRST 1 ROWS ONLY)", entity.ClaimTime.ToString("yyyy-MM-dd-HH.mm.ss.ffffff"), entity.Lot, entity.WaferPosition); DB2Helper dB2Helper = new DB2Helper(); dB2Helper.GetSomeData(sqlt); var likelyEntity = new InlineDBEntity(); DataRow dr = dB2Helper.dt.NewRow(); if (dB2Helper.dt.Rows.Count == 2 && dB2Helper.dt.Rows[0][1].ToString() != dB2Helper.dt.Rows[1][1].ToString()) { dr = (DateTime)dB2Helper.dt.Rows[0][0] - entity.ClaimTime < entity.ClaimTime - (DateTime)dB2Helper.dt.Rows[1][0] ? dB2Helper.dt.Rows[0] : dB2Helper.dt.Rows[1]; } else if (dB2Helper.dt.Rows.Count > 0) { dr = dB2Helper.dt.Rows[0]; } likelyEntity.ClaimTime = (DateTime)dr[0]; likelyEntity.WaferSeq = dr[1].ToString(); likelyEntity.SourceLot = dr[2].ToString(); likelyEntity.Technology = dr[3].ToString(); likelyEntity.Product = dr[4].ToString(); likelyEntity.LotType = dr[5].ToString(); likelyEntity.Owner = dr[6].ToString(); likelyEntity.MeasOperator = dr[7].ToString(); likelyEntity.MeasEquipment = dr[8].ToString(); likelyEntity.MeasRecipe = dr[9].ToString(); likelyEntity.ProcRoute = dr[10].ToString(); likelyEntity.ProcRouteVer = dr[11].ToString(); //likelyEntity.ProcStep = dr[12].ToString(); var temp = PDModels.Where(w => w.Route == entity.ProcRoute && w.OPE_NO == dr["ProcStep"].ToString()).FirstOrDefault(); likelyEntity.ProcStep = temp == null ? dr["ProcStep"].ToString() : temp.Step; if (dr[13] is null) { likelyEntity.ProcTime = null; } else { likelyEntity.ProcTime = (DateTime)dr[13]; } likelyEntity.ProcOperatorUser = dr[14].ToString(); likelyEntity.ProcRecipe = dr[15].ToString(); return(likelyEntity); }
private void Initialize() { string sql = "select prodspec_id from mmview.fvprodspec "; switch (type) { case 0: sql += "where prodcat_id='Dummy'"; break; case 1: sql += "where prodcat_id='Equipment Monitor'"; break; case 2: sql += "where prodcat_id='Process Monitor'"; break; case 3: sql += "where prodcat_id='Production'"; break; case 4: sql += "where prodcat_id='Raw'"; break; case 5: sql += "where prodcat_id='Recycle'"; break; case 6: sql += "where prodcat_id='Production' and prodspec_id not like 'SL%'"; break; default: break; } DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData(sql); for (var i = 0; i < dB2.dt.Rows.Count; i++) { Prods.Add(dB2.dt.Rows[i][0].ToString()); } }
//public List<string> Product { get; set; } = new List<string>(); private void Initialize() { DB2Helper db2 = new DB2Helper(); string sql = "select distinct lot_type from istrpt.report24_lot_wafer_qty order by lot_type "; db2.GetSomeData(sql); foreach (DataRow dr in db2.dt.Rows) { LotType.Add(dr[0].ToString()); } //sql = "select distinct prodspec_id from mmview.frlot order by prodspec_id"; //db2.GetSomeData(sql); //foreach (DataRow dr in db2.dt.Rows) //{ // Product.Add(dr[0].ToString()); //} }
public JsonResult GetAllLotType() { try { string sql = "select lot_type from mmview.frlottype"; DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); var dt = db2.dt; List <string> list = new List <string>(); for (var i = 0; i < dt.Rows.Count; i++) { list.Add(dt.DefaultView[i][0].ToString()); } return(Json(new { success = true, values = list })); } catch (Exception ex) { return(Json(new { success = false, msg = ex.Message })); } }
public bool NeedUpdate() { if (DateTime.Now - UpdateTime < TimeSpan.FromMinutes(5)) { return(false); } if (entities.CompareTimeColumnName != "") { return(true); } else if (AutoUpdate) { return(true); } else { DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData("select count(*) from " + entities.TableName); return(RecordCount != (int)dB2.dt.DefaultView[0][0]); } }
public bool CheckKey(string project, string key) { string res = ""; string sql = string.Format("select pass from istrpt.rpt_project_key where projectname ='{0}'", project); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); if (db2.dt.Rows.Count <= 0) { return(false); } res = db2.dt.Rows[0][0].ToString(); if (res == MD5jiami.MD5Encrypt(key)) { return(true); } else { return(false); } }
public JsonResult GetUserInfoByUserID(string userid) { try { string sql = string.Format(@"select user.fullname,code.description from mmview.fvuser user , mmview.frcode code where user.Department = code.code_id and code.category_id = 'Department' and user.user_id='{0}'", userid); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); if (db2.dt.DefaultView.Count > 0) { return(Json(new { success = true, UserName = db2.dt.DefaultView[0][0].ToString(), Department = db2.dt.DefaultView[0][1].ToString() }, JsonRequestBehavior.DenyGet)); } else { return(Json(new { success = false, msg = string.Format("数据库中没有UserID:{0}", userid) }, JsonRequestBehavior.DenyGet)); } } catch (Exception ex) { return(Json(new { success = false, msg = ex.Message })); } }
public void Initialize() { string sql = string.Format("select product,count(*) from (select t1.product,pd.pd_type from ( select product,pd_syskey from istrpt.report51_list where product in ('{0}'))t1 left join mmview.frpd pd on t1.pd_syskey=pd.d_thesystemkey where pd_type not in ('Dummy','Measurement')) group by product", string.Join("','", ProductList)); DB2Helper db2 = new DB2Helper(); db2.GetSomeData(sql); foreach (DataRow dr in db2.dt.Rows) { TableRowEntities.Add(new ReqRpt004TableGroupEntity() { ProductID = dr[0].ToString(), EffectiveSteps = (int)dr[1] }); } TurnCatcher.Conditions = string.Format("where start_time between '{0}' and '{1}' and Product_ID in ('{2}')", StrStartTime, StrEndTime, string.Join("','", ProductList)); var list = TurnCatcher.GetEntities().EntityList; foreach (var item in TableRowEntities) { var rawList = list.Where(w => w.Product_ID == item.ProductID); DateTime dt = DFromDate; while (dt <= DTargetDate) { if (!rawList.Any() || !rawList.Where(w => w.Start_Time.Date == dt).Any()) { item.TableEntities.Add(new ReqRpt004TableEntity() { Date = dt, Move = 0, WIP = 0 }); dt = dt.AddDays(1); continue; } var itemList = rawList.Where(w => w.Start_Time.Date == dt); var dayWIP = itemList.Where(w => w.Start_Time.Hour == 8).Any()? itemList.Where(w => w.Start_Time.Hour == 8).First():new RPT_Turn_Daily(); var nightWIP = itemList.Where(w => w.Start_Time.Hour == 20).Any()? itemList.Where(w => w.Start_Time.Hour == 20).First():new RPT_Turn_Daily(); var nextWIP = rawList.Where(w => w.Start_Time.Date == dt.AddDays(1) && w.Start_Time.Hour == 8).Any()? rawList.Where(w => w.Start_Time.Date == dt.AddDays(1) && w.Start_Time.Hour == 8).First():new RPT_Turn_Daily(); item.TableEntities.Add(new ReqRpt004TableEntity() { Date = dt, Move = itemList.Sum(s => s.MoveQty), WIP = (dayWIP.WIP + 2 * nightWIP.WIP + nextWIP.WIP) / 4.0 }); dt = dt.AddDays(1); } } //Set DailyTotalTurn int totalMove = 0; double totalWip = 0; for (int i = 0; i < 31; i++) { int move = 0; double wip = 0; foreach (var item in TableRowEntities) { move += item.TableEntities[i].Move; wip += item.TableEntities[i].WIP; } DailyTotalTurn.Add(wip == 0?"0.00":(move / wip).ToString("0.00")); totalMove += move; totalWip += wip; } DailyTotalTurn.Add(totalWip == 0 ? "0.00" : (totalMove / totalWip).ToString("0.00")); }
private void Initialize() { if (string.IsNullOrEmpty(RecivePostModel.LotTypes)) { throw new Exception("没有选择LotType"); } if (string.IsNullOrEmpty(RecivePostModel.Departments)) { throw new Exception("没有选择Department"); } if (From > To) { throw new Exception("时间范围错误"); } DB2Helper db2 = new DB2Helper(); string sql = "select code_id, code_id || '(' || description || ')' as reason from mmview.frcode where category_id ='WaferScrap'"; db2.GetSomeData(sql); foreach (DataRow dr in db2.dt.Rows) { Reason_Desc.Add(dr["code_id"].ToString(), dr["reason"].ToString()); } var list = RecivePostModel.Departments.Split(',').ToList(); ReqRpt023TableEntity BadWaferEntity = new ReqRpt023TableEntity() { Department = "BadWafer", Reasons_Pcs = GetNewReasons_Pcs() }; if (list.Where(w => w.Substring(0, 2) == "WC").Count() > 0) { Entities.Add(BadWaferEntity); } dB2Data.Conditions = string.Format("where scrap_time between '{3}' and '{4}' and bank_id in('{0}') and lot_type in ('{1}') and prodspec_id like '%{2}%'", string.Join("','", list), string.Join("','", LotTypes), Production, strFrom, strTo); var db2Entity = dB2Data.GetEntities(); foreach (string item in list) { //BadWafer处理 if (item.Substring(0, 2) == "WC") { var Badfilter = db2Entity.EntityList.Where(w => w.Bank_ID == item); foreach (string str in Reason_Desc.Keys) { BadWaferEntity.Reasons_Pcs[str] += Badfilter.Where(w => w.Reason_Code == str).Sum(s => s.Qty); } continue; } //非badwafer ReqRpt023TableEntity entity = new ReqRpt023TableEntity() { Department = ReqRpt024MainViewModel.Departments.Where(w => w.Value == item).FirstOrDefault().Key, Reasons_Pcs = GetNewReasons_Pcs() }; var filter = db2Entity.EntityList.Where(w => w.Bank_ID == item); foreach (string str in Reason_Desc.Keys) { entity.Reasons_Pcs[str] = filter.Where(w => w.Reason_Code == str).Sum(s => s.Qty); } Entities.Add(entity); } TotalEntity.Reasons_Pcs = GetNewReasons_Pcs(); foreach (string str in Reason_Desc.Keys) { TotalEntity.Reasons_Pcs[str] = Entities.Sum(s => s.Reasons_Pcs[str]); } }
public void GetData() { DB2Helper dB2 = new DB2Helper(); //获取PD信息,为Inline的Step赋值 dB2.GetSomeData("select distinct mainpd_id,pd_id,ope_no from istrpt.fvace_wip_pdhis_v2 "); foreach (DataRow dr in dB2.dt.Rows) { try { PDModel model = new PDModel(); model.MainPD_ID = dr["MainPD_ID"].ToString(); model.PD_ID = dr["PD_ID"].ToString(); model.OPE_NO = dr["OPE_NO"].ToString(); PDModels.Add(model); } catch (Exception) { } } dB2.GetSomeData(sql); double d = 0; if (dB2.dt.Rows.Count == 0) { throw new NoQueryDataException("没有新的Inline数据"); } //DB2中获取的DateTable转换为类 foreach (DataRow dr in dB2.dt.Rows) { try { InlineDBEntity entity = new InlineDBEntity(); if (double.TryParse(dr["DCITEM_VALUE"].ToString(), out d)) { entity.DCItemValue = d; } else { continue; } entity.ClaimTime = (DateTime)dr["Claim_Time"]; entity.Lot = dr["Lot"].ToString(); entity.SourceLot = dr["SourceLot"].ToString(); entity.Technology = dr["Technology"].ToString(); entity.Product = dr["Product"].ToString(); entity.LotType = dr["Lotype"].ToString(); entity.Owner = dr["Owner"].ToString(); entity.MeasRoute = dr["MeasRoute"].ToString(); entity.MeasRouteVer = dr["MeasRouteVer"].ToString(); entity.MeasItem = dr["MeasItem"].ToString(); entity.MeasTime = (DateTime)dr["MeasTime"]; entity.MeasOperator = dr["MeasOperator"].ToString(); entity.MeasEquipment = dr["MeasEquipment"].ToString(); entity.MeasRecipe = dr["MeasRecipe"].ToString(); entity.ProcRoute = dr["ProcRoute"].ToString(); entity.ProcRouteVer = dr["ProcRouteVer"].ToString(); //entity.ProcStep = dr["ProcStep"].ToString(); var temp = PDModels.Where(w => w.Route == entity.MeasRoute && w.OPE_NO == dr["MeasStep"].ToString()).FirstOrDefault(); entity.MeasStep = temp == null ? dr["MeasStep"].ToString() : temp.Step; temp = PDModels.Where(w => w.Route == entity.ProcRoute && w.OPE_NO == dr["ProcStep"].ToString()).FirstOrDefault(); entity.ProcStep = temp == null ? dr["ProcStep"].ToString() : temp.Step; if (dr["ProcTime"] == DBNull.Value) { entity.ProcTime = null; } else { entity.ProcTime = (DateTime)dr["ProcTime"]; } entity.ProcOperatorUser = dr["PROCOPERATORUSER"].ToString(); entity.ProcEquipment = dr["PROCEQUIPMENT"].ToString(); entity.ProcRecipe = dr["ProcRecipe"].ToString(); entity.ProcReticle = dr["ProcReticle"].ToString(); entity.MeasType = dr["Meas_Type"].ToString(); entity.WaferSeq = dr["Wafer_Seq"].ToString().Trim(); entity.WaferPosition = dr["WAFER_POSITION"].ToString().Trim(); entity.SitePosition = dr["Site_Position"].ToString(); entity.Target = dr["Target"].ToString(); entity.SpecLow = dr["SpecLow"].ToString(); entity.SpecHigh = dr["SpecHigh"].ToString(); entity.CtrlLow = dr["CtrlLow"].ToString(); entity.CtrlHigh = dr["CtrlHigh"].ToString(); entity.ProcStepDesc = dr["PROCSTEPDESC"].ToString().Replace("\n", ""); entity.MeasDcdefID = dr["Meas_Dcdef_ID"].ToString(); entity.ItemType = dr["Item_Type"].ToString(); inlineDBEntities.Add(entity); } catch (Exception e) { LogHelper.ErrorLog(string.Format("InlineError InlineEntityGroup.GetData() ClaimTime:{0},Lot:{1}。", dr["Claim_Time"].ToString(), dr["Lot"].ToString()), e); } } //对wafer_seq为空或者为*号的数据去取相似案例的数据 foreach (InlineDBEntity entity in inlineDBEntities) { if (entity.CollectedType == InlineDBEntity.CollectedTypes.L) { continue; } try { //Raw情况,暂未考虑WaferSeq为空的情况. if (entity.ItemType == "Raw" && entity.WaferSeq == "*") { var likelyEntity = GetLikelyEntity(entity); entity.WaferSeq = likelyEntity.WaferSeq; } //Derived情况 if (entity.ItemType == "Derived") { var likelyEntity = GetRawEntityOfDerived(entity); entity.WaferSeq = likelyEntity.WaferSeq; entity.SourceLot = likelyEntity.SourceLot; entity.Technology = likelyEntity.Technology; entity.Product = likelyEntity.Product; entity.LotType = likelyEntity.LotType; entity.Owner = likelyEntity.Owner; entity.MeasOperator = likelyEntity.MeasOperator; entity.MeasRecipe = likelyEntity.MeasRecipe; entity.ProcRoute = likelyEntity.ProcRoute; entity.ProcRouteVer = likelyEntity.ProcRouteVer; entity.ProcStep = likelyEntity.ProcStep; entity.ProcTime = likelyEntity.ProcTime; entity.ProcOperatorUser = likelyEntity.ProcOperatorUser; entity.ProcEquipment = likelyEntity.ProcEquipment; entity.ProcRecipe = likelyEntity.ProcRecipe; } /* * else if (string.IsNullOrEmpty(entity.Product) && entity.ItemType == "Derived") * { * InlineDBEntity likelyEntity = GetLikelyEntity(entity); * entity.WaferSeq = likelyEntity.WaferSeq; * entity.SourceLot = likelyEntity.SourceLot; * entity.Technology = likelyEntity.Technology; * entity.Product = likelyEntity.Product; * entity.LotType = likelyEntity.LotType; * entity.Owner = likelyEntity.Owner; * entity.MeasOperator = likelyEntity.MeasOperator; * entity.MeasRecipe = likelyEntity.MeasRecipe; * entity.ProcRoute = likelyEntity.ProcRoute; * entity.ProcRouteVer = likelyEntity.ProcRouteVer; * entity.ProcStep = likelyEntity.ProcStep; * entity.ProcTime = likelyEntity.ProcTime; * entity.ProcOperatorUser = likelyEntity.ProcOperatorUser; * entity.ProcEquipment = likelyEntity.ProcEquipment; * entity.ProcRecipe = likelyEntity.ProcRecipe; * } * * else if (entity.WaferSeq == "*") * { * InlineDBEntity likelyEntity = GetLikelyEntity(entity); * entity.WaferSeq = likelyEntity.WaferSeq; * } */ } catch (Exception e) { LogHelper.ErrorLog("InlineEntityGroup.cs Error! ", e); } } //获取DCM坐标信息 var lotList = inlineDBEntities.Select(s => s.Lot).Distinct(); string conditon = lotList.Count() < 15? string.Format("where lotid in ('{0}')", string.Join("','", lotList)):""; string dcmSql = string.Format("select lotid,eqpid,measuredatacount,recipe,coordinate,newdate from istrpt.fvace_inline_dcm_last {0}", conditon); dB2.GetSomeData(dcmSql); foreach (DataRow dr in dB2.dt.Rows) { try { InlineDCMEntity dcm = new InlineDCMEntity(); dcm.LotID = dr["LotID"].ToString(); dcm.EQPID = dr["EQPID"].ToString(); dcm.MeasureDataCount = Convert.ToInt16(dr["MeasureDataCount"].ToString()); dcm.Recipe = dr["Recipe"].ToString(); dcm.Coordinate = dr["Coordinate"].ToString(); dcm.NewDate = (DateTime)dr["NewDate"]; DCMEntities.Add(dcm); } catch (Exception ex) { LogHelper.ErrorLog(string.Format("InlineError InlineEntityGroup.GetData()从DCM中获取坐标错误 NewDate:{0},LotID:{1}", dr["NewDate"].ToString(), dr["LotID"].ToString()), ex); } } }
//取消Chamber方案 //private string Sql_Chamber //{ // get // { // string sqltemp = string.Format("select * from ISTRPT.Fvace_Chamber_Base where MoveOutTime > '{0}' and MoveOutTime <= '{1}'", startTimeStamp, endTimeStamp); // return sqltemp; // } //} public void GetData() { DB2Helper dB2 = new DB2Helper(); dB2.GetSomeData(Sql_WIP); if (dB2.dt.Rows.Count == 0) { throw new NoQueryDataException("没有新的WIP数据产生"); } foreach (DataRow dr in dB2.dt.Rows) { WIPDbEntity wipDbEntity = new WIPDbEntity { Lot_ID = dr["Lot_ID"].ToString(), // Fab = dr["Fab"].ToString(), Slot = dr["Slot"].ToString(), Technology = dr["Technology"].ToString(), Product = dr["Product"].ToString(), Lot_Type = dr["Lot_Type"].ToString(), RouteVersion = dr["RouteVersion"].ToString(), Stage_ID = dr["Stage_ID"].ToString(), Route = dr["Route"].ToString(), Step = dr["Step"].ToString(), Sequence = dr["Sequence"].ToString(), Version_ID = dr["Version_ID"].ToString(), Description = dr["Description"].ToString(), EQP_ID = dr["Eqp_ID"].ToString(), EquipmentGroup = dr["EquipmentGroup"].ToString(), MoveInTime = (DateTime)dr["MoveInTime"], MoveInWaferCount = ((int?)dr["MoveInWaferCount"]).HasValue ? ((int?)dr["MoveInWaferCount"]).Value : 0, MoveInOperator = dr["MoveInOperator"].ToString(), MoveOutTime = (DateTime)dr["MoveOutTime"], MoveOutWaferCount = dr["MoveOutWaferCount"] == DBNull.Value ? 0 : (int)dr["MoveOutWaferCount"], MoveOutOperator = dr["MoveOutOperator"].ToString(), Reticle = dr["Reticle"] == DBNull.Value ? "" : dr["Reticle"].ToString(), Recipe = dr["Recipe"].ToString(), BatchID = ((int?)dr["BatchID"]) ?? 0, QueueTime = dr["QueueTime"] == DBNull.Value ? 0 : (int)dr["QueueTime"], Owner = dr["Owner"].ToString(), CustomerCode = dr["CustomerCode"].ToString(), LotStatus = dr["LotStatus"].ToString(), CarrierID = dr["CarrierID"].ToString(), WafeList = dr["WafeList"].ToString() }; WIPDbEntities.Add(wipDbEntity); } //取消Chamber的方案 //dB2.GetSomeData(Sql_Chamber); //foreach (DataRow dr in dB2.dt.Rows) //{ // ChamberDBViewEntity chamberDB = new ChamberDBViewEntity() // { // Eqp_ID = dr["Eqp_ID"].ToString(), // Lot_ID = dr["Lot_ID"].ToString(), // MainPD_ID = dr["MainPD_ID"].ToString(), // Stage_ID = dr["Stage_ID"].ToString(), // Ope_No = dr["Ope_NO"].ToString(), // Ope_Pass_Count = (int)dr["Ope_Pass_Count"], // Procrsc_ID = dr["Procrsc_ID"].ToString(), // Wafer_ID = dr["Wafer_ID"].ToString(), // Slot=dr["Slot"].ToString(), // Technology=dr["Technology"].ToString(), // Product=dr["Product"].ToString(), // Lot_type=dr["Lot_Type"].ToString(), // PD_ID=dr["PD_ID"].ToString(), // Version_ID=dr["Version_ID"].ToString(), // Description=dr["Description"].ToString(), // EquipmentGroup=dr["EquipmentGroup"].ToString(), // MoveInTime=(DateTime)dr["MoveInTime"], // MoveOutTime=(DateTime)dr["MoveOutTime"], // MoveInOperator=dr["MoveInOperator"].ToString(), // MoveOutOperator=dr["MoveOutOperator"].ToString(), // Reticle=dr["Reticle"]==DBNull.Value?"": dr["Reticle"].ToString(), // Recipe=dr["Recipe"].ToString(), // Owner=dr["Owner"].ToString(), // Cast_ID=dr["Cast_ID"].ToString() // }; // ChamberDBViewEntities.Add(chamberDB); //} }