246 lines
8.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|