using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HH.WCS.Mobox3.YNJT_BZP_GT.util; using HH.WCS.Mobox3.YNJT_BZP_GT.models; using static HH.WCS.Mobox3.YNJT_BZP_GT.api.ApiModel; namespace HH.WCS.Mobox3.YNJT_BZP_GT.dispatch { public class WMSDispatch { private static readonly HttpHelper apiHelper = new HttpHelper(); private static readonly string baseUrl = Settings.WMSSeverUrl; /// /// 1.同步物料条码信息 /// /// public static bool synMatlInformation(SynMatlInformationModel model) { var msg = ""; bool bo = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/Wms/synMatlInformation", request); msg = $"[synMatlInformation] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ResultCode == 0) { bo = true; } else { LogHelper.Info($"接口返回异常,异常原因:{dataResult.ResultMsg}", "WMS"); } } catch (Exception ex) { LogHelper.Info($"同步物料条码信息错误,错误原因:{ex.Message}", "WMS"); } } else { msg = "[synMatlInformation]同步物料条码信息失败"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); } return bo; } /// /// 2.同步更新物料状态 /// /// public static bool synUpdateMatlStatus(SynBarcodeStatusModel model) { var msg = ""; bool bo = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/Wms/synBarcodeStatus", request); msg = $"[synUpdateMatlStatus] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ResultCode == 0) { bo = true; } else { LogHelper.Info($"接口返回异常,异常原因:{dataResult.ResultMsg}", "WMS"); } } catch (Exception ex) { LogHelper.Info($"同步更新物料状态错误,错误原因:{ex.Message}", "WMS"); } } else { msg = "[synUpdateMatlStatus]同步更新物料状态失败"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); } return bo; } /// /// 3.同步更新抽检物料状态 /// /// public static bool synUpdateSampleMatlStatus(SynSampleStatusModel model) { var msg = ""; bool bo = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/Wms/synSampleStatus", request); msg = $"[synUpdateSampleMatlStatus] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ResultCode == 0) { bo = true; } else { LogHelper.Info($"接口返回异常,异常原因:{dataResult.ResultMsg}", "WMS"); } } catch (Exception ex) { LogHelper.Info($"同步更新物料状态错误,错误原因:{ex.Message}", "WMS"); } } else { msg = "[synUpdateSampleMatlStatus]同步更新抽检物料状态失败"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); } return bo; } /// /// 4.查询上一次的记录时间 /// /// public static string findDataLastSynTime(SynTableModel model) { var msg = ""; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/Wms/findDataLastSynTime", request); msg = $"[findDataLastSynTime] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ResultCode == 0) { return dataResult.data.ToString(); } else { LogHelper.Info($"接口返回异常,异常原因:{dataResult.ResultMsg}", "WMS"); } } catch (Exception ex) { LogHelper.Info($"查询上一次的记录时间错误,错误原因:{ex.Message}", "WMS"); } } else { msg = "[findDataLastSynTime]查询上一次的记录时间失败"; Console.WriteLine(msg); LogHelper.Info(msg, "WMS"); } return null; } public class MatlTimeConfigModel { public List overages { get; set; } } public class SynDataTimeRecord { public string S_SYN_TIME { get; set; } // 同步时间 public string RECORD_TABLE { get; set; } // 1.物料条码记录表 2.胚胎条码状态表 } public class SynTableModel { public int tableType { get; set; } // 1.半制品条码信息表 2.条码状态表 3.抽检状态表 } public class SynBarcodeStatusModel { public List barcodeStatusList { get; set; } } public class SynSampleStatusModel { public List sampleStatusList { get; set; } } public class SynMatlInformationModel { public List matlInformationList { get; set; } } } }