Ejemplo n.º 1
0
 public string SaveChanges(string jsonString)
 {
     try
     {
         JsonSerializerSettings st = new JsonSerializerSettings();
         st.DateTimeZoneHandling = DateTimeZoneHandling.Local;
         HRInfoEntity  entity  = JsonConvert.DeserializeObject <HRInfoEntity>(jsonString, st);
         HRInfoManager service = new HRInfoManager();
         if (entity.iGuid == "")
         {
             if (service.GetUniqueFirstOrDefault(entity.iItemName, entity.iCompany, entity.iEmpNo, entity.iIdCard) != null)
             {
                 return("已存在相同记录!");
             }
             entity.iCreatedBy = SessionHelper.CurrentUser.UserName;
             entity.iUpdatedBy = SessionHelper.CurrentUser.UserName;
             service.Insert(entity);
         }
         else
         {
             entity.iUpdatedBy = SessionHelper.CurrentUser.UserName;
             service.Update(entity);
         }
         return("success");
     }
     catch (Exception e)
     {
         return(e.ToString());
     }
 }
Ejemplo n.º 2
0
        public void Update(HRInfoEntity entity)
        {
            entity.iUpdatedOn = DateTime.Now;
            var        record  = ModifyRecord(entity);
            IDbSession session = SessionFactory.CreateSession();

            try
            {
                session.BeginTrans();
                Repository.Update <HRInfoEntity>(session.Connection, entity, session.Transaction);
                if (record != null)
                {
                    Repository.Insert <ModifyLogEntity>(session.Connection, record, session.Transaction);
                }
                session.Commit();
            }
            catch (System.Exception)
            {
                session.Rollback();
                throw;
            }
            finally
            {
                session.Dispose();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 插入一条记录
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public void Insert(HRInfoEntity entity)
        {
            if (string.IsNullOrEmpty(entity.iGuid))
            {
                entity.iGuid = Guid.NewGuid().ToString();
            }
            entity.iCreatedOn = DateTime.Now;
            entity.iUpdatedOn = DateTime.Now;
            entity.iIsDeleted = 0;
            entity.iStatus    = 1;
            IDbSession session = SessionFactory.CreateSession();

            try
            {
                session.BeginTrans();
                Repository.Insert <HRInfoEntity>(session.Connection, entity, session.Transaction);
                session.Commit();
            }
            catch (System.Exception)
            {
                session.Rollback();
                throw;
            }
            finally
            {
                session.Dispose();
            }
        }
Ejemplo n.º 4
0
        public ModifyLogEntity ModifyRecord(HRInfoEntity entity)
        {
            var oldEntity = GetFirstOrDefault(entity.iGuid);

            if (oldEntity == null)
            {
                return(null);
            }
            else
            {
                string modifiedContent = string.Empty;
                System.Reflection.PropertyInfo[] properties = entity.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);

                Dictionary <string, string> hrDicConvertTmp = ConvertHelper.DicConvert(hrDic);

                foreach (System.Reflection.PropertyInfo item in properties)
                {
                    string name = item.Name;
                    if (!hrDicConvertTmp[name].StartsWith("i"))
                    {
                        object value = item.GetValue(entity, null);
                        if (value == null)
                        {
                            value = "";
                        }
                        object valueOld = item.GetValue(oldEntity, null);
                        if (valueOld == null)
                        {
                            valueOld = "";
                        }
                        if (value.ToString() != valueOld.ToString() && (item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")))
                        {
                            modifiedContent += string.Format("{0}:[{1}]->[{2}] ;", hrDicConvertTmp[name], valueOld, value);
                        }
                    }
                }
                if (string.IsNullOrEmpty(modifiedContent))
                {
                    return(null);
                }
                modifiedContent = "基本信息:[" + entity.iName + "," + entity.iIdCard + "]" + modifiedContent;
                ModifyLogEntity en = new ModifyLogEntity();
                en.iId              = entity.iGuid;
                en.iModifiedBy      = entity.iUpdatedBy;
                en.iModifiedOn      = DateTime.Now;
                en.iModifiedContent = modifiedContent;
                en.iTableName       = "HRInfo";
                return(en);
            }
        }
Ejemplo n.º 5
0
        public DataTable HRInfo_Save(string pWorkingTag, HRInfoEntity _entity, string LoginID)
        {
            string spName = "PKHR_HRINFO.sp_HRInfo_Save";

            OracleParameter[] param = new OracleParameter[6];
            //param[0] = new OracleParameter("pWorkingTag", pWorkingTag);
            //param[1] = new OracleParameter("pEmpId", _entity.EmpId);
            //param[2] = new OracleParameter("pEmpNm", _entity.EmpNm);
            //param[3] = new OracleParameter("pDeptCd", _entity.DeptCd);
            //param[4] = new OracleParameter("pLoginID", LoginID);
            //param[5] = new OracleParameter("T_TABLE", OracleDbType.RefCursor) { Direction = ParameterDirection.Output };

            DataTable dt = DBHelper.getDataTable_SP(spName, param);

            return(dt);
        }
Ejemplo n.º 6
0
 public JsonResult GetHRInfo(string guid)
 {
     try
     {
         HRInfoManager service = new HRInfoManager();
         HRInfoEntity  entity  = service.GetFirstOrDefault(guid);
         return(new JsonResult {
             Data = new { success = true, msg = "msg", data = entity }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
         });
     }
     catch (Exception ex)
     {
         return(new JsonResult {
             Data = new { success = false, msg = ex.ToString() }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
         });
     }
 }
Ejemplo n.º 7
0
        private List <HRInfoEntity> ExcelSheetToEntityList(ISheet sheet, ref string errorLog)
        {
            string[] sexArray = { "男", "女" };
            string[] residencePropertyArray = { "农业户口", "非农业户口" };
            string[] bloodTypeArray         = { "A", "B", "AB", "O" };
            string[] marriageArray          = { "已婚", "未婚" };
            string[] yesnoArray             = { "是", "否" };
            string[] poliArray         = { "群众", "团员", "共产党员", "其它" };
            string[] eduArray          = { "小学", "初中", "中专", "高中", "大专", "本科", "硕士", "博士" };
            string[] empstaArray       = { "在职", "离职" };
            string[] contratypeArray   = { "派遣", "外包" };
            string[] resigntypeArray   = { "自离", "旷工", "辞职", "辞退", "开除" };
            string[] resignressonArray = { "身体原因", "工作原因", "家族原因", "其他" };
            string[] contractsignArray = { "一次签订", "二次签订", "三次签订", "否" };

            Dictionary <string, string[]> checkdic = new Dictionary <string, string[]>();

            checkdic.Add("性别$iSex", sexArray);
            checkdic.Add("户口性质$iResidenceProperty", residencePropertyArray);
            //checkdic.Add("血型$iBloodType", bloodTypeArray);
            checkdic.Add("婚姻状况$iMariage", marriageArray);
            checkdic.Add("体检$iHealthCheck|是否返费$iIsReturnFee|是否缴纳保险$iIsSocialInsurancePaid|是否缴纳公积金$iIsProvidentPaid|是否缴纳商业保险$iIsCommercialInsurancePaid", yesnoArray);
            checkdic.Add("合同签订情况$iContractSignStatus", contractsignArray);
            checkdic.Add("政治面貌$iPolitical", poliArray);
            checkdic.Add("文化水平$iEducationLevel", eduArray);
            checkdic.Add("员工状态$iEmployeeStatus", empstaArray);
            checkdic.Add("合同类型$iContractType", contratypeArray);
            checkdic.Add("离职类型$iResignType", resigntypeArray);
            checkdic.Add("离职原因(公司)$iResignReason", resignressonArray);

            DicManager    dm        = new DicManager();
            var           companies = dm.GetAllCompanies();
            var           projects  = dm.GetAllProjects();
            HRInfoManager service   = new HRInfoManager();

            List <HRInfoEntity> list = new List <HRInfoEntity>();

            Dictionary <string, string> keycolumnp = HRInfoManager.hrDic;
            Dictionary <string, int>    keycolumns = new Dictionary <string, int>();

            for (int co = 0; co < sheet.GetRow(0).LastCellNum; co++)
            {
                if (keycolumnp.ContainsKey(sheet.GetRow(0).GetCell(co).ToString().Trim()))
                {
                    keycolumns.Add(keycolumnp[sheet.GetRow(0).GetCell(co).ToString().Trim()], co);
                }
            }
            //遍历数据行
            for (int i = (sheet.FirstRowNum + 1), len = sheet.LastRowNum + 1; i < len; i++)
            {
                CompanyEntity currentCompany = null;
                ProjectEntity currentProject = null;

                HRInfoEntity en = new HRInfoEntity();
                try
                {
                    if (keycolumns.ContainsKey("iGuid"))
                    {
                        string iguid = sheet.GetRow(i).GetCell(keycolumns["iGuid"]).ToString();
                        if (!string.IsNullOrEmpty(iguid))
                        {
                            en = service.GetFirstOrDefault(iguid);
                        }
                    }
                    if (string.IsNullOrEmpty(en.iGuid))
                    {
                        string project = sheet.GetRow(i).GetCell(keycolumns["iItemName"]).ToString().Trim();
                        string company = sheet.GetRow(i).GetCell(keycolumns["iCompany"]).ToString().Trim();
                        string empcode = sheet.GetRow(i).GetCell(keycolumns["iEmpNo"]).ToString().Trim();
                        string idcard  = sheet.GetRow(i).GetCell(keycolumns["iIdCard"]).ToString().Trim();
                        currentCompany = companies.FirstOrDefault(pj => pj.iName == company);
                        currentProject = projects.FirstOrDefault(pj => pj.iName == project);
                        if (currentCompany == null || currentProject == null)
                        {
                            if (currentCompany == null)
                            {
                                errorLog += "第【" + (i + 1).ToString() + "】行公司名称不存在;";
                            }
                            if (currentProject == null)
                            {
                                errorLog += "第【" + (i + 1).ToString() + "】行项目名称不存在;";
                            }
                            if (SessionHelper.CurrentUser.UserType == "普通用户" && currentProject.iName != SessionHelper.CurrentUser.CurrentProject)
                            {
                                errorLog += "第【" + (i + 1).ToString() + "】行只能导入您当前所在的项目;";
                            }
                        }
                        else
                        {
                            en = service.GetUniqueFirstOrDefault(currentProject.iGuid, currentCompany.iGuid, empcode, idcard);
                            if (en == null)
                            {
                                en = new HRInfoEntity();
                            }
                        }
                    }
                }
                catch
                {
                    errorLog += "第【" + (i + 1).ToString() + "】行所在公司,工号,身份证号不能有缺失;";
                }


                foreach (var kvp in keycolumns)
                {
                    if (sheet.GetRow(i).GetCell(kvp.Value) == null || sheet.GetRow(i).GetCell(kvp.Value).ToString() == "")
                    {
                        //en.GetType().GetProperty(kvp.Key).SetValue(en, null, null);
                        //空的不填写,保持原数据不变
                    }
                    else
                    {
                        object value = null;
                        ICell  cell  = sheet.GetRow(i).GetCell(kvp.Value);
                        if (cell.CellType == CellType.Blank)
                        {
                            value = "";
                        }
                        else
                        {
                            string propertyName = en.GetType().GetProperty(kvp.Key).PropertyType.FullName.ToLower();
                            if (cell.CellType == CellType.Numeric && HSSFDateUtil.IsCellDateFormatted(cell))
                            {
                                try
                                {
                                    value = sheet.GetRow(i).GetCell(kvp.Value).DateCellValue;
                                }
                                catch (Exception ex)
                                {
                                    errorLog += "第【" + (i + 1).ToString() + "】行,第【" + (kvp.Value + 1).ToString() + "】列不是标准日期格式;";
                                }
                                if (!propertyName.Contains("datetime") && value != null)
                                {
                                    value = ((DateTime)value).ToString("yyyy-MM-dd");
                                }
                            }
                            else
                            {
                                value = sheet.GetRow(i).GetCell(kvp.Value).ToString().Trim();
                                if (propertyName.Contains("datetime") && value != null)
                                {
                                    DateTime dt = DateTime.Now;
                                    if (DateTime.TryParse(value.ToString(), out dt))
                                    {
                                        value = dt;
                                    }
                                    else
                                    {
                                        errorLog += "第【" + (i + 1).ToString() + "】行,第【" + (kvp.Value + 1).ToString() + "】列不是标准日期格式;";
                                    }
                                }
                            }
                        }
                        en.GetType().GetProperty(kvp.Key).SetValue(en, value, null);
                    }
                }
                if (currentProject != null)
                {
                    en.iItemName = currentProject.iGuid;
                }
                if (currentCompany != null)
                {
                    en.iCompany = currentCompany.iGuid;
                }

                if (SessionHelper.CurrentUser.UserType == "普通用户" && en.iItemName != SessionHelper.CurrentUser.CurrentProject)
                {
                    errorLog += "第【" + (i + 1).ToString() + "】行项目名称不正确,只能导入当前项目;";
                }
                if (string.IsNullOrEmpty(en.iEmpNo))
                {
                    errorLog += "第【" + (i + 1).ToString() + "】行工号不能为空,临时工用-;";
                }
                if (string.IsNullOrEmpty(en.iName))
                {
                    errorLog += "第【" + (i + 1).ToString() + "】行姓名不能为空;";
                }
                if (!CheckIDCard18(en.iIdCard))
                {
                    errorLog += "第【" + (i + 1).ToString() + "】行身份证号不合法;";
                }
                //是否有效校验

                foreach (var item in checkdic)
                {
                    foreach (var subitem in item.Key.Split('|'))
                    {
                        PropertyInfo property = en.GetType().GetProperty(subitem.Split('$')[1]);
                        if (property.GetValue(en, null) != null && property.GetValue(en, null).ToString() != "" && !item.Value.Contains(property.GetValue(en, null)))
                        {
                            errorLog += "第【" + (i + 1).ToString() + "】行" + subitem.Split('$')[0] + "不合法,只能输入【";
                            foreach (var value in item.Value)
                            {
                                errorLog += value + ",";
                            }
                            errorLog  = errorLog.TrimEnd(',');
                            errorLog += "】;";
                        }
                    }
                }
                list.Add(en);
            }
            return(list);
        }