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 { /// /// /// /// 人员信息(json字符串) 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() }; 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, 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; } } 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; } /// /// 将图片转换为二进制流 /// /// 图片 /// 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); /// /// 将二进制流转换为图片 /// /// /// 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"]); } }