/// <summary> /// 同步工单 /// </summary> /// <param name="type"></param> /// <param name="lastSyncTime"></param> /// <param name="ErpVoucherNo"></param> /// <param name="wmsVourcherType"></param> /// <param name="errorMsg"></param> /// <returns></returns> public bool SyncWO(string lastSyncTime, string ErpVoucherNo, ref string errMsg, int type = 3, int wmsVourcherType = 32) { ParamaterFiled_DB db = new ParamaterFiled_DB(); string[] filter = ErpVoucherNo.Split('-'); string CompanyNo = ""; string ErpvourcherType = ""; if (filter.Length == 3) { CompanyNo = filter[0]; ErpvourcherType = filter[1]; } List <ParamaterField_Model> pmList = new List <ParamaterField_Model>(); bool result = GetPMList(type, ref pmList, ref errMsg, wmsVourcherType, CompanyNo, ErpvourcherType); if (!result) { errMsg = "未配置单据类型!"; return(false); } var TypeList = pmList.DistinctBy(s => new { s.ErpVourcherType, s.CompanyNo }); string dataJson = string.Empty; bool returnValue = true; foreach (var Type in TypeList) { dataJson = String.Empty; string ErpvouType = Type.ErpVourcherType.ToString(); string WmsvouType = Type.VoucherType.ToString(); string companyNo = Type.CompanyNo.ToString(); string json = GetERPInfo(type, companyNo, ErpvouType, WmsvouType, ErpVoucherNo, lastSyncTime); result = GetDataJson(json, ref dataJson, ref errMsg); if (result) { if (pmList.Count > 0 && !String.IsNullOrEmpty(dataJson.TrimStart('[').TrimEnd(']'))) { LogNet.DebugInfo("ERP同步工单号:" + ErpVoucherNo + " \r\n ERP返回Json:" + dataJson); List <ParamaterField_Model> pmListbyType = pmList.FindAll(p => p.VoucherType.ToString() == WmsvouType); List <WOReturnModel> WOReturns = new List <WOReturnModel>(); result = db.WOComparerListAndCreateSQL(pmListbyType, dataJson, ErpvouType, Type.VoucherType, ref WOReturns, ref errMsg, "ERP"); if (!result) { return(result); } if (WOReturns.Count != 0) { string returnJson = JsonConvert.SerializeObject(WOReturns); string returnErr = ""; if (!SubmitMesStatus(returnJson, ref returnErr)) { returnValue = false; errMsg += ErpVoucherNo + ":" + returnErr + "\r\n"; } } } } } return(returnValue); }