329 lines
14 KiB
C#
329 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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var getPerson = Person_PersonsService.GetPerson_PersonsByJobNum(item.UserCode);
|
|||
|
|
if (getPerson != null)
|
|||
|
|
{
|
|||
|
|
getPerson.JobNum = item.UserCode;
|
|||
|
|
getPerson.PersonName = item.UserName;
|
|||
|
|
getPerson.DataFrom = "API";
|
|||
|
|
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"]);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|