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; } 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() }; 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; } /// /// 将图片转换为二进制流 /// /// 图片 /// 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"]); } }