SGGL_SHJ/SGGL/BLL/API/HTGL/APIHTGLPersonService.cs

329 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"]);
}
}