using AutoMapper; using Newtonsoft.Json; using OASystem.Domain; using OASystem.Domain.AesEncryption; using OASystem.Domain.Dtos; using OASystem.Domain.Dtos.CRM; using OASystem.Domain.Dtos.UserDto; using OASystem.Domain.Entities.Customer; using OASystem.Domain.Entities.Groups; using OASystem.Domain.Entities.Resource; using OASystem.Domain.ViewModels.CRM; using OASystem.Domain.ViewModels.Groups; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Intrinsics.X86; using System.Text; using System.Threading.Tasks; namespace OASystem.Infrastructure.Repositories.CRM { /// /// 签证客户 仓库 /// public class VisaDeleClientRepository : BaseRepository { private readonly IMapper _mapper; public VisaDeleClientRepository(SqlSugarClient sqlSugar,IMapper mapper) : base(sqlSugar) { this._mapper = mapper; } /// /// 签证客户list /// /// /// public async Task GetCrmList(DtoBase dto) { Result result = new Result() { Code = -2 }; if (dto.PortType == 1 || dto.PortType == 2 || dto.PortType == 3) { string sql = string.Format(@"Select cdc.Id,cdc.LastName,cdc.FirstName,ccc.CompanyFullName,Sex,Marriage, Phone LandlinePhone,Tel,crmCard1.CertNo IDNo,crmCard2.CertNo PassportNo From Crm_DeleClient cdc Left Join Crm_CustomerCompany ccc On cdc.crmCompanyId = ccc.Id Left Join Crm_CustomerCert crmCard1 On crmCard1.SdId = 773 And cdc.Id = crmCard1.DcId And crmCard1.Isdel=0 Left Join Crm_CustomerCert crmCard2 On crmCard2.SdId = 774 And cdc.Id = crmCard2.DcId And crmCard2.IsDel=0 where cdc.IsDel='0' order By cdc.CreateTime desc"); var clientList = await _sqlSugar.SqlQueryable(sql).ToListAsync(); foreach (var item in clientList) { EncryptionProcessor.DecryptProperties(item); } if (clientList.Count > 0) { result.Code = 0; result.Msg = "成功!"; result.Data = clientList; } else { result.Msg = "暂无数据!"; } } return result; } /// /// 签证客户操作 /// /// /// public async Task CrmClinetoperation(LoginDto loginDto) { Result result = new Result() { Code = -2 }; return result; } /// /// 签证客户 新增 /// /// /// public async Task CrmClinetAdd(Crm_DeleClient client) { int addId = -1; return addId; } /// /// 根据身份证识别修改ocr添加 /// /// /// public async Task SetCrmUpdPassIdCardOCR(SetCrmUpdPassIdCardOCRDto client) { string clientSql = string.Format(@"Select * From Crm_DeleClient Where LastName+FirstName='{0}' And Sex = {1}", client.ClientName, client.Sex); var clientInfo = await _sqlSugar.SqlQueryable(clientSql).FirstAsync(); if(clientInfo == null) return false; string cardSql = string.Format(@"Select * From Crm_CustomerCert Where SdId=773 And DcId={0}", clientInfo.Id); var cardInfo = await _sqlSugar.SqlQueryable(cardSql).FirstAsync(); if (cardInfo == null) //添加 { int cerdAdd = await _sqlSugar.Insertable(new Crm_CustomerCert { DcId = clientInfo.Id, SdId = 773, Country = "中国", CertNo = client.CerdNo, TargetCountry = "", IssueDt = new DateTime(1990, 1, 1), ExpiryDt = new DateTime(1990, 1, 1), CreateUserId = client.UserId, CreateTime = DateTime.Now, DeleteUserId = null, DeleteTime = "1990-01-01 00:00:00.000", Remark = "", IsDel = 0 }).ExecuteReturnIdentityAsync(); if (cerdAdd > 0) return true; } else //修改 { var cerdStatus = await _sqlSugar.Updateable() .Where(c => c.Id == cardInfo.Id) .SetColumns(c => new Crm_CustomerCert { CertNo = cardInfo.CertNo, IDCardAddress = cardInfo.IDCardAddress }).ExecuteCommandAsync(); if (cerdStatus > 0) return true; } return false; } public async Task OpCustomer(DeleClientOpDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { EncryptionProcessor.EncryptProperties(dto.DeleClient); BeginTran(); int deleId = 0; if (dto.Status==1)//添加 { string selectSql = string.Format(@"select * from Crm_DeleClient where LastName+FirstName='{0}' and Phone='{1}' and IsDel='{2}'" , dto.DeleClient.LastName+dto.DeleClient.FirstName, dto.DeleClient.Phone, 0); var DeleClient = await _sqlSugar.SqlQueryable(selectSql).FirstAsync();//查询是否存在 if (DeleClient != null) { result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" }; } else//不存在,可添加 { Crm_DeleClient _CountryFeeCost = _mapper.Map(dto.DeleClient); int id = await AddAsyncReturnId(_CountryFeeCost); if (id == 0) { result = new Result() { Code = -1, Msg = "添加失败!" }; } result = new Result() { Code = 0, Msg = "添加成功!" }; deleId = id; } } else if (dto.Status == 2)//修改 { deleId=dto.DeleClient.Id; DateTime? dateTime = null; bool isDt = DateTime.TryParse(dto.DeleClient.BirthDay, out DateTime dt); if (isDt) dateTime = dt; bool res = await UpdateAsync(a => a.Id == dto.DeleClient.Id, a => new Crm_DeleClient { DiId = dto.DeleClient.DiId, LastName = dto.DeleClient.LastName, FirstName = dto.DeleClient.FirstName, OldName = dto.DeleClient.OldName, Pinyin = dto.DeleClient.Pinyin, Sex = dto.DeleClient.Sex, Marriage = dto.DeleClient.Marriage, Phone = dto.DeleClient.Phone, BirthProvince = dto.DeleClient.BirthProvince, BirthCity = dto.DeleClient.BirthCity, BirthDay = dateTime, AirType = dto.DeleClient.AirType, SeatPref = dto.DeleClient.SeatPref, AirRemark = dto.DeleClient.AirRemark, RoomType = dto.DeleClient.RoomType, RoomPref = dto.DeleClient.RoomPref, Tel = dto.DeleClient.Tel, Email = dto.DeleClient.Email, Address = dto.DeleClient.Address, HighestEducation = dto.DeleClient.HighestEducation, PostCodes = dto.DeleClient.PostCodes, CrmCompanyId = dto.DeleClient.CrmCompanyId, Job = dto.DeleClient.Job, WorkState = dto.DeleClient.WorkState, WorkDate = dto.DeleClient.WorkDate, Wage = dto.DeleClient.Wage, ClientPhone = dto.DeleClient.ClientPhone, ClientFax = dto.DeleClient.ClientFax, ClientEmail = dto.DeleClient.ClientEmail, ClientLeader = dto.DeleClient.ClientLeader, ClientLeaderJob = dto.DeleClient.ClientLeaderJob, IsGetSchengen = dto.DeleClient.IsGetSchengen, StartTime = dto.DeleClient.StartTime, EndTime = dto.DeleClient.EndTime, IsFinger = dto.DeleClient.IsFinger, FingerDate = dto.DeleClient.FingerDate, IsVisitUC = dto.DeleClient.IsVisitUC, USADate = dto.DeleClient.USADate, USADays = dto.DeleClient.USADays, CanDate = dto.DeleClient.CanDate, CanDays = dto.DeleClient.CanDays, IsUSAVia = dto.DeleClient.IsUSAVia, GetUSAVisaDate = dto.DeleClient.GetUSAVisaDate, GetUPPlace = dto.DeleClient.GetUPPlace, USAVisaCate = dto.DeleClient.USAVisaCate, USAVisaCode = dto.DeleClient.USAVisaCode, USAFinger = dto.DeleClient.USAFinger, IsRejected = dto.DeleClient.IsRejected, RejectedDate = dto.DeleClient.RejectedDate, RejectedPlace = dto.DeleClient.RejectedPlace, RejectedVisa = dto.DeleClient.RejectedVisa, IsRevoke = dto.DeleClient.IsRevoke, IsLose = dto.DeleClient.IsLose, LoseDate = dto.DeleClient.LoseDate, LoseCode = dto.DeleClient.LoseCode, IsUSAVisa = dto.DeleClient.IsUSAVisa, MateUSA = dto.DeleClient.MateUSA, MateIden = dto.DeleClient.MateIden, WHUSA = dto.DeleClient.WHUSA, WHIden = dto.DeleClient.WHIden, ParentUSA = dto.DeleClient.ParentUSA, ParentIden = dto.DeleClient.ParentIden, ChildUSA = dto.DeleClient.ChildUSA, ChildIden = dto.DeleClient.ChildIden, BroUSA = dto.DeleClient.BroUSA, BroIden = dto.DeleClient.BroIden, Social = dto.DeleClient.Social, IsArmy = dto.DeleClient.IsArmy, ArmyState = dto.DeleClient.ArmyState, CostBearers = dto.DeleClient.CostBearers, TableOpName = dto.DeleClient.TableOpName, TableOpTel = dto.DeleClient.TableOpTel, TableDate = dto.DeleClient.TableDate, Party = dto.DeleClient.Party, Nationality = dto.DeleClient.Nationality, WeddingDate = dto.DeleClient.WeddingDate, DivorceDate = dto.DeleClient.DivorceDate, MateName = dto.DeleClient.MateName, MateBirthDay = dto.DeleClient.MateBirthDay, MateBirthCity = dto.DeleClient.MateBirthCity, MateBirthCountry = dto.DeleClient.MateBirthCountry, MateAddress = dto.DeleClient.MateAddress, MateClient = dto.DeleClient.MateClient, MateClientAddress = dto.DeleClient.MateClientAddress, MateJob = dto.DeleClient.MateJob, VisitCountry = dto.DeleClient.VisitCountry, Paper = dto.DeleClient.Paper, Papent = dto.DeleClient.Papent, PhD = dto.DeleClient.PhD, CreateUserId = dto.DeleClient.CreateUserId, Remark = dto.DeleClient.Remark, }); if (!res) { result = new Result() { Code = -1, Msg = "修改失败!" }; } result = new Result() { Code = 0, Msg = "修改成功!" }; } //进行其他表 if (result.Code == 0) {//家庭成员信息 foreach (CustomerFamily item in dto.CustomerFamily) { Crm_VisaCustomerFamily Crm_VisaCustomerFamily = _mapper.Map(item); Crm_VisaCustomerFamily.DcId = deleId; if (item.Id != 0)//修改 { int res = await _sqlSugar.Updateable().Where(a => a.Id == Crm_VisaCustomerFamily.Id).SetColumns(a => new Crm_VisaCustomerFamily { Appellation = Crm_VisaCustomerFamily.Appellation, Name = Crm_VisaCustomerFamily.Name, BirthDay = Crm_VisaCustomerFamily.BirthDay, BirthPlace = Crm_VisaCustomerFamily.BirthPlace, Politics = Crm_VisaCustomerFamily.Politics, Client = Crm_VisaCustomerFamily.Client, Address = Crm_VisaCustomerFamily.Address, IsEu = Crm_VisaCustomerFamily.IsEu, NameSnd = Crm_VisaCustomerFamily.NameSnd, BirthDaySnd = Crm_VisaCustomerFamily.BirthDaySnd, Nationality = Crm_VisaCustomerFamily.Nationality, IDCard = Crm_VisaCustomerFamily.IDCard, Reletionship = Crm_VisaCustomerFamily.Reletionship, IsUSA = Crm_VisaCustomerFamily.IsUSA, Remark = Crm_VisaCustomerFamily.Remark, }).ExecuteCommandAsync(); if (res==0) { result = new Result() { Code = -1, Msg = "家庭成员信息保存失败!" }; RollbackTran(); } } else if (item.Id == 0)//添加 { int sss= await _sqlSugar.Insertable(Crm_VisaCustomerFamily).ExecuteReturnIdentityAsync(); if (sss == 0) { result = new Result() { Code = -1, Msg = "家庭成员信息保存失败!" }; RollbackTran(); } } } //证件表信息 foreach (CustomerCerts item in dto.CustomerCert) { Crm_CustomerCert CustomerCert = _mapper.Map(item); CustomerCert.DcId = deleId; if (item.Id != 0)//修改 { int res = await _sqlSugar.Updateable().Where(a => a.Id == CustomerCert.Id).SetColumns(a => new Crm_CustomerCert { DcId=CustomerCert.DcId, SdId = CustomerCert.SdId, CertNo = CustomerCert.CertNo, Country = CustomerCert.Country, Area = CustomerCert.Area, TargetCountry = CustomerCert.TargetCountry, IssueDt = CustomerCert.IssueDt, ExpiryDt = CustomerCert.ExpiryDt, IDCardAddress = CustomerCert.IDCardAddress, CreateUserId = CustomerCert.CreateUserId, Remark = CustomerCert.Remark, }).ExecuteCommandAsync(); if (res == 0) { result = new Result() { Code = -1, Msg = "证件信息保存失败!" }; RollbackTran(); } } else if (item.Id == 0)//添加 { int sss = await _sqlSugar.Insertable(CustomerCert).ExecuteReturnIdentityAsync(); if (sss == 0) { result = new Result() { Code = -1, Msg = "证件信息保存失败!" }; RollbackTran(); } } } //客户工作经历表 foreach (VisaCustomerCompany item in dto.WorkExperience) { Crm_VisaCustomerCompany VisaCustomerCompany = _mapper.Map(item); VisaCustomerCompany.DcId = deleId; if (item.Id != 0)//修改 { int res = await _sqlSugar.Updateable().Where(a => a.Id == VisaCustomerCompany.Id).SetColumns(a => new Crm_VisaCustomerCompany { DcId=VisaCustomerCompany.DcId, Company = VisaCustomerCompany.Company, CompanyAddress = VisaCustomerCompany.CompanyAddress, Phone = VisaCustomerCompany.Phone, Job = VisaCustomerCompany.Job, LeaderName = VisaCustomerCompany.LeaderName, WorkStart = VisaCustomerCompany.WorkStart, WorkEnd = VisaCustomerCompany.WorkEnd, WorkState = VisaCustomerCompany.WorkState, CreateUserId = VisaCustomerCompany.CreateUserId, Remark = VisaCustomerCompany.Remark, }).ExecuteCommandAsync(); if (res == 0) { result = new Result() { Code = -1, Msg = "客户工作经历保存失败!" }; RollbackTran(); } } else if (item.Id == 0)//添加 { int sss = await _sqlSugar.Insertable(VisaCustomerCompany).ExecuteReturnIdentityAsync(); if (sss == 0) { result = new Result() { Code = -1, Msg = "客户工作经历保存失败!" }; RollbackTran(); } } } //客户学历表 foreach (VisaCustomerSchool item in dto.CustomerSchool) { Crm_VisaCustomerSchool VisaCustomerSchool = _mapper.Map(item); VisaCustomerSchool.DcId = deleId; if (item.Id != 0)//修改 { int res = await _sqlSugar.Updateable().Where(a => a.Id == VisaCustomerSchool.Id).SetColumns(a => new Crm_VisaCustomerSchool { DcId = VisaCustomerSchool.DcId, School = VisaCustomerSchool.School, Address = VisaCustomerSchool.Address, Teacher = VisaCustomerSchool.Teacher, Education = VisaCustomerSchool.Education, Subject = VisaCustomerSchool.Subject, StudyStart = VisaCustomerSchool.StudyStart, StudyEnd = VisaCustomerSchool.StudyEnd, CreateUserId = VisaCustomerSchool.CreateUserId, Remark = VisaCustomerSchool.Remark, }).ExecuteCommandAsync(); if (res == 0) { result = new Result() { Code = -1, Msg = "客户学历信息保存失败!" }; RollbackTran(); } } else if (item.Id == 0)//添加 { int sss = await _sqlSugar.Insertable(VisaCustomerSchool).ExecuteReturnIdentityAsync(); if (sss == 0) { result = new Result() { Code = -1, Msg = "客户学历信息保存失败!" }; RollbackTran(); } } } CommitTran(); } } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "程序错误!" }; throw; } return result; } public async Task DelCustomer(DeleClientDelDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { bool isOk=await SoftDeleteByIdAsync(dto.Id.ToString(),dto.DeleteUserId); if (isOk)//删除其他表数据 { //客户工作经历 await _sqlSugar.Updateable().Where(a => a.DcId==dto.Id).SetColumns(a => new Crm_VisaCustomerCompany() { IsDel = 1, DeleteUserId = dto.DeleteUserId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ExecuteCommandAsync(); //客户学历 await _sqlSugar.Updateable().Where(a => a.DcId == dto.Id).SetColumns(a => new Crm_VisaCustomerSchool() { IsDel = 1, DeleteUserId = dto.DeleteUserId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ExecuteCommandAsync(); //客户家庭成员信息 await _sqlSugar.Updateable().Where(a => a.DcId == dto.Id).SetColumns(a => new Crm_VisaCustomerFamily() { IsDel = 1, DeleteUserId = dto.DeleteUserId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ExecuteCommandAsync(); //客户证件表 await _sqlSugar.Updateable().Where(a => a.DcId == dto.Id).SetColumns(a => new Crm_CustomerCert() { IsDel = 1, DeleteUserId = dto.DeleteUserId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }).ExecuteCommandAsync(); return result = new Result() { Code = 0, Msg = "删除成功!" }; } } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "程序错误!" }; throw; } return result; } } }