Example #1
0
        /// <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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
            }
        }