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

215 lines
8.7 KiB
C#
Raw Normal View History

2022-09-05 16:36:31 +08:00
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;
}
2023-02-16 17:19:08 +08:00
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);
2022-09-05 16:36:31 +08:00
2023-02-16 17:19:08 +08:00
}
2022-09-05 16:36:31 +08:00
if (getPerson != null)
{
getPerson.JobNum = item.UserCode;
getPerson.PersonName = item.UserName;
getPerson.DataFrom = "API";
2023-02-16 17:19:08 +08:00
getPerson.IdentityCard = item.IdentityCard;
2022-09-05 16:36:31 +08:00
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();
2023-03-01 13:57:09 +08:00
Person_PersonsService.UpdatePerson_Persons(getPerson);
2022-09-05 16:36:31 +08:00
}
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,
2022-09-05 16:36:31 +08:00
DataFrom = "API"
};
newPersons.RawPassword = Funs.getInitialPassword(newPersons.UnitId, newPersons.IdentityCard);
newPersons.Password = Funs.EncryptionPassword(newPersons.RawPassword);
2022-09-05 16:36:31 +08:00
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;
}
}
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"]);
}
}