Files
zszq-trs/YLErpDAL/Modules/SalesModule/SalesmenImportService.cs
T
2024-05-09 14:06:26 +08:00

246 lines
8.6 KiB
C#

using System.Text;
using YLErp.Commons;
using YLErp.Helpers;
namespace YLErp.Modules.SalesModule
{
public class SalesmenImportService : YLBaseService
{
/// <summary>
/// 销售员信息导入
/// </summary>
public SalesmenImportService(OptUserInfo userInfo) : base(userInfo)
{
}
public HandleResult UploadSalesmenCsv(string path)
{
var resultList = new List<string>();
var originaltype = EncodingType.GetType(path, resultList);
ChangeFileEncoding(path, originaltype);
string Name;
string Department;
string Mail;
string Telephone;
string Mobile;
int Status = 0;
Salesman salesman;
int rowNum = 0;
var salesmen = new List<Salesman>();
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
using (var sr = new StreamReader(fs, Encoding.UTF8))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (rowNum == 0)
{
rowNum++;
continue;
}
rowNum++;
if (line == "")
{
continue;
}
string[] res = line.Split(new char[] { ',' }, StringSplitOptions.None);
if (res != null && res.Length > 0)
{
var isAllEmpty = true;
for (int i = 0; i < res.Length; i++)
{
if (!string.IsNullOrWhiteSpace(res[i]))
{
isAllEmpty = false;
}
}
if (isAllEmpty)
{
continue;
}
if (res.Length < 19)
{
return "导入文件列缺失!请检查后再导入!";
}
}
Name = res[0];
Department = res[1];
Mail = res[2];
Telephone = res[3];
Mobile = res[4];
if (!string.IsNullOrEmpty(res[5]))
{
if (res[5] == "正常")
{
Status = 0;
}
else if (res[5] == "禁用")
{
Status = 1;
}
else
{
return "第" + rowNum + "行状态填写有错,导入失败";
}
}
else
{
return "第" + rowNum + "行状态未填写,导入失败";
}
if (string.IsNullOrEmpty(Name) || DbContext.salesmen.Any(a => a.Name.Equals(Name)))
{
return "第" + rowNum + "行姓名" + Name + "未填写或已存在,导入失败";
}
if (!string.IsNullOrEmpty(Department))
{
return "第" + rowNum + "行未填写,导入失败";
}
salesman = new Salesman
{
Name = Name,
Department = Department,
Mail = Mail,
Telephone = Telephone,
Mobile = Mobile,
Status = Status
};
DbContext.salesmen.Add(salesman);
salesmen.Add(salesman);
}
}
if (salesmen == null || salesmen.Count == 0)
{
return "请确保上传文件数据不为空,导入失败";
}
DbContext.SaveChanges();
}
return HandleResult.Success;
}
private void ChangeFileEncoding(string filename, Encoding encoding)
{
var fs = new FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] flieByte = new byte[fs.Length];
fs.Read(flieByte, 0, flieByte.Length);
fs.Close();
StreamWriter docWriter;
var ec = Encoding.GetEncoding("UTF-8");
docWriter = new StreamWriter(filename, false, ec);
docWriter.Write(encoding.GetString(flieByte));
docWriter.Close();
}
public HandleResult UploadSalesmenExcel(Stream stream, int userId, string userName)
{
var salesPeople = new ExcelHelper().ExcelToDataTable(stream, null, true);
string Name = "";
string Department = "";
string Mail = "";
string Telephone = "";
string Mobile = "";
int Status = 0;
Salesman saleman;
List<Salesman> salesmen = new List<Salesman>();
var rowNum = 0;
for (int i = 0; i < salesPeople.Rows.Count; i++)
{
rowNum = i + 2;
for (int j = 0; j < salesPeople.Columns.Count; j++)
{
switch (salesPeople.Columns[j].ColumnName)
{
case "姓名":
Name = salesPeople.Rows[i][j].ToString();
break;
case "部门":
Department = salesPeople.Rows[i][j].ToString();
break;
case "邮箱":
Mail = salesPeople.Rows[i][j].ToString();
break;
case "座机":
Telephone = salesPeople.Rows[i][j].ToString();
break;
case "手机":
Mobile = salesPeople.Rows[i][j].ToString();
break;
case "状态":
if (!int.TryParse(salesPeople.Rows[i][j].ToString(), out Status))
{
if (salesPeople.Rows[i][j].ToString() == "正常")
{
Status = 0;
}
else if (salesPeople.Rows[i][j].ToString() == "禁用")
{
Status = 1;
}
else
{
return "第" + rowNum + "行状态未填写或有错,导入失败";
}
}
break;
default:
break;
}
}
if (string.IsNullOrWhiteSpace(Name) || DbContext.salesmen.Any(a => a.Name.Equals(Name)))
{
return "第" + rowNum + "行姓名" + Name + "未填写或已存在,导入失败";
}
if (string.IsNullOrWhiteSpace(Department))
{
return "第" + rowNum + "行未填写,导入失败";
}
saleman = new Salesman
{
Name = Name,
Department = Department,
Mail = Mail,
Telephone = Telephone,
Mobile = Mobile,
Status = Status
};
DbContext.salesmen.Add(saleman);
salesmen.Add(saleman);
}
if (salesmen == null || salesmen.Count == 0)
{
return "请确保上传文件数据不为空,导入失败";
}
DbContext.SaveChanges();
return HandleResult.Success;
}
}
}