Beispiel #1
0
        public override bool Create(SalaryDetailsEntity entity)
        {
            //在创建实体时如果实体的Guid尚未指定,那么给其赋初值
            if (entity.SalaryDetailsGuid == Guid.Empty)
            {
                entity.SalaryDetailsGuid = GuidHelper.NewGuid();
            }

            string commandText = string.Format(@"Insert Into [XQYCSalaryDetails] (
			    [SalaryDetailsGuid],
			    [SalarySummaryKey],
			    [SalaryItemKey],
			    [SalaryItemValue],
			    [SalaryItemKind],
                [SalaryItemCashDate],
			    [PropertyNames],
			    [PropertyValues]
            ) 
            Values (
			    {0}SalaryDetailsGuid,
			    {0}SalarySummaryKey,
			    {0}SalaryItemKey,
			    {0}SalaryItemValue,
			    {0}SalaryItemKind,
                {0}SalaryItemCashDate,
			    {0}PropertyNames,
			    {0}PropertyValues
            )", ParameterNamePrefix);

            TParameter[] sqlParas = PrepareParasAll(entity);

            bool isSuccessful = HelperExInstance.ExecuteSingleRowNonQuery(commandText, sqlParas);

            return(isSuccessful);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="entity"></param>
        protected override void InnerLoad(IDataReader reader, ref SalaryDetailsEntity entity)
        {
            if (reader != null && reader.IsClosed == false && entity != null)
            {
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryDetailsID"))
                {
                    entity.SalaryDetailsID = reader.GetInt32(reader.GetOrdinal("SalaryDetailsID"));
                }
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryDetailsGuid"))
                {
                    entity.SalaryDetailsGuid = reader.GetGuid(reader.GetOrdinal("SalaryDetailsGuid"));
                }
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalarySummaryKey"))
                {
                    entity.SalarySummaryKey = reader.GetString(reader.GetOrdinal("SalarySummaryKey"));
                }
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryItemKey"))
                {
                    entity.SalaryItemKey = reader.GetString(reader.GetOrdinal("SalaryItemKey"));
                }
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryItemValue"))
                {
                    entity.SalaryItemValue = reader.GetDecimal(reader.GetOrdinal("SalaryItemValue"));
                }
                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryItemKind"))
                {
                    entity.SalaryItemKind = (SalaryItemKinds)reader.GetInt32(reader.GetOrdinal("SalaryItemKind"));
                }

                if (DataReaderHelper.IsExistFieldAndNotNull(reader, "SalaryItemCashDate"))
                {
                    entity.SalaryItemCashDate = reader.GetDateTime(reader.GetOrdinal("SalaryItemCashDate"));
                }
            }
        }
Beispiel #3
0
        protected override void InnerPrepareParasAll(SalaryDetailsEntity entity, ref List <TParameter> paraList)
        {
            List <TParameter> list = new List <TParameter>()
            {
                GenerateParameter("SalaryDetailsID", entity.SalaryDetailsID),
                GenerateParameter("SalaryDetailsGuid", entity.SalaryDetailsGuid),
                GenerateParameter("SalarySummaryKey", entity.SalarySummaryKey ?? String.Empty),
                GenerateParameter("SalaryItemKey", entity.SalaryItemKey ?? String.Empty),
                GenerateParameter("SalaryItemCashDate", entity.SalaryItemCashDate),
                GenerateParameter("SalaryItemValue", entity.SalaryItemValue),
                GenerateParameter("SalaryItemKind", entity.SalaryItemKind)
            };

            paraList.AddRange(list);
        }
Beispiel #4
0
        public override bool Update(SalaryDetailsEntity entity)
        {
            string commandText = string.Format(@"Update [XQYCSalaryDetails] Set   
				    [SalaryDetailsGuid] = {0}SalaryDetailsGuid,
				    [SalarySummaryKey] = {0}SalarySummaryKey,
				    [SalaryItemKey] = {0}SalaryItemKey,
				    [SalaryItemValue] = {0}SalaryItemValue,
				    [SalaryItemKind] = {0}SalaryItemKind,
                    [SalaryItemCashDate] = {0}SalaryItemCashDate,
				    [PropertyNames] = {0}PropertyNames,
				    [PropertyValues] = {0}PropertyValues
            Where [SalaryDetailsID] = {0}SalaryDetailsID", ParameterNamePrefix);

            TParameter[] sqlParas = PrepareParasAll(entity);

            bool isSuccessful = HelperExInstance.ExecuteSingleRowNonQuery(commandText, sqlParas);

            return(isSuccessful);
        }
 /// <summary>
 /// 保存工资项明细项目(保存前指定其值和类型)
 /// </summary>
 /// <param name="cellValue"></param>
 /// <param name="salaryDetailsEntity"></param>
 /// <returns></returns>
 private static bool SetAndSaveSalaryDetailsItem(decimal salaryItemValue, SalaryDetailsEntity salaryDetailsEntity, SalaryItemKinds salaryItemKind)
 {
     salaryDetailsEntity.SalaryItemValue = salaryItemValue;
     salaryDetailsEntity.SalaryItemKind = salaryItemKind;
     return SalaryDetailsBLL.Instance.Create(salaryDetailsEntity);
 }
        public ActionResult SalaryDetails(SalaryDetailsEntity entity)
        {
            bool isSuccessful = false;
            SalaryDetailsEntity orignalEntity = SalaryDetailsEntity.Empty;
            if (entity.SalaryDetailsGuid == Guid.Empty)
            {
                isSuccessful = SalaryDetailsBLL.Instance.Create(entity);
            }
            else
            {
                orignalEntity = SalaryDetailsBLL.Instance.Get(entity.SalaryDetailsGuid, true);
                isSuccessful = SalaryDetailsBLL.Instance.Update(entity);
            }

            //同时需要修改salarySummary里面对应项的值
            if (isSuccessful == true && string.IsNullOrWhiteSpace(entity.SalarySummaryKey) == false)
            {
                SalarySummaryEntity salarySummaryEntity = SalarySummaryBLL.Instance.Get(entity.SalarySummaryKey);

                decimal itemValueDelta = entity.SalaryItemValue - orignalEntity.SalaryItemValue;
                switch (entity.SalaryItemKind)
                {
                    case SalaryItemKinds.BasicSalary:
                        salarySummaryEntity.SalaryGrossPay += itemValueDelta;
                        salarySummaryEntity.SalaryCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.Rewards:
                        salarySummaryEntity.SalaryGrossPay += itemValueDelta;
                        break;
                    case SalaryItemKinds.Rebate:
                        //确保扣费为负值
                        salarySummaryEntity.SalaryRebate += (0 - Math.Abs(itemValueDelta));
                        break;
                    case SalaryItemKinds.EnterpriseInsurance:
                        salarySummaryEntity.EnterpriseInsuranceReal += itemValueDelta;
                        salarySummaryEntity.InsuranceCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.EnterpriseReserveFund:
                        salarySummaryEntity.EnterpriseReserveFundReal += itemValueDelta;
                        salarySummaryEntity.ReserveFundCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.EnterpriseManageFee:
                        salarySummaryEntity.EnterpriseManageFeeReal += itemValueDelta;
                        salarySummaryEntity.EnterpriseManageFeeCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.EnterpriseOtherFee:
                        salarySummaryEntity.EnterpriseOtherCostReal += itemValueDelta;
                        break;
                    case SalaryItemKinds.PersonInsurance:
                        salarySummaryEntity.PersonInsuranceReal += itemValueDelta;
                        break;
                    case SalaryItemKinds.PersonReserveFund:
                        salarySummaryEntity.PersonReserveFundReal += itemValueDelta;
                        break;
                    case SalaryItemKinds.PersonalOtherFee:
                        salarySummaryEntity.PersonOtherCostReal += itemValueDelta;
                        break;
                    case SalaryItemKinds.EnterpriseGeneralRecruitFee:
                        salarySummaryEntity.EnterpriseGeneralRecruitFeeReal += itemValueDelta;
                        salarySummaryEntity.EnterpriseGeneralRecruitFeeCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.EnterpriseOnceRecruitFee:
                        salarySummaryEntity.EnterpriseOnceRecruitFeeReal += itemValueDelta;
                        salarySummaryEntity.EnterpriseOnceRecruitFeeCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.SalaryTax:
                        //do nothing.(工资税系统自动计算,不能录入)
                        break;
                    case SalaryItemKinds.EnterpriseOtherInsurance:
                        salarySummaryEntity.EnterpriseOtherInsuranceReal += itemValueDelta;
                        salarySummaryEntity.EnterpriseOtherInsuranceCashDate = entity.SalaryItemCashDate;
                        break;
                    case SalaryItemKinds.EnterpriseTaxFee:
                        salarySummaryEntity.EnterpriseTaxFeeReal += itemValueDelta;
                        salarySummaryEntity.EnterpriseTaxFeeCashDate = entity.SalaryItemCashDate;
                        break;
                    default:
                        break;
                }

                SalarySummaryBLL.Instance.Update(salarySummaryEntity);
            }

            return RedirectToAction("SalaryDetailsList", new { itemKey = entity.SalarySummaryKey });
        }
        public ActionResult SalaryBatch(bool isOnlyPlaceHolder = true)
        {
            List<SystemStatusInfo> infoList = new List<SystemStatusInfo>();
            string returnUrl = RequestHelper.CurrentFullUrl;

            Guid enterpriseGuid = ControlHelper.GetRealValue<Guid>("EnterpriseName");
            int headerRowNumber = RequestHelper.GetValue<int>("headerRowNumber", 1);
            string salaryDateString = RequestHelper.GetValue("SalaryMonth");
            DateTime salaryDate = DateTimeHelper.Min;
            HttpPostedFile postedFile = RequestHelper.CurrentRequest.Files["fileSelector"];

            string SettlementStartDateString = RequestHelper.GetValue("SettlementStartDate");
            DateTime SettlementStartDate = Converter.ChangeType(SettlementStartDateString, DateTime.Today);

            string SettlementEndDateString = RequestHelper.GetValue("SettlementEndDate");
            DateTime SettlementEndDate = Converter.ChangeType(SettlementEndDateString, DateTime.Today);

            string SalaryCashDateString = RequestHelper.GetValue("SalaryCashDate");
            DateTime SalaryCashDate = Converter.ChangeType(SalaryCashDateString, DateTime.Today);

            string ManageFeeCashDateString = RequestHelper.GetValue("ManageFeeCashDate");
            DateTime ManageFeeCashDate = Converter.ChangeType(ManageFeeCashDateString, DateTime.Today);

            string InsuranceCashDateString = RequestHelper.GetValue("InsuranceCashDate");
            DateTime InsuranceCashDate = Converter.ChangeType(InsuranceCashDateString, DateTime.Today);

            string ReserveFundDateString = RequestHelper.GetValue("ReserveFundDate");
            DateTime ReserveFundDate = Converter.ChangeType(ReserveFundDateString, DateTime.Today);

            string GeneralRecruitDateString = RequestHelper.GetValue("GeneralRecruitDate");
            DateTime GeneralRecruitDate = Converter.ChangeType(GeneralRecruitDateString, DateTime.Today);

            string OnceRecruitDateString = RequestHelper.GetValue("OnceRecruitDate");
            DateTime OnceRecruitDate = Converter.ChangeType(OnceRecruitDateString, DateTime.Today);

            string OtherInsuranceCashDateString = RequestHelper.GetValue("OtherInsuranceCashDate");
            DateTime OtherInsuranceCashDate = Converter.ChangeType(OtherInsuranceCashDateString, DateTime.Today);

            string TaxFeeCashDateString = RequestHelper.GetValue("TaxFeeCashDate");
            DateTime TaxFeeCashDate = Converter.ChangeType(TaxFeeCashDateString, DateTime.Today);
            #region 条件判定(如果不满足基本条件直接跳出并提示)
            if (string.IsNullOrWhiteSpace(salaryDateString))
            {
                SystemStatusInfo itemError = new SystemStatusInfo();
                itemError.SystemStatus = SystemStatuses.Warnning;
                itemError.Message = "你没有选定薪资月份,请选择。";
                infoList.Add(itemError);
                this.TempData.Add("OperationResultData", infoList);
                return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl });
            }
            else
            {
                salaryDateString = salaryDateString + "/1";
                salaryDate = DateTimeHelper.Parse(salaryDateString, DateFormats.YMD);
            }

            if (enterpriseGuid == Guid.Empty)
            {
                SystemStatusInfo itemError = new SystemStatusInfo();
                itemError.SystemStatus = SystemStatuses.Warnning;
                itemError.Message = "你没有选定企业的名称信息,请选择。";
                infoList.Add(itemError);

                this.TempData.Add("OperationResultData", infoList);
                return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl });
            }

            if (HttpPostedFileHelper.HasFile(postedFile) == false)
            {
                SystemStatusInfo itemError = new SystemStatusInfo();
                itemError.SystemStatus = SystemStatuses.Warnning;
                itemError.Message = "没有选择Excel文件,请先选择文件然后再进行导入!";
                infoList.Add(itemError);

                this.TempData.Add("OperationResultData", infoList);
                return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl });
            }
            #endregion

            try
            {
                #region 将数据读入内存
                int userCountSuccessful = 0;
                int userCountFailure = 0;
                string userListFailure = string.Empty;
                DataTable dataTable = ExcelHelper.ReadExcel(postedFile.InputStream, headerRowNumber);
                NameValueCollection laborSalaryItemMapData = (NameValueCollection)ConfigurationManager.GetSection("laborSalaryItemMap");

                List<string> columnNameList = new List<string>();
                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                    columnNameList.Add(dataTable.Columns[i].ColumnName);
                }
                #endregion

                #region 对Excel的每行信息进行解析
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    int dataRowNumberInExcel = headerRowNumber + i + 1;
                    try
                    {
                        DataRow row = dataTable.Rows[i];
                        if (row == null)
                        {
                            continue;
                        }

                        string LaborUserNameCNForSalarySummary = string.Empty;
                        string LaborUserCodeForSalarySummary = string.Empty;
                        string LaborUserCardIDForSalarySummary = string.Empty;

                        Guid salarySummaryGuid = GuidHelper.NewGuid();
                        SalarySummaryEntity salarySummaryEntity = new SalarySummaryEntity();
                        salarySummaryEntity.SalarySummaryGuid = salarySummaryGuid;
                        salarySummaryEntity.SalaryDate = salaryDate;
                        salarySummaryEntity.CreateDate = DateTime.Today;
                        salarySummaryEntity.CreateUserKey = BusinessUserBLL.CurrentUserGuid.ToString();
                        salarySummaryEntity.EnterpriseKey = enterpriseGuid.ToString();
                        salarySummaryEntity.SalaryPayStatus = SalaryPayStatuses.PaidToOrgnization;
                        salarySummaryEntity.SalarySettlementStartDate = SettlementStartDate;
                        salarySummaryEntity.SalarySettlementEndDate = SettlementEndDate;

                        foreach (string columnName in columnNameList)
                        {
                            //0.处理特殊的标题头信息
                            if (columnName.Contains("[忽略]"))
                            {
                                continue;
                            }

                            //1.根据Excel文件中的列名称映射Labor实体的属性名称
                            string propertyName = laborSalaryItemMapData[columnName];
                            if (string.IsNullOrWhiteSpace(propertyName))
                            {
                                propertyName = columnName;
                            }

                            //2.给SalaryDetailsEntity实体属性赋值
                            object cellValue = row[columnName];
                            if (cellValue != null)
                            {
                                SalaryDetailsEntity salaryDetailsEntity = new SalaryDetailsEntity();
                                salaryDetailsEntity.SalarySummaryKey = salarySummaryGuid.ToString();

                                decimal salaryItemValue = Converter.ChangeType<decimal>(cellValue);
                                string columnNameEdited = columnName;
                                string nagetiveString = "[负值]";
                                string rebateBeforTaxString = "[先扣]";
                                string rebaseString = "[后扣]";
                                bool isRebateBeforeTax = false;

                                if (columnName.Contains(nagetiveString))
                                {
                                    salaryItemValue = 0 - Math.Abs(salaryItemValue);
                                    columnNameEdited = columnName.Remove(columnName.IndexOf(nagetiveString), nagetiveString.Length);
                                }

                                if (columnName.Contains(rebateBeforTaxString))
                                {
                                    columnNameEdited = columnNameEdited.Remove(columnNameEdited.IndexOf(rebateBeforTaxString), rebateBeforTaxString.Length);
                                    isRebateBeforeTax = true;
                                }

                                if (columnName.Contains(rebaseString))
                                {
                                    columnNameEdited = columnNameEdited.Remove(columnNameEdited.IndexOf(rebaseString), rebaseString.Length);
                                }

                                salaryDetailsEntity.SalaryItemKey = columnNameEdited;

                                switch (propertyName)
                                {
                                    case "UserNameCN":
                                        LaborUserNameCNForSalarySummary = cellValue.ToString();
                                        break;
                                    case "LaborCode":
                                        LaborUserCodeForSalarySummary = cellValue.ToString();
                                        break;
                                    case "UserCardID":
                                        LaborUserCardIDForSalarySummary = cellValue.ToString();
                                        break;
                                    case "EnterpriseMixCost":
                                        salarySummaryEntity.EnterpriseMixCostReal = salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseMixCost);
                                        break;
                                    case "EnterpriseInsurance":
                                        salarySummaryEntity.EnterpriseInsuranceReal = salaryItemValue;
                                        salarySummaryEntity.InsuranceCashDate = InsuranceCashDate;
                                        salaryDetailsEntity.SalaryItemCashDate = InsuranceCashDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseInsurance);
                                        break;
                                    case "EnterpriseReserveFund":
                                        salarySummaryEntity.EnterpriseReserveFundReal = salaryItemValue;
                                        salarySummaryEntity.ReserveFundCashDate = ReserveFundDate;
                                        salaryDetailsEntity.SalaryItemCashDate = ReserveFundDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseReserveFund);
                                        break;
                                    case "EnterpriseManageFee":
                                        salarySummaryEntity.EnterpriseManageFeeReal = salaryItemValue;
                                        salarySummaryEntity.EnterpriseManageFeeCashDate = ManageFeeCashDate;
                                        salaryDetailsEntity.SalaryItemCashDate = ManageFeeCashDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseManageFee);
                                        break;
                                    case "EnterpriseGeneralRecruitFee":
                                        salarySummaryEntity.EnterpriseGeneralRecruitFeeReal = salaryItemValue;
                                        salarySummaryEntity.EnterpriseGeneralRecruitFeeCashDate = GeneralRecruitDate;
                                        salaryDetailsEntity.SalaryItemCashDate = GeneralRecruitDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseGeneralRecruitFee);
                                        break;
                                    case "EnterpriseOnceRecruitFee":
                                        salarySummaryEntity.EnterpriseOnceRecruitFeeReal = salaryItemValue;
                                        salarySummaryEntity.EnterpriseOnceRecruitFeeCashDate = OnceRecruitDate;
                                        salaryDetailsEntity.SalaryItemCashDate = OnceRecruitDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseOnceRecruitFee);
                                        break;
                                    case "PersonMixCost":
                                        salarySummaryEntity.PersonMixCostReal = salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonMixCost);
                                        break;
                                    case "PersonInsurance":
                                        salarySummaryEntity.PersonInsuranceReal = salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonInsurance);
                                        break;
                                    case "PersonReserveFund":
                                        salarySummaryEntity.PersonReserveFundReal = salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonReserveFund);
                                        break;
                                    case "PersonInsuranceAdditional":
                                        salarySummaryEntity.PersonOtherCostReal += salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonalOtherFee);
                                        break;
                                    case "PersonInsuranceOverdueFee":
                                        salarySummaryEntity.PersonOtherCostReal += salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonalOtherFee);
                                        break;
                                    case "PersonBorrow":
                                        salarySummaryEntity.PersonBorrow = salaryItemValue;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonBorrow);
                                        break;
                                    case "EnterpriseOtherInsurance":
                                        salarySummaryEntity.EnterpriseOtherInsuranceReal += salaryItemValue;
                                        salarySummaryEntity.EnterpriseOtherInsuranceCashDate = OtherInsuranceCashDate;
                                        salaryDetailsEntity.SalaryItemCashDate = OtherInsuranceCashDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseOtherInsurance);
                                        break;
                                    case "EnterpriseTaxFee":
                                        salarySummaryEntity.EnterpriseTaxFeeReal += salaryItemValue;
                                        salarySummaryEntity.EnterpriseTaxFeeCashDate = TaxFeeCashDate;
                                        salaryDetailsEntity.SalaryItemCashDate = TaxFeeCashDate;
                                        SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseTaxFee);
                                        break;
                                    default:
                                        if (salaryItemValue >= 0)
                                        {
                                            salarySummaryEntity.SalaryGrossPay += salaryItemValue;
                                            SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.Rewards);
                                        }
                                        else
                                        {
                                            if (isRebateBeforeTax == true)
                                            {
                                                salarySummaryEntity.SalaryRebateBeforeTax += salaryItemValue;
                                            }
                                            else
                                            {
                                                salarySummaryEntity.SalaryRebate += salaryItemValue;
                                            }

                                            SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.Rebate);
                                        }
                                        break;
                                }
                            }
                        }

                        if (string.IsNullOrWhiteSpace(LaborUserNameCNForSalarySummary))
                        {
                            userCountFailure++;
                            userListFailure += string.Format("{0}({1}({2})({3})请确认此用户的用户名称不可以为空), <br />", dataRowNumberInExcel, LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary);
                            //物理删除掉已经插入的无效的salaryDetails数据
                            SalaryDetailsBLL.Instance.DeleteList(salarySummaryEntity.SalarySummaryGuid);
                        }
                        else
                        {
                            //根据人员姓名和工号,确认劳务人员的UserGuid
                            bool isMatchedLabor = false;
                            LaborEntity laborEntity = LaborBLL.Instance.Get(LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary, enterpriseGuid.ToString());
                            if (laborEntity.IsEmpty)
                            {
                                isMatchedLabor = false;
                            }
                            else
                            {
                                isMatchedLabor = true;
                            }

                            if (isMatchedLabor == true)
                            {
                                bool isSuccessful = true;
                                SalarySummaryEntity salarySummaryEntityConfirm = SalarySummaryBLL.Instance.Get(enterpriseGuid.ToString(), laborEntity.UserGuid.ToString(), salaryDate);
                                if (salarySummaryEntityConfirm.IsEmpty)
                                {
                                    salarySummaryEntity.LaborKey = laborEntity.UserGuid.ToString();
                                    salarySummaryEntity.LaborCode = LaborUserCodeForSalarySummary;
                                    salarySummaryEntity.LaborName = LaborUserNameCNForSalarySummary;

                                    //Logics isFirstCash = SalarySummaryBLL.Instance.IsFirstCash(enterpriseGuid.ToString(), laborEntity.UserGuid.ToString());
                                    //salarySummaryEntity.IsFirstCash = isFirstCash;
                                    isSuccessful = SalarySummaryBLL.Instance.Create(salarySummaryEntity);
                                }
                                else
                                {
                                    salarySummaryEntityConfirm.EnterpriseInsuranceReal += salarySummaryEntity.EnterpriseInsuranceReal;
                                    salarySummaryEntityConfirm.EnterpriseManageFeeReal += salarySummaryEntity.EnterpriseManageFeeReal;
                                    salarySummaryEntityConfirm.EnterpriseReserveFundReal += salarySummaryEntity.EnterpriseReserveFundReal;
                                    salarySummaryEntityConfirm.EnterpriseOtherCostReal += salarySummaryEntity.EnterpriseOtherCostReal;
                                    salarySummaryEntityConfirm.EnterpriseMixCostReal += salarySummaryEntity.EnterpriseMixCostReal;

                                    salarySummaryEntityConfirm.PersonInsuranceReal += salarySummaryEntity.PersonInsuranceReal;
                                    salarySummaryEntityConfirm.PersonManageFeeReal += salarySummaryEntity.PersonManageFeeReal;
                                    salarySummaryEntityConfirm.PersonReserveFundReal += salarySummaryEntity.PersonReserveFundReal;
                                    salarySummaryEntityConfirm.PersonOtherCostReal += salarySummaryEntity.PersonOtherCostReal;
                                    salarySummaryEntityConfirm.PersonMixCostReal += salarySummaryEntity.PersonMixCostReal;

                                    salarySummaryEntityConfirm.SalaryGrossPay += salarySummaryEntity.SalaryGrossPay;
                                    salarySummaryEntityConfirm.SalaryRebate += salarySummaryEntity.SalaryRebate;
                                    isSuccessful = SalarySummaryBLL.Instance.Update(salarySummaryEntityConfirm);
                                }

                                if (isSuccessful == true)
                                {
                                    userCountSuccessful++;
                                }
                                else
                                {
                                    userCountFailure++;
                                    userListFailure += i + ", ";
                                }
                            }
                            else
                            {
                                userCountFailure++;
                                userListFailure += string.Format("{0}({1}({2})({3})请确认此用户的用户名称、工号和身份证号是否跟系统内的数据一致), <br />", dataRowNumberInExcel, LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary);
                                //物联删除掉已经插入的无效的salaryDetails数据
                                SalaryDetailsBLL.Instance.DeleteList(salarySummaryEntity.SalarySummaryGuid);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //try
                        //{
                        //    BusinessLogEntity log = new BusinessLogEntity();
                        //    log.LogCategory = "BatchSalaryImport";
                        //    log.LogMessage = ExceptionHelper.GetExceptionMessage(ex);
                        //    log.LogDate = DateTime.Now;

                        //    BusinessLogBLL.Instance.Create(log);
                        //}
                        //catch
                        //{
                        //    //do nothing;
                        //}

                        userCountFailure++;
                        userListFailure += i + ", ";
                    }
                }
                #endregion

                #region 操作结果展示
                //A.1、操作结果(导入成功的人员信息)
                SystemStatusInfo itemSuccessful = new SystemStatusInfo();
                itemSuccessful.SystemStatus = SystemStatuses.Success;
                itemSuccessful.Message = string.Format("共有{0}人导入成功。", userCountSuccessful);
                infoList.Add(itemSuccessful);

                //A.2、操作结果(导入失败的人员信息)
                if (userCountFailure > 0)
                {
                    SystemStatusInfo itemError = new SystemStatusInfo();
                    itemError.SystemStatus = SystemStatuses.Failuer;
                    itemError.Message = string.Format("共有{0}人导入失败。", userCountFailure);
                    if (string.IsNullOrWhiteSpace(userListFailure) == false)
                    {
                        itemError.Message += string.Format("导入失败的人员分别位于{0}行, <br />", userListFailure);
                    }
                    infoList.Add(itemError);
                }
                #endregion
            }
            catch (OfficeXmlFileException)
            {
                SystemStatusInfo itemError = new SystemStatusInfo();
                itemError.SystemStatus = SystemStatuses.Failuer;
                itemError.Message = "请选择Excel2003格式的文件。你可以将本文件在Excel中另存的时候选择97/2003格式!";
                infoList.Add(itemError);
            }

            this.TempData.Add("OperationResultData", infoList);
            return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl });
        }