Exemplo n.º 1
0
        /// <summary>
        /// 根據工號檢查密碼是否正確
        /// </summary>
        /// <param name="Station"></param>
        /// <param name="Input"></param>
        /// <param name="Paras"></param>
        public static void EmpPasswordChecker(MESPubLab.MESStation.MESStationBase Station, MESPubLab.MESStation.MESStationInput Input, List <R_Station_Action_Para> Paras)
        {
            if (Paras.Count != 2)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000050"));
            }
            MESStationSession sessionEmp = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY);

            if (sessionEmp == null || sessionEmp.Value == null)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE }));
            }
            MESStationSession sessionPwd = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY);

            if (sessionPwd == null || sessionPwd.Value == null)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[1].SESSION_TYPE }));
            }
            T_c_user   t_c_user = new T_c_user(Station.SFCDB, Station.DBType);
            Row_c_user rowUser  = t_c_user.getC_Userbyempno(sessionEmp.Value.ToString(), Station.SFCDB, Station.DBType);

            if (rowUser == null)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180620163103", new string[] { sessionEmp.Value.ToString() }));
            }
            if (!rowUser.EMP_PASSWORD.Equals(sessionPwd.Value.ToString()))
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180813154717", new string[] { sessionEmp.Value.ToString() }));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 刪除用戶信息
        /// </summary>
        public void DeleteInformation(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb     = null;
            string   DeleteSql = "";
            string   strid     = "";
            T_c_user DeleteInformation;

            Newtonsoft.Json.Linq.JArray ID = (Newtonsoft.Json.Linq.JArray)Data["ID"];
            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                sfcdb.BeginTrain();
                DeleteInformation = new T_c_user(sfcdb, DBTYPE);
                for (int i = 0; i < ID.Count; i++)
                {
                    strid = ID[i].ToString();
                    Row_c_user row = (Row_c_user)DeleteInformation.GetObjByID(strid, sfcdb);
                    DeleteSql += row.GetDeleteString(DBTYPE) + ";\n";
                }
                DeleteSql = "begin\n" + DeleteSql + "end;";
                sfcdb.ExecSQL(DeleteSql);
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000004";
                sfcdb.CommitTrain();
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                sfcdb.RollbackTrain();
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 根据页面传进来的每页数据行数加載出最大页数
        /// </summary>
        public void GetMaxPage(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec             sfcdb = null;
            T_c_user            LoadUsetInfo;
            List <c_user_model> LoadUsetInfolsit = new List <c_user_model>();
            string r       = Data["PageRow"].ToString() == "" ? "10" : Data["PageRow"].ToString();
            string emp_no  = Data["Emp_No"].ToString();
            int    PageRow = Convert.ToInt32(r == "0" ? "10" : r);
            int    MaxPage;

            try
            {
                sfcdb        = this.DBPools["SFCDB"].Borrow();
                LoadUsetInfo = new T_c_user(sfcdb, DBTYPE);
                MaxPage      = LoadUsetInfo.CheckMaxPage(PageRow, emp_no, sfcdb);

                StationReturn.Status  = StationReturnStatusValue.Pass;
                StationReturn.Message = "获取页数成功";
                StationReturn.Data    = MaxPage;
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 取回用戶密碼
        /// </summary>
        public void GetPassword(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb = null;
            T_c_user GetPassword;
            string   EMP_NO = Data["EMP_NO"].ToString();
            Dictionary <string, string> dic = new Dictionary <string, string>();

            try
            {
                sfcdb       = this.DBPools["SFCDB"].Borrow();
                GetPassword = new T_c_user(sfcdb, DBTYPE);
                Row_c_user row = (Row_c_user)GetPassword.NewRow();
                row = GetPassword.getC_Userbyempno(EMP_NO, sfcdb, this.DBTYPE);

                if (row != null)
                {
                    ///缺發送EMAIL 或者短信功能
                    dic.Add("EMP_PASSWORD", row.EMP_PASSWORD.ToString());
                    StationReturn.MessageCode = "MES00000015";
                    StationReturn.Data        = dic;
                }
                StationReturn.Status = StationReturnStatusValue.Pass;
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 登錄API
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void Login(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            string  EMP_NO  = Data["EMP_NO"].ToString();
            string  PWD     = Data["Password"].ToString();
            string  BU_NAME = Data["BU_NAME"].ToString();
            DataSet res     = new DataSet();

            Language = Data["Language"].ToString();
            MESReturnMessage.Language = Language;
            LoginReturn lr    = new LoginReturn();
            OleExec     SFCDB = _DBPools["SFCDB"].Borrow();

            T_c_user   GetLoginUser = new T_c_user(SFCDB, this.DBTYPE);
            Row_c_user rcu          = (Row_c_user)GetLoginUser.NewRow();

            rcu = GetLoginUser.getC_Userbyempno(EMP_NO, SFCDB, this.DBTYPE);
            if (rcu == null)
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000010";
                _DBPools["SFCDB"].Return(SFCDB);
                return;
            }
            c_user_info user_info = new c_user_info();

            user_info = GetLoginUser.GetLoginUser(EMP_NO, SFCDB);

            MESPubLab.MESStation.LogicObject.User lu = new MESPubLab.MESStation.LogicObject.User();
            if (PWD == rcu.EMP_PASSWORD)
            {
                lu.ID        = user_info.ID;
                lu.FACTORY   = user_info.FACTORY;
                lu.BU        = user_info.BU_NAME;
                lu.EMP_NO    = user_info.EMP_NO;
                lu.EMP_LEVEL = user_info.EMP_LEVEL;
                lu.DPT_NAME  = user_info.DPT_NAME;
                string token1     = DateTime.Now.ToString("yyyyMMddHHmmss");
                string token2     = rand.Next(100, 999).ToString();
                char[] TokenChars = (token1 + token2).ToArray();
                byte[] TokenBytes = Encoding.Default.GetBytes(TokenChars);
                string TokenBas64 = Convert.ToBase64String(TokenBytes);
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000009";
                LoginUser = lu;
                lr        = new LoginReturn()
                {
                    Token = TokenBas64, User_ID = LoginUser.EMP_NO, UserInfo = user_info
                };
            }
            else
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000010";
            }
            StationReturn.Data = lr;
            _DBPools["SFCDB"].Return(SFCDB);
        }
Exemplo n.º 6
0
        /// <summary>
        ///修改用戶密碼
        /// </summary>
        public void UpdatePassword(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb     = null;
            string   UpdateSql = "";
            T_c_user UserInformation;
            string   OldPwd    = Data["OLDPWD"].ToString();
            string   NewPwd    = Data["NEWPWD"].ToString();
            string   ConNewPwd = Data["CONNEWPWD"].ToString();

            try
            {
                sfcdb           = this.DBPools["SFCDB"].Borrow();
                UserInformation = new T_c_user(sfcdb, DBTYPE);
                Row_c_user row = (Row_c_user)UserInformation.GetObjByID(LoginUser.ID, sfcdb);

                if (OldPwd == row.EMP_PASSWORD)
                {
                    if (NewPwd == ConNewPwd)
                    {
                        row.ID           = LoginUser.ID;
                        row.EMP_PASSWORD = ConNewPwd;
                        row.EDIT_EMP     = LoginUser.EMP_NO;
                        row.EDIT_TIME    = GetDBDateTime();

                        UpdateSql = row.GetUpdateString(DBTYPE);
                        sfcdb.ExecSQL(UpdateSql);
                        StationReturn.Status  = StationReturnStatusValue.Pass;
                        StationReturn.Message = "密碼更新成功";
                        StationReturn.Data    = "";
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                    else
                    {
                        StationReturn.Status  = StationReturnStatusValue.Fail;
                        StationReturn.Message = "前後兩次輸入密碼不一致";
                        StationReturn.Data    = NewPwd + " <> " + ConNewPwd;
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                }
                else
                {
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "舊密碼不正確";
                    StationReturn.Data    = OldPwd;
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// REPAIR_CHECK_OUT權限檢查
        /// </summary>
        /// <param name="Station"></param>
        /// <param name="Input"></param>
        /// <param name="Paras"></param>
        public static void RepairOutEmpChecker(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras)
        {
            if (Paras.Count != 2)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000050"));
            }
            string type = Paras[0].VALUE.ToString().ToUpper();

            if (type == "")
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE }));
            }
            MESStationSession sessionEmp = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY);

            if (sessionEmp == null || sessionEmp.Value == null)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[1].SESSION_TYPE }));
            }
            //Vertiv SE&RE黃克喜要求只有指定人員才能掃入和接收REPAIR_CHECK_IN
            T_c_user    t_c_uer     = new T_c_user(Station.SFCDB, Station.DBType);
            Row_c_user  rowUser     = t_c_uer.getC_Userbyempno(sessionEmp.Value.ToString(), Station.SFCDB, Station.DBType);
            T_C_CONTROL t_c_control = new T_C_CONTROL(Station.SFCDB, Station.DBType);

            string[]      inEmp       = t_c_control.GetControlByName("REPAIR_CHECK_OUT_SEND", Station.SFCDB).CONTROL_VALUE.Split(',');
            string[]      receiveEmp  = t_c_control.GetControlByName("REPAIR_CHECK_OUT_RECEIVE", Station.SFCDB).CONTROL_VALUE.Split(',');
            List <string> inEmpList   = new List <string>(inEmp);
            List <string> receiveList = new List <string>(receiveEmp);

            if (rowUser == null)
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180620163103", new string[] { sessionEmp.Value.ToString() }));
            }
            if (type == "SEND")
            {
                if (inEmpList.Find(s => s == rowUser.EMP_NO) == null)
                {
                    throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180619155133", new string[] { rowUser.EMP_NO }));
                }
            }
            else if (type == "RECEIVE")
            {
                if (receiveList.Find(s => s == rowUser.EMP_NO) == null)
                {
                    throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180619154947", new string[] { rowUser.EMP_NO }));
                }
            }
            else
            {
                throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180607163531", new string[] { "Input" }));
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// 根據用戶等級獲取 部門信息
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void GetDepartmentListByEmpLevel(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec        sfcdb           = null;
            string         EmpLevel        = string.Empty;
            List <String>  DetpartmentList = new List <String>();
            T_C_DEPARTMENT detpartment;
            T_c_user       DptName;

            try
            {
                sfcdb       = this.DBPools["SFCDB"].Borrow();
                detpartment = new T_C_DEPARTMENT(sfcdb, DBTYPE);
                DptName     = new T_c_user(sfcdb, DBTYPE);
                if (LoginUser.EMP_LEVEL != "9" && LoginUser.EMP_LEVEL != "1")
                {
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "MES00000028";
                    StationReturn.Data    = "";
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
                else
                {
                    if (LoginUser.EMP_LEVEL == "9")
                    {
                        DetpartmentList = detpartment.GetDepartment(sfcdb);
                    }
                    else if (LoginUser.EMP_LEVEL == "1")
                    {
                        DetpartmentList = DptName.GetDptName(LoginUser.EMP_NO, sfcdb);
                    }
                    StationReturn.Status  = StationReturnStatusValue.Pass;
                    StationReturn.Message = "MES00000001";
                    StationReturn.Data    = DetpartmentList;
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 加載所有用戶列表
        /// </summary>
        public void LoadInformation(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec             sfcdb = null;
            T_c_user            LoadUsetInfo;
            List <c_user_model> LoadUsetInfolsit = new List <c_user_model>();
            string r         = Data["PageRow"].ToString() == "" ? "10" : Data["PageRow"].ToString();
            string i         = Data["PageCount"].ToString() == "" ? "1" : Data["PageCount"].ToString();
            int    PageRow   = Convert.ToInt32(r == "0" ? "10" : r);
            int    PageCount = Convert.ToInt32(i == "0" ? "1" : i);
            string emp_no    = Data["emp_no"].ToString();//需要查询人的工号
            int    MaxPage;

            try
            {
                sfcdb        = this.DBPools["SFCDB"].Borrow();
                LoadUsetInfo = new T_c_user(sfcdb, DBTYPE);
                MaxPage      = LoadUsetInfo.CheckMaxPage(PageRow, emp_no, sfcdb);
                if (MaxPage >= PageCount)
                {
                    LoadUsetInfolsit          = LoadUsetInfo.SelectUserInfo(PageRow, PageCount, emp_no, this.LoginUser.EMP_LEVEL, this.LoginUser.DPT_NAME, this.LoginUser.EMP_NO, this.LoginUser.FACTORY, this.LoginUser.BU, sfcdb);
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "MES00000017";
                    StationReturn.Data        = LoadUsetInfolsit;
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
                else
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000018";
                    StationReturn.MessagePara.Add(PageCount);
                    StationReturn.MessagePara.Add(MaxPage);
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 創建新用戶
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void RegisterNewUser(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb = null;
            T_c_user USER;

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                USER  = new T_c_user(sfcdb, DBTYPE);
                Row_c_user UserRow = (Row_c_user)USER.NewRow();
                UserRow.ID                   = USER.GetNewID(BU, sfcdb);
                UserRow.FACTORY              = Data["FACTORY"].ToString();
                UserRow.BU_NAME              = Data["BU_NAME"].ToString();
                UserRow.EMP_NO               = Data["EMP_NO"].ToString();
                UserRow.EMP_PASSWORD         = Data["EMP_PASSWORD"].ToString();
                UserRow.EMP_NAME             = Data["EMP_NAME"].ToString();
                UserRow.EMP_LEVEL            = "0";//Data["EMP_LEVEL"].ToString();///創建用戶默認全部為普通用戶 0表示普通用戶,1表示可編輯本部門角色權限的用戶,9表示後台管理,能操作權限相關的任何動作
                UserRow.DPT_NAME             = Data["DPT_NAME"].ToString();
                UserRow.POSITION_NAME        = Data["POSITION_NAME"].ToString();
                UserRow.MAIL_ADDRESS         = Data["MAIL_ADDRESS"].ToString().ToLower();
                UserRow.PHONE_NUMBER         = Data["PHONE_NUMBER"].ToString();
                UserRow.LOCATION             = Data["LOCATION"].ToString();
                UserRow.LOCK_FLAG            = "N";
                UserRow.AGENT_EMP_NO         = Data["AGENT_EMP_NO"].ToString();
                UserRow.CHANGE_PASSWORD_TIME = GetDBDateTime();
                UserRow.EMP_DESC             = Data["EMP_DESC"].ToString();
                UserRow.EDIT_TIME            = GetDBDateTime();
                UserRow.EDIT_EMP             = Data["EMP_NO"].ToString();
                UserRow.EMP_EN_NAME          = Data["EMP_EN_NAME"].ToString();

                if (Data["FACTORY"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "";
                    return;
                }

                if (Data["BU_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "廠別為空";
                    return;
                }

                if (Data["EMP_NO"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "工號為空";
                    return;
                }
                if (Data["DPT_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "所屬部門";
                    return;
                }

                if (Data["EMP_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "員工姓名為空";
                    return;
                }

                ///CHECK 用戶密碼
                string STRPWD = USER.CheckPWD(Data["EMP_PASSWORD"].ToString(), sfcdb);
                if (STRPWD != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRPWD;
                    return;
                }

                /// CHECK EMAIL地址
                string STRMAIL = USER.CheckMail(Data["MAIL_ADDRESS"].ToString().ToLower(), sfcdb);
                if (STRMAIL != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRMAIL;
                    return;
                }

                ///CHECK 電話號碼
                if (!USER.CheckPhone(Data["PHONE_NUMBER"].ToString(), sfcdb))
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "电话号码填寫格式不正確";
                    return;
                }

                DataTable userstr = new DataTable();
                userstr = USER.SelectC_Userbyempno(UserRow.EMP_NO, sfcdb, this.DBTYPE);
                if (userstr.Rows.Count != 0)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000012";
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
                else
                {
                    string strRet = sfcdb.ExecSQL(UserRow.GetInsertString(this.DBTYPE));

                    if (strRet == "1")
                    {
                        StationReturn.Status      = StationReturnStatusValue.Pass;
                        StationReturn.MessageCode = "MES00000013";
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                    else
                    {
                        StationReturn.Status      = StationReturnStatusValue.Fail;
                        StationReturn.MessageCode = "MES00000014";
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                }
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 11
0
        /// <summary>
        ///給用戶添加角色 INSERT C_USER_ROLE,并更新C_USER LEVEL_FLAG欄位的值 0表示普通用戶,1表示普通管理員,9 IT所有
        /// </summary>
        public void AddUserRolePrivilege(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec       sfcdb = null;
            string        InsertSql = "", UpdateSql = "";
            T_c_user_role UserRoler;
            T_c_user      EmpLevel;
            string        EMP_NO     = Data["EMP_NO"].ToString();
            string        LEVEL_FLAG = Data["LEVEL_FLAG"].ToString();

            //    string[] ROLE_ID = Data["ROLE_ID"].ToString().Trim('[').Trim(']').Split(',');
            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                sfcdb.BeginTrain();
                UserRoler = new T_c_user_role(sfcdb, DBTYPE);
                EmpLevel  = new T_c_user(sfcdb, DBTYPE);
                string USER_ID = UserRoler.GetUserID(EMP_NO, sfcdb);

                foreach (string item in Data["ROLE_ID"])
                {
                    string strroleid = item.Trim('\'').Trim('\"');
                    if (UserRoler.CheckUserRole(USER_ID, strroleid, sfcdb))
                    {
                        Row_c_user_role row = (Row_c_user_role)UserRoler.NewRow();
                        row.ID          = UserRoler.GetNewID(BU, sfcdb);
                        row.USER_ID     = USER_ID;
                        row.ROLE_ID     = strroleid;
                        row.EDIT_EMP    = LoginUser.EMP_NO;
                        row.SYSTEM_NAME = SystemName;
                        row.EDIT_TIME   = GetDBDateTime();
                        InsertSql      += row.GetInsertString(DBTYPE) + ";\n";
                    }
                    else
                    {
                        sfcdb.RollbackTrain();
                        StationReturn.Status  = StationReturnStatusValue.Fail;
                        StationReturn.Message = "該用戶已擁有該角色";
                        StationReturn.Data    = "";
                        this.DBPools["SFCDB"].Return(sfcdb);
                        return;
                    }
                }

                InsertSql = "begin\n" + InsertSql + "end;";
                sfcdb.ExecSQL(InsertSql);

                if (EmpLevel.CheckEmpLevel(USER_ID, LEVEL_FLAG, sfcdb))
                {
                    Row_c_user RowLevel = (Row_c_user)EmpLevel.GetObjByID(USER_ID, sfcdb);
                    RowLevel.ID        = USER_ID;
                    RowLevel.EMP_LEVEL = LEVEL_FLAG;
                    RowLevel.EDIT_EMP  = LoginUser.EMP_NO;
                    RowLevel.EDIT_TIME = GetDBDateTime();

                    UpdateSql = RowLevel.GetUpdateString(DBTYPE);
                    sfcdb.ExecSQL(UpdateSql);
                }

                sfcdb.CommitTrain();
                StationReturn.Status  = StationReturnStatusValue.Pass;
                StationReturn.Message = "添加成功";
                sfcdb.CommitTrain();
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                sfcdb.RollbackTrain();
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// 更新用戶信息
        /// </summary>
        public void UpdateInformation(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb     = null;
            string   UpdateSql = "";
            T_c_user GetInformation;
            string   ID            = Data["ID"].ToString();
            string   FACTORY       = Data["FACTORY"].ToString();
            string   BU_NAME       = Data["BU_NAME"].ToString();
            string   EMP_NO        = Data["EMP_NO"].ToString();
            string   EMP_PASSWORD  = Data["EMP_PASSWORD"].ToString();
            string   EMP_NAME      = Data["EMP_NAME"].ToString();
            string   DPT_NAME      = Data["DPT_NAME"].ToString();
            string   POSITION_NAME = Data["POSITION_NAME"].ToString();
            string   MAIL_ADDRESS  = Data["MAIL_ADDRESS"].ToString();
            string   PHONE_NUMBER  = Data["PHONE_NUMBER"].ToString();
            string   LOCATION      = Data["LOCATION"].ToString();
            string   AGENT_EMP_NO  = Data["AGENT_EMP_NO"].ToString();
            string   EMP_DESC      = Data["EMP_DESC"].ToString();
            string   EMP_EN_NAME   = Data["EMP_EN_NAME"].ToString();

            try
            {
                sfcdb          = this.DBPools["SFCDB"].Borrow();
                GetInformation = new T_c_user(sfcdb, DBTYPE);
                Row_c_user row = (Row_c_user)GetInformation.GetObjByID(Data["ID"].ToString(), sfcdb);
                row.ID                   = ID;
                row.FACTORY              = FACTORY;
                row.BU_NAME              = BU_NAME;
                row.EMP_NO               = EMP_NO;
                row.EMP_PASSWORD         = EMP_PASSWORD;
                row.EMP_NAME             = EMP_NAME;
                row.DPT_NAME             = DPT_NAME;
                row.POSITION_NAME        = POSITION_NAME;
                row.MAIL_ADDRESS         = MAIL_ADDRESS;
                row.PHONE_NUMBER         = PHONE_NUMBER;
                row.LOCATION             = LOCATION;
                row.AGENT_EMP_NO         = AGENT_EMP_NO;
                row.EMP_DESC             = EMP_DESC;
                row.EMP_EN_NAME          = EMP_EN_NAME;
                row.EDIT_TIME            = GetDBDateTime();
                row.CHANGE_PASSWORD_TIME = GetDBDateTime();

                ///CHECK 用戶密碼
                string STRPWD = GetInformation.CheckPWD(EMP_PASSWORD, sfcdb);
                if (STRPWD != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRPWD;
                    return;
                }

                /// CHECK EMAIL地址
                string STRMAIL = GetInformation.CheckMail(MAIL_ADDRESS.ToLower(), sfcdb);
                if (STRMAIL != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRMAIL;
                    return;
                }

                ///CHECK 電話號碼
                if (!GetInformation.CheckPhone(PHONE_NUMBER, sfcdb))
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "电话号码填寫格式不正確";
                    return;
                }

                UpdateSql = row.GetUpdateString(DBTYPE);
                sfcdb.ExecSQL(UpdateSql);
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000001";
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }