349 lines
14 KiB
C#
349 lines
14 KiB
C#
using Model;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Drawing;
|
||
using System.IO;
|
||
using System.Reflection;
|
||
using System.Runtime.Serialization.Formatters.Binary;
|
||
|
||
namespace BLL
|
||
{
|
||
public static class APIHTGLPersonService
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <param name="PersonjsonData">人员信息(json字符串)</param>
|
||
public static Model.Person SavePerson(Person PersonjsonData)
|
||
{
|
||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||
{
|
||
|
||
Person rb = PersonjsonData;
|
||
Person person = new Person
|
||
{
|
||
data = new List<PersonDataItem>()
|
||
};
|
||
|
||
foreach (PersonDataItem item in rb.data)
|
||
{
|
||
try
|
||
{
|
||
if (CheckDataIsNull(item))
|
||
{
|
||
PersonDataItem personDataItem = new PersonDataItem
|
||
{
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard,
|
||
Image = item.Image
|
||
};
|
||
person.data.Add(personDataItem);
|
||
person.Message += item.UserCode + "--参数有误存在null值|";
|
||
continue;
|
||
}
|
||
if (item.UserCode == null || item.UserCode == "")
|
||
{
|
||
|
||
PersonDataItem personDataItem = new PersonDataItem
|
||
{
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard,
|
||
Image = item.Image
|
||
};
|
||
person.data.Add(personDataItem);
|
||
person.Message += item.UserCode + "--工号信息不能为空|";
|
||
continue;
|
||
}
|
||
if (item.IdentityCard == null || item.IdentityCard == "")
|
||
{
|
||
|
||
PersonDataItem personDataItem = new PersonDataItem
|
||
{
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard,
|
||
Image = item.Image
|
||
};
|
||
person.data.Add(personDataItem);
|
||
person.Message += item.UserCode + "--身份信息不能为空|";
|
||
continue;
|
||
}
|
||
Person_Persons getPerson = new Person_Persons();
|
||
getPerson = Person_PersonsService.GetPerson_PersonsByIdCard(item.IdentityCard);
|
||
if (getPerson==null)
|
||
{
|
||
getPerson = Person_PersonsService.GetPerson_PersonsByJobNum(item.UserCode);
|
||
|
||
}
|
||
if (getPerson != null)
|
||
{
|
||
getPerson.JobNum = item.UserCode;
|
||
getPerson.PersonName = item.UserName;
|
||
getPerson.DataFrom = "API";
|
||
getPerson.IdentityCard = item.IdentityCard;
|
||
if (item.Image != "")
|
||
{
|
||
// Image bb = Image.FromFile("C:\\Users\\1420031550\\Desktop\\签名.jpg");
|
||
|
||
// byte[] aa = GetImageBytes(bb);
|
||
// //string img = System.Text.Encoding.Default.GetString(aa);
|
||
// string img = Convert.ToBase64String(aa);
|
||
// // byte[] imageBytes = Convert.FromBase64String(img);
|
||
|
||
// Image a = ReadImage(Convert.FromBase64String(img));
|
||
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
|
||
string url = @"FileUpload\User\" + string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + "~" + item.UserName + ".jpg";
|
||
string filename = rootUrl + url;
|
||
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(item.Image));
|
||
getPerson.SignatureUrl = url;
|
||
|
||
}
|
||
// db.SubmitChanges();
|
||
Person_PersonsService.UpdatePerson(getPerson);
|
||
}
|
||
else
|
||
{
|
||
Person_Persons newPersons = new Person_Persons
|
||
{
|
||
PersonId = SQLHelper.GetNewID(),
|
||
Account = item.UserCode,
|
||
JobNum = item.UserCode,
|
||
PersonName = item.UserName,
|
||
IdentityCard = item.IdentityCard,
|
||
UnitId = Const.UnitId_SEDIN,
|
||
Password = Funs.EncryptionPassword(Const.Password),
|
||
DataFrom = "API"
|
||
};
|
||
if (item.Image != "")
|
||
{
|
||
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
|
||
string url = @"FileUpload\User\" + string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now) + "~" + item.UserName + ".jpg";
|
||
string filename = rootUrl + url;
|
||
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(item.Image));
|
||
newPersons.SignatureUrl = url;
|
||
}
|
||
|
||
Person_PersonsService.AddPerson(newPersons);
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PersonDataItem personDataItem = new PersonDataItem
|
||
{
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard
|
||
};
|
||
|
||
person.data.Add(personDataItem);
|
||
person.Message += ex.Message;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
return person;
|
||
}
|
||
}
|
||
|
||
public static void AddProjectUser(string ProjectCode, string UserID)
|
||
{
|
||
Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString);
|
||
Base_Project base_Project = new Base_Project();
|
||
SitePerson_Person sitePerson = new SitePerson_Person();
|
||
base_Project = BLL.ProjectService.GetProjectByProjectCode(ProjectCode);
|
||
if (base_Project == null)
|
||
{
|
||
return;
|
||
}
|
||
var ProUser = SitePerson_PersonService.GetSitePersonByProjectIdPersonId(base_Project.ProjectId, UserID);
|
||
if (ProUser == null)
|
||
{
|
||
sitePerson.SitePersonId = SQLHelper.GetNewID();
|
||
sitePerson.ProjectId = base_Project.ProjectId;
|
||
sitePerson.PersonId = UserID;
|
||
sitePerson.UnitId = Const.UnitId_SEDIN;
|
||
sitePerson.States = Const.State_1;
|
||
SitePerson_PersonService.AddSitePerson(ProUser);
|
||
}
|
||
else
|
||
{
|
||
ProUser.ProjectId = base_Project.ProjectId;
|
||
ProUser.PersonId = UserID;
|
||
ProUser.UnitId = Const.UnitId_SEDIN;
|
||
ProUser.States = Const.State_1;
|
||
SitePerson_PersonService.UpdateSitePerson(ProUser);
|
||
|
||
}
|
||
}
|
||
|
||
|
||
public static Pro_Person SavePro_Person(Pro_Person PersonjsonData)
|
||
{
|
||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||
{
|
||
Pro_Person rb = PersonjsonData;
|
||
|
||
Pro_Person _Person = new Pro_Person
|
||
{
|
||
data = new List<Pro_PersonDataItem>()
|
||
};
|
||
foreach (Pro_PersonDataItem item in rb.data)
|
||
{
|
||
try
|
||
{
|
||
if (CheckDataIsNull(item)) //判断参数是否有空值
|
||
{
|
||
Pro_PersonDataItem pro_personDataItem = new Pro_PersonDataItem
|
||
{
|
||
ProjectCode = item.ProjectCode,
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard
|
||
};
|
||
|
||
_Person.data.Add(pro_personDataItem);
|
||
_Person.Message += item.UserCode + "--参数有误存在null值|";
|
||
continue;
|
||
}
|
||
|
||
|
||
if (item.UserCode == null || item.UserCode == "")
|
||
{
|
||
Pro_PersonDataItem pro_personDataItem = new Pro_PersonDataItem
|
||
{
|
||
ProjectCode = item.ProjectCode,
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard
|
||
};
|
||
|
||
_Person.data.Add(pro_personDataItem);
|
||
_Person.Message += item.UserCode + "--身份证信息有误|";
|
||
continue;
|
||
}
|
||
|
||
if (item.ProjectCode == null || item.ProjectCode == "")
|
||
{
|
||
Pro_PersonDataItem pro_personDataItem = new Pro_PersonDataItem
|
||
{
|
||
ProjectCode = item.ProjectCode,
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard
|
||
};
|
||
|
||
_Person.data.Add(pro_personDataItem);
|
||
_Person.Message += item.UserCode + "--项目代号不能为空|";
|
||
continue;
|
||
}
|
||
|
||
var getPerson = Person_PersonsService.GetPerson_PersonsByJobNum(item.UserCode);
|
||
if (getPerson != null)
|
||
{
|
||
getPerson.JobNum = item.UserCode;
|
||
getPerson.PersonName = item.UserName;
|
||
getPerson.DataFrom = "API";
|
||
db.SubmitChanges();
|
||
APIHTGLPersonService.AddProjectUser(item.ProjectCode, getPerson.PersonId);
|
||
}
|
||
else
|
||
{
|
||
string newKeyID = SQLHelper.GetNewID();
|
||
Model.Person_Persons newUser = new Model.Person_Persons
|
||
{
|
||
PersonId = newKeyID,
|
||
Account = item.UserCode,
|
||
JobNum = item.UserCode,
|
||
PersonName = item.UserName,
|
||
IdentityCard = item.IdentityCard,
|
||
UnitId = Const.UnitId_SEDIN,
|
||
Password = Funs.EncryptionPassword(Const.Password),
|
||
DataFrom = "API",
|
||
};
|
||
db.Person_Persons.InsertOnSubmit(newUser);
|
||
db.SubmitChanges();
|
||
AddProjectUser(item.ProjectCode, newKeyID);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Pro_PersonDataItem pro_personDataItem = new Pro_PersonDataItem
|
||
{
|
||
ProjectCode = item.ProjectCode,
|
||
UserCode = item.UserCode,
|
||
UserName = item.UserName,
|
||
IdentityCard = item.IdentityCard
|
||
};
|
||
|
||
_Person.data.Add(pro_personDataItem);
|
||
_Person.Message += ex.Message;
|
||
}
|
||
}
|
||
return _Person;
|
||
}
|
||
}
|
||
|
||
private static bool CheckDataIsNull(object t)
|
||
{
|
||
bool Isok = false;
|
||
Type type = t.GetType();
|
||
PropertyInfo[] pArray = type.GetProperties();
|
||
|
||
foreach (PropertyInfo p in pArray)
|
||
{
|
||
if (p.GetValue(t) == null)
|
||
{
|
||
Isok = true;
|
||
|
||
}
|
||
}
|
||
return Isok;
|
||
}
|
||
/// <summary>
|
||
/// 将图片转换为二进制流
|
||
/// </summary>
|
||
/// <param name="image">图片</param>
|
||
/// <returns></returns>
|
||
private static byte[] GetImageBytes(Image image)
|
||
{
|
||
MemoryStream ms = new MemoryStream();
|
||
BinaryFormatter bf = new BinaryFormatter();
|
||
bf.Serialize(ms, (object)image);
|
||
ms.Close();
|
||
return ms.ToArray();
|
||
}
|
||
//将图片转换为二进制流的调用
|
||
// bt1 = GetImageBytes(rootComponent.BackgroundImage);
|
||
|
||
|
||
/// <summary>
|
||
/// 将二进制流转换为图片
|
||
/// </summary>
|
||
/// <param name="bytes"></param>
|
||
/// <returns></returns>
|
||
public static Image ReadImage(byte[] bytes)
|
||
{
|
||
//MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length);
|
||
//BinaryFormatter bf = new BinaryFormatter();
|
||
//object obj = bf.Deserialize(ms);
|
||
//ms.Close();
|
||
//return (Image)obj; //方法一
|
||
using (MemoryStream ms = new MemoryStream(bytes))
|
||
{
|
||
Image outputImg = Image.FromStream(ms);
|
||
ms.Close();
|
||
|
||
return outputImg;
|
||
}
|
||
}
|
||
|
||
//将二进制流转换为图片
|
||
// pb.Image = ReadImage((byte[]) ri.Result.Rows[i]["image"]);
|
||
|
||
}
|
||
} |