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

215 lines
8.7 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;
}
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_Persons(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,
DataFrom = "API"
};
newPersons.RawPassword = Funs.getInitialPassword(newPersons.UnitId, newPersons.IdentityCard);
newPersons.Password = Funs.EncryptionPassword(newPersons.RawPassword);
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"]);
}
}