public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string json, AbsSynchroDataInfo data = null) { JArray jArr = JArray.Parse(json); List <K3CustContactInfo> contacts = null; K3CustContactInfo contact = null; K3CustomerInfo k3Cust = null; List <string> addrNos = null; if (jArr != null && jArr.Count > 0) { addrNos = jArr.Select(j => JsonUtils.GetFieldValue(j, "address_book_id")).ToList(); } if (addrNos != null && addrNos.Count > 0) { string sql = string.Format(@"/*dialect*/ select a.FNUMBER as CUSTNO,b.FNUMBER as ADDRNO from T_BD_CUSTOMER a inner join T_BD_CUSTLOCATION b on a.FCUSTID = b.FCUSTID where b.FNUMBER in( '{0}') ", string.Join("','", addrNos)); DynamicObjectCollection coll = SQLUtils.GetObjects(ctx, sql); var group = from o in coll group o by SQLUtils.GetFieldValue(o, "CUSTNO") into c select c; if (group != null && group.Count() > 0) { foreach (var g in group) { if (g != null) { contacts = new List <K3CustContactInfo>(); k3Cust = new K3CustomerInfo(); k3Cust.FNumber = SQLUtils.GetFieldValue(g.ElementAt(0), "CUSTNO"); foreach (var s in g) { if (s != null) { contact = new K3CustContactInfo(); contact.FNUMBER1 = SQLUtils.GetFieldValue(s, "ADDRNO"); contacts.Add(contact); } } k3Cust.lstCustCtaInfo = contacts; } } } } return(k3Cust); }
/// <summary> /// 客户地址(数据源:execl) /// </summary> /// <returns></returns> public static List <K3CustContactInfo> GetK3CustContactInfoByExcel(Context ctx) { List <K3CustContactInfo> contacts = null; K3CustContactInfo contact = null; string sql = null; DynamicObjectCollection coll = null; sql = string.Format(@"/*dialect*/ select * from address_book t where countries_iso_code_2 != 'NULL' and not exists ( select distinct b.FNUMBER , a.FNUMBER from T_BD_CUSTLOCATION a inner join T_BD_CUSTOMER b on a.FCUSTID = b.FCUSTID where b.FNUMBER = t.customers_id and a.FNUMBER = t.address_book_id ) "); coll = SQLUtils.GetObjects(ctx, sql); if (coll != null && coll.Count > 0) { contacts = new List <K3CustContactInfo>(); foreach (var item in coll) { contact = new K3CustContactInfo(); contact.FCustNo = SQLUtils.GetFieldValue(item, "customers_id"); contact.FNUMBER1 = SQLUtils.GetFieldValue(item, "address_book_id"); contact.FNAME1 = SQLUtils.GetFieldValue(item, "entry_street_address") + " " + SQLUtils.GetFieldValue(item, "entry_city") + " " + SQLUtils.GetFieldValue(item, "entry_state") + " " + SQLUtils.GetFieldValue(item, "countries_iso_code_2"); contact.FADDRESS1 = SQLUtils.GetFieldValue(item, "entry_street_address"); contact.FTTel = SQLUtils.GetFieldValue(item, "entry_telephone"); contact.F_HS_DeliveryName = SQLUtils.GetFieldValue(item, "entry_firstname") + " " + SQLUtils.GetFieldValue(item, "entry_lastname"); contact.F_HS_PostCode = SQLUtils.GetFieldValue(item, "entry_postcode"); contact.F_HS_DeliveryCity = SQLUtils.GetFieldValue(item, "entry_city"); contact.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(item, "entry_state"); contact.F_HS_RecipientCountry = SQLUtils.GetFieldValue(item, "countries_iso_code_2"); contacts.Add(contact); } } return(contacts); }
/// <summary> /// 验证客户地址是否已经存在 /// </summary> /// <param name="ctx"></param> /// <param name="contact"></param> /// <returns></returns> public bool CustAdrrIsExistInK3(Context ctx, K3CustContactInfo contact) { string sql = string.Empty; try { if (contact != null) { sql = string.Format(@"/*dialect*/ select FNUMBER from T_BD_CUSTLOCATION where FNUMBER = '{0}'", contact.FNUMBER1); DynamicObjectCollection coll = SQLUtils.GetObjects(ctx, sql); if (coll != null) { if (coll.Count >= 2) { return(true); } else { if (coll.Count == 1) { sql = string.Format(@"/*dialect*/ delete from T_BD_CUSTLOCATION where FNUMBER = '{0}'", contact.FNUMBER1); int count = DBUtils.Execute(ctx, sql); if (count > 0) { return(false); } } else if (coll.Count == 0) { return(false); } } } return(false); } } catch (Exception ex) { LogUtils.WriteSynchroLog(ctx, SynchroDataType.CustomerAddress, "客户地址同步失败:" + System.Environment.NewLine + ex.Message + System.Environment.NewLine + ex.StackTrace); } return(false); }
/// <summary> /// 客户地址信息 /// </summary> /// <param name="cust"></param> /// <returns></returns> public JArray BuildK3CustContactJsons(K3CustomerInfo cust) { JArray FT_BD_CUSTCONTACT = null; JObject contactObj = null; if (cust != null) { FT_BD_CUSTCONTACT = new JArray(); if (cust.lstCustCtaInfo != null && cust.lstCustCtaInfo.Count > 0) { for (int i = 0; i < cust.lstCustCtaInfo.Count; i++) { contactObj = new JObject(); K3CustContactInfo contactData = cust.lstCustCtaInfo.ElementAt(i); contactObj.Add("FNUMBER1", contactData.FNUMBER1); //地址编码 contactObj.Add("FNAME1", contactData.FNAME1); //地点名称 contactObj.Add("FADDRESS1", contactData.FADDRESS1); //详细地址 //contactObj.Add("FTTel", contactData.FTTel);//移动电话 contactObj.Add("FMOBILE", contactData.FMOBILE); contactObj.Add("F_HS_DeliveryName", contactData.F_HS_DeliveryName); //交货联系人 contactObj.Add("F_HS_PostCode", contactData.F_HS_PostCode); //交货邮编 contactObj.Add("F_HS_DeliveryCity", contactData.F_HS_DeliveryCity); //交货城市 contactObj.Add("F_HS_DeliveryProvinces", contactData.F_HS_DeliveryProvinces); //交货省份 if (string.IsNullOrWhiteSpace(contactData.F_HS_RecipientCountry)) { string errorInfo = "客户地址同步,客户编码为:[" + contactData.FCustNo + "]的信息国家编码为空!"; LogUtils.WriteSynchroLog(this.K3CloudContext, SynchroDataType.CustomerAddress, errorInfo); } JObject F_HS_RecipientCountry = new JObject();//国家 F_HS_RecipientCountry.Add("FNumber", contactData.F_HS_RecipientCountry); contactObj.Add("F_HS_RecipientCountry", F_HS_RecipientCountry); FT_BD_CUSTCONTACT.Add(contactObj); } } } return(FT_BD_CUSTCONTACT); }
/// <summary> /// 客户地址信息 /// </summary> /// <param name="cust"></param> /// <returns></returns> public JArray BuildK3CustContactJsons(K3CustomerInfo cust) { JArray FT_BD_CUSTCONTACT = null; JObject contactObj = null; if (cust != null) { FT_BD_CUSTCONTACT = new JArray(); if (cust.lstCustCtaInfo != null && cust.lstCustCtaInfo.Count > 0) { for (int i = 0; i < cust.lstCustCtaInfo.Count; i++) { contactObj = new JObject(); K3CustContactInfo contactData = cust.lstCustCtaInfo.ElementAt(i); contactObj.Add("FNUMBER1", contactData.FNUMBER1); //地址编码 contactObj.Add("FNAME1", contactData.FNAME1); //地点名称 contactObj.Add("FADDRESS1", contactData.FADDRESS1); //详细地址 contactObj.Add("FTTel", contactData.FMOBILE); //移动电话 contactObj.Add("F_HS_DeliveryName", contactData.F_HS_DeliveryName); //交货联系人 contactObj.Add("F_HS_PostCode", contactData.F_HS_PostCode); //交货邮编 contactObj.Add("F_HS_DeliveryCity", contactData.F_HS_DeliveryCity); //交货城市 contactObj.Add("F_HS_DeliveryProvinces", contactData.F_HS_DeliveryProvinces); //交货省份 JObject F_HS_RecipientCountry = new JObject(); //国家 F_HS_RecipientCountry.Add("FNumber", contactData.F_HS_RecipientCountry); contactObj.Add("F_HS_RecipientCountry", F_HS_RecipientCountry); FT_BD_CUSTCONTACT.Add(contactObj); } } } return(FT_BD_CUSTCONTACT); }
public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string json, AbsSynchroDataInfo data = null) { JArray jArr = JArray.Parse(json); List <K3CustContactInfo> contacts = null; K3CustContactInfo contact = null; if (jArr != null && jArr.Count > 0) { contacts = new List <K3CustContactInfo>(); for (int i = 0; i < jArr.Count; i++) { JObject jObj = jArr[i] as JObject; contact = new K3CustContactInfo(); contact.FCustNo = JsonUtils.GetFieldValue(jObj, "customers_id"); contact.FNUMBER1 = JsonUtils.GetFieldValue(jObj, "address_book_id"); contact.FNAME1 = JsonUtils.GetFieldValue(jObj, "entry_street_address") + " " + JsonUtils.GetFieldValue(jObj, "entry_city") + " " + JsonUtils.GetFieldValue(jObj, "entry_state") + " " + JsonUtils.GetFieldValue(jObj, "countries_iso_code_2"); contact.FADDRESS1 = JsonUtils.GetFieldValue(jObj, "entry_street_address") + System.Environment.NewLine + JsonUtils.GetFieldValue(jObj, "entry_suburb"); //contact.FTTel = JsonUtils.GetFieldValue(jObj, "entry_telephone"); contact.FMOBILE = JsonUtils.GetFieldValue(jObj, "entry_telephone"); contact.F_HS_DeliveryName = JsonUtils.GetFieldValue(jObj, "entry_firstname") + " " + JsonUtils.GetFieldValue(jObj, "entry_lastname"); contact.F_HS_PostCode = JsonUtils.GetFieldValue(jObj, "entry_postcode"); contact.F_HS_DeliveryCity = JsonUtils.GetFieldValue(jObj, "entry_city"); contact.F_HS_DeliveryProvinces = JsonUtils.GetFieldValue(jObj, "entry_state"); contact.F_HS_RecipientCountry = JsonUtils.GetFieldValue(jObj, "countries_iso_code_2"); if (string.IsNullOrWhiteSpace(contact.F_HS_RecipientCountry)) { string errorInfo = "客户地址同步,客户编码为:[" + contact.FCustNo + "]的信息国家编码为空!"; LogUtils.WriteSynchroLog(ctx, SynchroDataType.CustomerAddress, errorInfo); } contacts.Add(contact); } } if (contacts != null && contacts.Count > 0) { K3CustomerInfo k3Cust = GetCustomerByNo(ctx, contacts.ElementAt(0).FCustNo); if (k3Cust != null) { if (string.IsNullOrWhiteSpace(k3Cust.FFCOUNTRY)) { k3Cust.FFCOUNTRY = contacts.Select(c => c.F_HS_RecipientCountry).ToList().ElementAt(0); } k3Cust.lstCustCtaInfo = contacts; return(k3Cust); } else { k3Cust = new K3CustomerInfo(); k3Cust.lstCustCtaInfo = contacts; return(k3Cust); } } return(null); }