/// <summary>
/// 上传年金
/// </summary>
/// <param name="files">PostYearSalary</param>
/// <returns></returns>
[HttpPost]
public ActionResult PostYearSalary(IEnumerable<HttpPostedFileBase> files)
{
var DicMess = BLL.PostSalaryServer.PostYearSalary(files);
return Json(DicMess, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 年金部分
/// </summary>
public class PostSalaryServer
{
#region 上传年金
public static Dictionary<string, string> PostYearSalary(IEnumerable<HttpPostedFileBase> files)
{
#region 逻辑处理
Dictionary<string, string> DicMess = new Dictionary<string, string>();
DicMess.Add("OK", "");
DicMess.Add("Err", "");
Models.SalaryModel salaryModel = new Models.SalaryModel();
List<ExcelShellMode> list_ExcelShell = salaryModel.Database.SqlQuery<ExcelShellMode>("SELECT ExcelName, ExcelShell,COUNT(0) AS ExcelShellCount FROM Comparative GROUP BY ExcelName,ExcelShell HAVING COUNT(ExcelShell) > 0").Where(n => n.ExcelName == "年金").ToList();
int C_Name_Index = salaryModel.Database.SqlQuery<int>("select ExcelCell from Comparative where ExcelName = '年金' and ExcelRowCellName = '姓名'").ToList()[0];
foreach (var file in files)
{
#region 年金的部分
ISheet sheet;
string filename = Path.GetFileName((file.FileName));
var fileExt = Path.GetExtension(filename);
//这里循环shell
if (fileExt == ".xls" || fileExt == ".xlsx")
{
#region MyRegion
if (fileExt == ".xls")
{
HSSFWorkbook hssfwb = new HSSFWorkbook(file.InputStream);
#region saves 在这里进行循环添加shell 页码的数据到 datatable 到数据库
for (int a = 0; a < list_ExcelShell.Count; a++)
{
#region 循环不同的shell 页
sheet = hssfwb.GetSheetAt(a); // 在这里循环
try
{
DataTable table = new DataTable();
IRow headerRow = sheet.GetRow(0);// 从第0行进行读取
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).ToString());
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
// for (int i = 1; i < sheet.LastRowNum; i++)// 从第3行循环
for (int i = (sheet.FirstRowNum) + 1; i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
#region 判断类型
ICell RCells = row.GetCell(j);
if (RCells != null)
{
try
{
switch (RCells.CellType) //注意按单元格格式分类取值
{
case CellType.Numeric: //用于取出数值和公式类型的数据
dataRow[j] = RCells.NumericCellValue;
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
case CellType.Formula:
switch (row.GetCell(j).CachedFormulaResultType)
{
case CellType.String:
string strFORMULA = row.GetCell(j).StringCellValue;
if (strFORMULA != null && strFORMULA.Length > 0)
{
dataRow[j] = strFORMULA.ToString();
}
else
{
dataRow[j] = null;
}
break;
case CellType.Numeric:
dataRow[j] = Convert.ToString(row.GetCell(j).NumericCellValue);
break;
case CellType.Boolean:
dataRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
default:
dataRow[j] = "";
break;
}
break;
case CellType.Boolean:
// Boolean type
dataRow[j] = RCells.BooleanCellValue.ToString();
break;
case CellType.Blank:
break;
default:
// String type
dataRow[j] = RCells.StringCellValue.Trim();
break;
}
}
catch (Exception e)
{
DicMess["Err"] = "导入成功,读取excel格式出错";
}
}
else { dataRow[j] = ""; }
#endregion
}
#region 将数据保存到对应的数据库之中
#endregion
//save
table.Rows.Add(dataRow);
}
}
catch (Exception e)
{
DicMess["Err"] = "导入成功,读取数据发生错误";
}
#endregion
#region 这个进行更新部分进行的
#endregion
}
#endregion
}
else
{
XSSFWorkbook hssfwb = new XSSFWorkbook(file.InputStream);
#region saves 在这里进行循环添加shell 页码的数据到 datatable 到数据库
for (int a = 0; a < list_ExcelShell.Count; a++)
{
#region 循环不同的shell 页
sheet = hssfwb.GetSheetAt(a); // 在这里循环
try
{
DataTable table = new DataTable();
IRow headerRow = sheet.GetRow(0);// 从第0行进行读取
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).ToString());
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
// for (int i = 1; i < sheet.LastRowNum; i++)// 从第3行循环
for (int i = (sheet.FirstRowNum) + 1; i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
var Save_C_Name = ""; // 这个是找到这行的名字
if (C_Name_Index == j)
{
Save_C_Name ="";
}
#region 判断类型
ICell RCells = row.GetCell(j);
if (RCells != null)
{
try
{
switch (RCells.CellType) //注意按单元格格式分类取值
{
case CellType.Numeric: //用于取出数值和公式类型的数据
dataRow[j] = RCells.NumericCellValue;
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
case CellType.Formula:
switch (row.GetCell(j).CachedFormulaResultType)
{
case CellType.String:
string strFORMULA = row.GetCell(j).StringCellValue;
if (strFORMULA != null && strFORMULA.Length > 0)
{
dataRow[j] = strFORMULA.ToString();
}
else
{
dataRow[j] = null;
}
break;
case CellType.Numeric:
dataRow[j] = Convert.ToString(row.GetCell(j).NumericCellValue);
break;
case CellType.Boolean:
dataRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
default:
dataRow[j] = "";
break;
}
break;
case CellType.Boolean:
// Boolean type
dataRow[j] = RCells.BooleanCellValue.ToString();
break;
case CellType.Blank:
break;
default:
// String type
dataRow[j] = RCells.StringCellValue.Trim();
break;
}
}
catch (Exception e)
{
DicMess["Err"] = "导入成功,读取数据发生错误";
}
Save_C_Name = (dataRow[j] == null || string.IsNullOrWhiteSpace(dataRow[j].ToString())? "": dataRow[j].ToString());
}
else { dataRow[j] = ""; Save_C_Name = ""; }
#endregion
}
table.Rows.Add(dataRow);
}
}
catch (Exception e)
{
DicMess["Err"] = "导入成功,读取数据发生错误";
}
#endregion
}
#endregion
}
#endregion
DicMess["OK"] = "导入成功" + DicMess["OK"];
}
else
{
DicMess["Err"] = "导入文件不是Excel请从新上传";
}
#endregion
}
return DicMess;
#endregion
}
#endregion
#region 保存工资信息
/// <summary>
/// 保存工资信息所需的文件信息
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public static Dictionary<string, string> SaveAttendanceSalaryFiles(IEnumerable<HttpPostedFileBase> files, string Time)
{
Dictionary<string, string> DicMess = new Dictionary<string, string>();
DicMess.Add("OK", "");
DicMess.Add("Err", "");
#region 进行逻辑处理这里需要进行处理多张excel 的数据
foreach (var file in files)
{
string filename = Path.GetFileName((file.FileName));// 带物理路径的名称
string getfilename = Path.GetFileNameWithoutExtension(file.FileName);//文件名称
string fileExt = Path.GetExtension(filename);// 后缀
#region 1.检查上传文件所需项目 目前上传4张表:上传工资信息 上传考勤 上传社保信息 人力资源月报表(人员增减 人员调动)
if (fileExt == ".xls" || fileExt == ".xlsx")
{
// 是excel 报表
#region Excel报表
if (getfilename.IndexOf("工资") > -1)
{
#region 工资信息 开始处理信息 和保存备份
#region 1.文件备份
// 检查文件是否存在
string SaveUrl = null;
bool CheckAndCreateAddress = BLL.XlsServes.CheckSaveFile(out SaveUrl);
if (CheckAndCreateAddress)
{
//存在
SaveUrl = SaveUrl + "\\" + getfilename.Trim() + Time.ToString() + fileExt;
if (File.Exists(SaveUrl))
{
//文件存在
// DicMess["OK"] = "导入文件:" + Time + "月份" + getfilename + "已经保存";
}
else
{
//文件不存在
BLL.XlsServes.FileSaves(file, getfilename, fileExt, SaveUrl, Time);
}
}
#endregion
#region 2.保存生产工资的信息的部分 先读取excel 信息到表中,然后进行保存到数据库之中
// 第一页未工资的信息的部分
SaveProductionSalary(file, fileExt, Time, DicMess);
#endregion
#endregion
}
else if (getfilename.IndexOf("年金") > -1)
{
#region 考勤信息
#region 1.文件备份
// 检查文件是否存在
string SaveUrl = null;
bool CheckAndCreateAddress = BLL.XlsServes.CheckSaveFile(out SaveUrl);
if (CheckAndCreateAddress)
{
//存在
SaveUrl = SaveUrl + "\\" + getfilename.Trim() + Time.ToString() + fileExt;
if (File.Exists(SaveUrl))
{
//文件存在
DicMess["OK"] = "导入文件:" + Time + "月份" + getfilename + "已经保存";
}
else
{
//文件不存在
BLL.XlsServes.FileSaves(file, getfilename, fileExt, SaveUrl, Time);
}
}
#endregion
#endregion
}
else if (getfilename.IndexOf("水电费") > -1)
{
#region 社保
#region 1.文件备份
// 检查文件是否存在
string SaveUrl = null;
bool CheckAndCreateAddress = BLL.XlsServes.CheckSaveFile(out SaveUrl);
if (CheckAndCreateAddress)
{
//存在
SaveUrl = SaveUrl + "\\" + getfilename.Trim() + Time.ToString() + fileExt;
if (File.Exists(SaveUrl))
{
//文件存在
DicMess["OK"] = "导入文件:" + Time + "月份" + getfilename + "已经保存";
}
else
{
//文件不存在
BLL.XlsServes.FileSaves(file, getfilename, fileExt, SaveUrl, Time);
}
}
#endregion
#endregion
}
#endregion
#endregion
}
else
{
DicMess["Err"] = "导入文件" + getfilename + "不是Excel请从新上传";
//不是excel 报表
}
}
#endregion
return DicMess;
}
#region 保存工资信息
/// <summary>
/// 保存生产工资信息
/// </summary>
public static void SaveProductionSalary(HttpPostedFileBase file, string fileExt, string Time, Dictionary<string, string> DicMess)
{
#region 保存信息
DataTable table = new DataTable();
ISheet sheet;
Models.SalaryModel salaryModel = new Models.SalaryModel();
string filename = Path.GetFileName((file.FileName));
#region MyRegion
if (fileExt == ".xls")
{
HSSFWorkbook hssfwb = new HSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(0);
}
else
{
XSSFWorkbook hssfwb = new XSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(0);
}
try
{
IRow headerRow = sheet.GetRow(2);// 从第3行进行读取 索引未行数-1
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).ToString());
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = 3; i < sheet.LastRowNum; i++)// 从第3行循环
// for (int i = (sheet.FirstRowNum); i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
#region 判断类型
ICell RCells = row.GetCell(j);
if (RCells != null)
{
try
{
switch (RCells.CellType) //注意按单元格格式分类取值
{
case CellType.Numeric: //用于取出数值和公式类型的数据
dataRow[j] = RCells.NumericCellValue;
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
case CellType.Formula:
switch (row.GetCell(j).CachedFormulaResultType)
{
case CellType.String:
string strFORMULA = row.GetCell(j).StringCellValue;
if (strFORMULA != null && strFORMULA.Length > 0)
{
dataRow[j] = strFORMULA.ToString();
}
else
{
dataRow[j] = null;
}
break;
case CellType.Numeric:
dataRow[j] = Convert.ToString(row.GetCell(j).NumericCellValue);
break;
case CellType.Boolean:
dataRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
default:
dataRow[j] = "";
break;
}
break;
case CellType.Boolean:
// Boolean type
dataRow[j] = RCells.BooleanCellValue.ToString();
break;
case CellType.Blank:
break;
default:
// String type
dataRow[j] = RCells.StringCellValue.Trim();
break;
}
}
catch (Exception e)
{
}
}
else { dataRow[j] = ""; }
#endregion
}
#region 将数据保存到对应的数据库之中
string username = dataRow[3].ToString();
if (username != null && username.Length > 0)
{
//var SalaryMonthTime = DateTime.ParseExact(Time, "yyyy年MM月", null).ToString("yyyy-MM");
var SalaryMonthTime = DateTime.ParseExact(Time, "yyyy年MM月", null);
try
{
//查找当前月份的用户信息
bool CheckUserName = salaryModel.SalaryBaseInfoes.Any(n => n.UserSalaryStatus == 1 && n.UserName == username);
if (CheckUserName)
{
#region 进行数据的保存 Baseinfo 直接保存
var salaryBaseInfo = salaryModel.SalaryBaseInfoes.Where(n => n.UserSalaryStatus == 1 && n.UserName == username).FirstOrDefault();
//应为这部分是不确定可变的所以直接每月进行替换 基本 岗位 绩效 保密
salaryBaseInfo.Base_MinSalary = 2000;
int SalaryBaseInfoId = salaryBaseInfo.Id;// 获得需要的id
salaryBaseInfo.Base_StationCombinationSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[22]); //岗位工资合计
salaryBaseInfo.Base_Confidentiality_Salary = 0; //保密
salaryBaseInfo.Base_Achievement_FullSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[24]); //绩效
#region SalaryDetails 操作
bool CheckSalaryDetails = salaryModel.SalaryDetails.Any(n => n.SalaryBaseInfoId == SalaryBaseInfoId && n.SalaryMonth == SalaryMonthTime);
#endregion
if (CheckSalaryDetails)
{
//找到了,有数据修改
Models.SalaryDetail salaryDetail = salaryModel.SalaryDetails.Where(n => n.SalaryBaseInfoId == SalaryBaseInfoId && n.SalaryMonth == SalaryMonthTime).FirstOrDefault();
salaryDetail.SalaryBaseInfoId = SalaryBaseInfoId;
salaryDetail.SalaryMonth = SalaryMonthTime;
salaryDetail.CreateTime = System.DateTime.Now;
salaryDetail.SalaryType = "工资明细";
salaryDetail.CreateSalaryStart = 0;
salaryDetail.AgainSupplementSalary_One = BLL.CheckValues.CheckParseDecimeValues(dataRow[25]);//--其它补发工资
salaryDetail.Base_Foot_Salary = BLL.CheckValues.CheckParseDecimeValues(dataRow[26]);//餐补
salaryDetail.OutWorkDay = BLL.CheckValues.CheckParseDecimeValues(dataRow[27]); // 考勤
salaryDetail.ShouldSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[28]); // 应发工资 = 收入额 = 累计收入额度
salaryDetail.FloatingRate = BLL.CheckValues.CheckParseDecimeValues(dataRow[29]);//浮动率
}
else
{
//没找到,添加
salaryModel.SalaryDetails.Add(new Models.SalaryDetail()
{
SalaryBaseInfoId = SalaryBaseInfoId,
SalaryMonth = SalaryMonthTime,
CreateTime = System.DateTime.Now,
SalaryType = "工资明细",
CreateSalaryStart = 0,
AgainSupplementSalary_One = BLL.CheckValues.CheckParseDecimeValues(dataRow[25]),//--其它补发工资
Base_Foot_Salary = BLL.CheckValues.CheckParseDecimeValues(dataRow[26]),//餐补
OutWorkDay = BLL.CheckValues.CheckParseDecimeValues(dataRow[27]), // 考勤
ShouldSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[28]), // 应发工资 = 收入额 = 累计收入额度
FloatingRate = BLL.CheckValues.CheckParseDecimeValues(dataRow[29]), //浮动率
});
}
//没有detail的添加
salaryModel.SaveChanges();
#endregion
}
else
{
DicMess["OK"] += "生产工资中" + username + "用户没找到请在系统中添加用户";//没有找到此用户
}
}
catch (Exception e)
{
string err = e.Message.ToString();
DicMess["Err"] = "导入成功,循环出问题" + e.Message;
}
}
else { }
#endregion
table.Rows.Add(dataRow);
}
}
catch (Exception e)
{
DicMess["Err"] += "保存信息发生错误" + e.Message;//
}
#endregion
#endregion
}
#endregion
#endregion
#region 保存初始化工资baseinfo薪酬明细
public static Dictionary<string, string> SaveInitSalaryBaseInfoDetail(IEnumerable<HttpPostedFileBase> files)
{
#region 保存初始化工资信息
Dictionary<string, string> DicMess = new Dictionary<string, string>();
DicMess.Add("OK", "");
DicMess.Add("Err", "");
#region 逻辑处理部分
foreach (var file in files)
{
string filename = Path.GetFileName((file.FileName));// 带物理路径的名称
string getfilename = Path.GetFileNameWithoutExtension(file.FileName);//文件名称
string fileExt = Path.GetExtension(filename);// 后缀
#region 根据后缀生命 文件类型
if (fileExt == ".xls" || fileExt == ".xlsx")
{
#region 1.文件备份
string SaveUrl = null;
string Time = DateTime.Now.ToString("yyyy年MM月dd日");
bool CheckAndCreateAddress = BLL.XlsServes.CheckSaveFile(out SaveUrl); // 检查文件是否存在
if (CheckAndCreateAddress)
{
//存在
SaveUrl = SaveUrl + "\\" + getfilename.Trim() + Time.ToString() + fileExt;
if (File.Exists(SaveUrl))
{
//文件存在
// DicMess["OK"] = "导入文件:" + Time + "月份" + getfilename + "已经保存";
}
else
{
//文件不存在
BLL.XlsServes.FileSaves(file, getfilename, fileExt, SaveUrl, Time);
}
}
#endregion
#region 2.保存生产工资的信息的部分 先读取excel 信息到表中,然后进行保存到数据库之中
// 第一页未工资的信息的部分
SaveInitBaseInfo(file, fileExt, Time, DicMess);
#endregion
#endregion
}
else
{
DicMess["Err"] = "导入文件" + getfilename + "不是Excel请从新上传";
//不是excel 报表
}
}
#endregion
return DicMess;
#endregion
}
public static void SaveInitBaseInfo(HttpPostedFileBase file, string fileExt, string Time, Dictionary<string, string> DicMess)
{
#region 保存信息
DataTable table = new DataTable();
ISheet sheet;
Models.SalaryModel salaryModel = new Models.SalaryModel();
string filename = Path.GetFileName((file.FileName));
#region 获得需要的查询数据的部分信息
Models.Comparative ExcelComparative = salaryModel.Comparatives.Where(n => n.ExcelName == "初始基数").FirstOrDefault();
int ShellIndex = int.Parse(ExcelComparative.ExcelShell.ToString());//
int ExcelRowIndex = int.Parse(ExcelComparative.ExcelRow.ToString());
int ExcelCellIndex = int.Parse(ExcelComparative.ExcelCell.ToString());
#endregion
#region MyRegion
if (fileExt == ".xls")
{
HSSFWorkbook hssfwb = new HSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(ShellIndex);
}
else
{
XSSFWorkbook hssfwb = new XSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(ShellIndex);
}
try
{
IRow headerRow = sheet.GetRow(ExcelRowIndex);// 从第3行进行读取 从第3行进行读取 索引未行数-1
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).ToString());
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
bool CheckJ = true;
for (int i = ExcelRowIndex + 1; i < sheet.LastRowNum; i++)// 从第3+1行循环 有1列表头信息 从excel第1行1列到实际数据结束行 ExcelEndRowIndex
// for (int i = (sheet.FirstRowNum); i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
//for (int j = row.FirstCellNum; j < cellCount; j++)
for (int j = ExcelCellIndex; j < cellCount; j++)
{
#region 判断类型
ICell RCells = row.GetCell(j);
if (RCells != null)
{
try
{
switch (RCells.CellType) //注意按单元格格式分类取值
{
case CellType.Numeric: //用于取出数值和公式类型的数据
if (DateUtil.IsCellDateFormatted(RCells)) { dataRow[j] = RCells.DateCellValue.ToString("yyyy/MM/dd"); }
else { dataRow[j] = RCells.NumericCellValue; }
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
case CellType.Formula:
switch (row.GetCell(j).CachedFormulaResultType)
{
case CellType.String:
string strFORMULA = row.GetCell(j).StringCellValue;
if (strFORMULA != null && strFORMULA.Length > 0)
{
dataRow[j] = strFORMULA.ToString();
}
else
{
dataRow[j] = null;
}
break;
case CellType.Numeric:
dataRow[j] = Convert.ToString(row.GetCell(j).NumericCellValue);
break;
case CellType.Boolean:
dataRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);
break;
case CellType.Error:
dataRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);
break;
default:
dataRow[j] = "";
break;
}
break;
case CellType.Boolean:
// Boolean type
dataRow[j] = RCells.BooleanCellValue.ToString();
break;
case CellType.Blank:
break;
default:
// String type
dataRow[j] = RCells.StringCellValue.Trim();
break;
}
}
catch (Exception e)
{
}
}
else { dataRow[j] = ""; }
#endregion
}
if (dataRow[0].ToString() == "2 劳务费")
{
CheckJ = false;
}
else { }
#region 将数据保存到对应的数据库之中
string username = dataRow[5].ToString();
if (username != null && username.Length > 0)
{
//查找当前月份的用户信息
bool CheckUserName = salaryModel.SalaryBaseInfoes.Any(n => n.UserSalaryStatus == 1 && n.UserName == username);
if (CheckJ == false)
{
#region 劳务费部分
int c = 1;
try
{
if (CheckUserName)
{
#region 进行保存劳务费用的部分
var salaryBaseInfo = salaryModel.SalaryBaseInfoes.Where(n => n.UserSalaryStatus == 1 && n.UserName == username).FirstOrDefault();
salaryBaseInfo.SalaryInType = "劳务费";
salaryBaseInfo.OrganizationCode = BLL.CheckValues.CheckParseStringValues(dataRow[1]);//部门编码
salaryBaseInfo.GrantSalaryCode = BLL.CheckValues.CheckParseStringValues(dataRow[6]);//费用编码
salaryBaseInfo.Department = BLL.CheckValues.CheckParseStringValues(dataRow[7]);//部门
salaryBaseInfo.UserType = BLL.CheckValues.CheckParseStringValues(dataRow[8]);//人员类别
salaryBaseInfo.IdentityTypeCard = BLL.CheckValues.CheckParseStringValues(dataRow[9]);//*证照号码
salaryBaseInfo.BankAccount = BLL.CheckValues.CheckParseStringValues(dataRow[10]);//银行帐号
salaryBaseInfo.Base_Entry_Time = BLL.CheckValues.CheckParseStringValues(dataRow[11]).ToString();//入职时间
salaryBaseInfo.MonthServicesSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[12]);//入职时间
#endregion
}
else
{
if (username == "姓名") { }
else
{
DicMess["OK"] += "" + username + "没在系统找到 ";//没有找到此用户
}
}
salaryModel.SaveChanges();
}
catch (Exception e)
{
string err = e.Message.ToString();
DicMess["Err"] = "导入成功,劳务费部分 循环出问题" + e.Message;
}
#endregion
}
else
{
#region 工资部分
try
{
if (CheckUserName)
{
#region 进行数据的保存 Baseinfo 直接保存到固定的baseinfo部分
var salaryBaseInfo = salaryModel.SalaryBaseInfoes.Where(n => n.UserSalaryStatus == 1 && n.UserName == username).FirstOrDefault();
int BaseInfoId = salaryBaseInfo.Id;
salaryBaseInfo.SalaryInType = "工资明细";
salaryBaseInfo.ContractType = BLL.CheckValues.CheckParseStringValues(dataRow[1]);//--合同类别
salaryBaseInfo.HousingSalaryType = BLL.CheckValues.CheckParseStringValues(dataRow[2]);//--公积金类别(安泰环境 中智(上海))
salaryBaseInfo.IsPractice = BLL.CheckValues.CheckParseStringValues(dataRow[3]);//是否实习/试用
salaryBaseInfo.OrganizationCode = BLL.CheckValues.CheckParseStringValues(dataRow[4]);//部门编码
salaryBaseInfo.GrantSalaryCode = BLL.CheckValues.CheckParseStringValues(dataRow[6]);//费用编码
salaryBaseInfo.CostAttribution = BLL.CheckValues.CheckParseStringValues(dataRow[7]);//费用归集部门
salaryBaseInfo.UserType = BLL.CheckValues.CheckParseStringValues(dataRow[8]);//人员类别
salaryBaseInfo.IdentityTypeCard = BLL.CheckValues.CheckParseStringValues(dataRow[9]);//*证照号码
salaryBaseInfo.BankAccount = BLL.CheckValues.CheckParseStringValues(dataRow[10]);//银行帐号
salaryBaseInfo.Base_Entry_Time = BLL.CheckValues.CheckParseStringValues(dataRow[11]).ToString();//入职时间
salaryBaseInfo.Base_MinSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[12]);// 基本工资
salaryBaseInfo.Base_StationCombinationSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[13]);// 岗位工资
salaryBaseInfo.Base_Confidentiality_Salary = BLL.CheckValues.CheckParseDecimeValues(dataRow[14]);// 保密补贴
salaryBaseInfo.Base_Achievement_FullSalary = BLL.CheckValues.CheckParseDecimeValues(dataRow[15]);//绩效工资
#endregion
}
else
{
if (username == "姓名") { }
else
{
DicMess["OK"] += "" + username + "没在系统找到 ";//没有找到此用户
}
}
salaryModel.SaveChanges();
}
catch (Exception e)
{
string err = e.Message.ToString();
DicMess["Err"] = "导入成功,工资部分循环出问题" + e.Message;
}
#endregion
}
}
else { }
#endregion
table.Rows.Add(dataRow);
}
}
catch (Exception e)
{
DicMess["Err"] += "保存信息发生错误" + e.Message;//
}
#endregion
#endregion
}
#endregion
}