/// <summary> /// 建立vCHECKs模型 /// </summary> /// <param name="CheckDate">檢核日期</param> /// <param name="Shift">班別代號</param> /// <returns></returns> private vCHECKs GenChecks(string CheckDate, string Shift) { //初始化系統參數 Configer.Init(); //Log記錄用 SYSTEMLOG SL = new SYSTEMLOG(); SL.UId = Session["UserID"].ToString(); SL.Controller = "Process"; SL.Action = "GenChecks"; SL.StartDateTime = DateTime.Now; string MailServer = Configer.MailServer; int MailServerPort = Configer.MailServerPort; string MailSender = Configer.MailSender; List <string> MailReceiver = Configer.MailReceiver; try { //組合vCHECKs var CP = context.CHECKPROCESSES.Where(b => b.CheckDate == CheckDate).ToList(); vCHECKs vCs = new vCHECKs(); vCHECKPROCESS[] vCPList = new vCHECKPROCESS[CP.Count()]; int i = 0; foreach (var item in CP) { vCHECKPROCESS vCP = new vCHECKPROCESS(); vCP = GetProcess(item.CheckSN, item.CheckDate, item.CheckID, Shift); vCPList[i] = vCP; i++; } vCs.vCHECKPROCESS = vCPList.ToList(); SL.EndDateTime = DateTime.Now; SL.TotalCount = 1; SL.SuccessCount = 1; SL.FailCount = 0; SL.Result = true; SL.Msg = "建立[" + CheckDate + "]值班人員主畫面資料作業成功"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(vCs); } catch (Exception ex) { SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = false; SL.Msg = "建立[" + CheckDate + "]值班人員主畫面資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } }
public ActionResult Detail(string CheckSN, string CheckDate) { //初始化系統參數 Configer.Init(); //Log記錄用 SYSTEMLOG SL = new SYSTEMLOG(); SL.UId = Session["UserID"].ToString(); SL.Controller = "Review"; SL.Action = "Detail"; SL.StartDateTime = DateTime.Now; string MailServer = Configer.MailServer; int MailServerPort = Configer.MailServerPort; string MailSender = Configer.MailSender; List <string> MailReceiver = Configer.MailReceiver; try { vCHECKPROCESS vCP = GetProcess(CheckSN, CheckDate); if (vCP != null) { SL.EndDateTime = DateTime.Now; SL.TotalCount = 1; SL.SuccessCount = 1; SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]明細作業成功"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(View(vCP)); } else { //沒有檢核項目錯誤 SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]明細作業失敗,查無明細資料"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } } catch (Exception ex) { SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = false; SL.Msg = "取得[" + CheckSN + "]明細作業失敗," + "錯誤訊息[" + ex.ToString() + "]"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } }
/// <summary> /// 取得vCHECKPROCESS模型 /// </summary> /// <param name="CheckSN">檢核編號</param> /// <param name="CheckDate">檢核日期</param> /// <param name="CheckID">檢核項目代號</param> /// <param name="Shift">班別代號</param> /// <returns></returns> private vCHECKPROCESS GetProcess(string CheckSN, string CheckDate, int CheckID, string Shift) { //初始化系統參數 Configer.Init(); //Log記錄用 SYSTEMLOG SL = new SYSTEMLOG(); SL.UId = Session["UserID"].ToString(); SL.Controller = "Process"; SL.Action = "GetProcess"; SL.StartDateTime = DateTime.Now; string MailServer = Configer.MailServer; int MailServerPort = Configer.MailServerPort; string MailSender = Configer.MailSender; List <string> MailReceiver = Configer.MailReceiver; try { vCHECKPROCESS vCP = new vCHECKPROCESS(); vCP.CheckSN = CheckSN; vCP.CheckDate = CheckDate; CHECKTITLE CT = context.CHECKTITLES.Find(CheckID); vCP.Title = CT.Title; vCP.CheckID = CT.CheckID; var query = from cp in context.CHECKPROCESSES where cp.CheckSN == CheckSN where cp.CheckDate == CheckDate join cl in context.CHECKLISTS on cp.CheckID equals cl.CheckID join cd in context.CHECKPROCESSDETAILS.Where(b => b.CheckDate == CheckDate) on cl.ListID equals cd.ListID into x from y in x.DefaultIfEmpty() select new vCHECKDETAIL { ListID = cl.ListID, CheckID = cl.CheckID, ListName = cl.ListName, CheckType = cl.CheckType, Shift = cl.ShiftID, Charger = cl.ChargerID, StartTime = cl.StartTime, EndTime = cl.EndTime, CheckResult = y.CheckResult, CloseStatus = cp.CloseStutus }; if (query.Count() > 0) { //根據班別挑出檢核項目 var Shifts = new string[] { "00", Shift }; query = query.Where(b => Shifts.Contains(b.Shift)); //取得特定角色下的使用者清單 int RId = Convert.ToInt32(Session["UserRole"].ToString()); //只有OPManager角色需要處理 if (RId == 3) { //依據負責人挑出檢核項目 var Users = context.EPSUSERS.Where(b => b.RId == RId).Select(b => b.UId).ToList(); SF.logandshowInfo("Users:" + Users.ToString(), log_Info); int C = query.Where(b => Users.Contains(b.Charger)).Count(); SF.logandshowInfo("C:" + C.ToString(), log_Info); if (C > 0) { query = query.Where(b => Users.Contains(b.Charger)); } } vCP.vCHECKDETAILs = query.OrderBy(b => b.StartTime).ToList(); SL.EndDateTime = DateTime.Now; SL.TotalCount = query.Count(); SL.SuccessCount = query.Count(); SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]檢核流程作業成功"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(vCP); } else { //沒有檢核項目錯誤 SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]檢核流程作業失敗,沒有對應檢核項目"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } } catch (Exception ex) { SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = false; SL.Msg = "取得[" + CheckSN + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } }
/// <summary> /// 取得vCHECKPROCESS模型 /// </summary> /// <param name="CheckSN">檢核編號</param> /// <param name="CheckDate">檢核日期</param> /// <returns></returns> private vCHECKPROCESS GetProcess(string CheckSN, string CheckDate) { //初始化系統參數 Configer.Init(); //Log記錄用 SYSTEMLOG SL = new SYSTEMLOG(); SL.UId = Session["UserID"].ToString(); SL.Controller = "Review"; SL.Action = "GetProcess"; SL.StartDateTime = DateTime.Now; string MailServer = Configer.MailServer; int MailServerPort = Configer.MailServerPort; string MailSender = Configer.MailSender; List <string> MailReceiver = Configer.MailReceiver; try { vCHECKPROCESS vCP = new vCHECKPROCESS(); vCP.CheckSN = CheckSN; vCP.CheckDate = CheckDate; int CheckID = context.CHECKPROCESSES.Find(CheckSN).CheckID; CHECKTITLE CT = context.CHECKTITLES.Find(CheckID); vCP.Title = CT.Title; var query = from cp in context.CHECKPROCESSES where cp.CheckSN == CheckSN where cp.CheckDate == CheckDate join cd in context.CHECKPROCESSDETAILS.Where(b => b.CheckDate == CheckDate) on cp.CheckID equals cd.CheckID join cl in context.CHECKLISTS on cd.ListID equals cl.ListID into x from y in x.DefaultIfEmpty() select new vCHECKDETAIL { ListID = y.ListID, CheckID = y.CheckID, ListName = y.ListName, CheckType = y.CheckType, Shift = y.ShiftID, StartTime = y.StartTime, EndTime = y.EndTime, CheckResult = cd.CheckResult, CloseStatus = cp.CloseStutus }; if (query.Count() > 0) { //根據班別挑出檢核項目 //var Shifts = new string[] { "00", Shift }; //query = query.Where(b => Shifts.Contains(b.Shift)); vCP.vCHECKDETAILs = query.OrderBy(b => b.StartTime).ToList(); SL.EndDateTime = DateTime.Now; SL.TotalCount = query.Count(); SL.SuccessCount = query.Count(); SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]檢核流程作業成功"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(vCP); } else { //沒有檢核項目錯誤 SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = true; SL.Msg = "取得[" + CheckSN + "]檢核流程作業失敗,沒有對應檢核項目"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } } catch (Exception ex) { SL.EndDateTime = DateTime.Now; SL.TotalCount = 0; SL.SuccessCount = 0; SL.FailCount = 0; SL.Result = false; SL.Msg = "取得[" + CheckSN + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]"; SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver); return(null); } }