From c9c91ad3e3ac218d81c86809c93a35622b51a686 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 17 9月 2025 16:05:05 +0800 Subject: [PATCH] 初步 增加 推送线程 --- DEmon/iWareDataCore/Test_ORM/Test_ORM.cs | 40 ++ DBScript/02_DML/01_InitData.sql | 0 DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs | 96 +++++ DEmon/iWareDataCore/ORM/DbModelCore.cs | 25 + DEmon/iWareCc/Service1.cs | 34 + DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql | 0 DBScript/01_DDL/04_DDL_INDEX_WGQ.sql | 0 DEmon/iWareCc/SystemInteraction/dto/ApiResponse.cs | 35 + DEmon/iWareCc/SystemInteraction/HTTPService.cs | 493 +++++++++++++++++++++++++++ DEmon/iWareCc/iWareCc.csproj | 7 DBScript/01_DDL/01_DDL_TABLE_WGQ.sql | 43 ++ DEmon/iWareDataCore/iWareDataCore.csproj | 2 DBScript/01_DDL/03_DDL_VIEW_WGQ.sql | 0 DEmon/iWareCc/SystemInteraction/dto/MesRequest.cs | 39 ++ DEmon/iWareCc/SystemInteraction/dto/InboundStockInfoToMes.cs | 57 +++ DEmon/iWareDataCore/ORM/Wms_outInStockRecord_V2_Mes.cs | 61 +++ DEmon/iWareCc/SystemInteraction/PushMesHandler.cs | 112 ++++++ 17 files changed, 1,024 insertions(+), 20 deletions(-) diff --git a/DBScript/01_DDL/01_DDL_TABLE_WGQ.sql b/DBScript/01_DDL/01_DDL_TABLE_WGQ.sql new file mode 100644 index 0000000..cd418ff --- /dev/null +++ b/DBScript/01_DDL/01_DDL_TABLE_WGQ.sql @@ -0,0 +1,43 @@ +use WGQ_WB19011_CORE +go + +/*==============================================================*/ +/* Table: Wms_outInStockRecord_V2_Mes */ +/* Description: 鍑哄叆搴撹褰�(涓烘帹閫丮ES) */ +/* Author:shaocx */ +/* CreateTime:2025-09-17 */ +/*==============================================================*/ +IF NOT EXISTS( SELECT 1 FROM SYSOBJECTS WHERE ID = OBJECT_ID('Wms_outInStockRecord_V2_Mes') AND TYPE = 'U') +create table Wms_outInStockRecord_V2_Mes( + ID int IDENTITY(1,1) NOT NULL, -- 涓婚敭 + + OutInFlagName VARCHAR(10) ,--- 鍑哄叆搴撶被鍨� 1 鍏ュ簱 2 鍑哄簱 + + ListNo NVARCHAR(128) NULL , -- 鍑哄叆鍗曞彿 + Code NVARCHAR(128) NULL , -- 鍨嬫潗鍞竴缂栫爜 + Name NVARCHAR(128) NULL , -- 鐗╂枡鍚嶇О + + SerialNo NVARCHAR(128) NULL , -- 鍒嗘鍙� + IssueProjectNo NVARCHAR(128) NULL , -- 鍙戞斁宸ョ▼鍙� + + PlaceCode VARCHAR(100) NULL , -- 搴撲綅缂栫爜 + OccurrenceTime datetime NULL , -- 鍙戠敓鏃堕棿 + + + IsSendToMes int NULL , -- 鎺ㄩ�佺姸鎬� + IsSendToMesStr VARCHAR(100) NULL , -- 鎺ㄩ�佺姸鎬� + SendToMesCount int NULL , -- 鎺ㄧ粰MES娆℃暟 + SendToMesTime datetime null, -- 鎺ㄧ粰MES鏃堕棿 + MesRet NVARCHAR(128) NULL , -- MES杩斿洖缁撴灉 + + + Remark NVARCHAR(128) NULL , -- 澶囨敞 + Creator varchar(128) null,-- 鍒涘缓浜� + CreateTime datetime null, -- 鍒涘缓鏃堕棿 + LastModifier varchar(128) null,-- 淇敼浜� + LastModifyTime datetime null -- 淇敼鏃堕棿 + + constraint PK_Wms_outInStockRecord_V2_Mes primary key (ID) +) +GO + diff --git a/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql diff --git a/DBScript/01_DDL/03_DDL_VIEW_WGQ.sql b/DBScript/01_DDL/03_DDL_VIEW_WGQ.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/DBScript/01_DDL/03_DDL_VIEW_WGQ.sql diff --git a/DBScript/01_DDL/04_DDL_INDEX_WGQ.sql b/DBScript/01_DDL/04_DDL_INDEX_WGQ.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/DBScript/01_DDL/04_DDL_INDEX_WGQ.sql diff --git a/DBScript/02_DML/01_InitData.sql b/DBScript/02_DML/01_InitData.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/DBScript/02_DML/01_InitData.sql diff --git a/DEmon/iWareCc/Service1.cs b/DEmon/iWareCc/Service1.cs index 819f893..c8a4b4c 100644 --- a/DEmon/iWareCc/Service1.cs +++ b/DEmon/iWareCc/Service1.cs @@ -413,6 +413,8 @@ //ReSendThread.Name = "鍚慦IP閲嶆柊鎺ㄩ�佹姤鏂�"; //StartThread(ReSendThread); + //寮�鍚帹閫佺粰MES鐨勫嚭鍏ュ簱瀹屾垚绾跨▼ 銆怑ditby shaocx,2025-09-17銆� + new Thread(mesDataTranfficForRealMes.Handler).Start(); } @@ -445,7 +447,7 @@ //缁撴潫鐢熸垚鍏ュ簱涓讳换鍔$殑绾跨▼ CloseThread(CreatMainTaskInThread); - //缁撴潫鐢熸垚鍑哄簱涓讳换鍔$殑绾跨▼ + //缁撴潫鐢熸垚鍑哄簱涓讳换鍔$殑绾跨▼ CloseThread(CreatMainTaskOutThread); //鍏抽棴鍒嗚В浠诲姟鐨勭嚎绋� @@ -516,8 +518,8 @@ var s = (StackerEntity)stacker; //LogTextHelper.WriteLine(Resources.LogDir, "鑾峰彇鍫嗗灈鏈簕0}鐘舵�佺嚎绋嬪凡寮�鍚�", s.Equipment.EquipName); - var items = new string[] - { + var items = new string[] + { s.OpcReadItems.SrmNo,// 1Srm缂栧彿 s.OpcReadItems.Mode,// 2浠诲姟鍙� s.OpcReadItems.Alarm,// 3鍛婅 @@ -857,7 +859,7 @@ { gateService.HandleMsgSCReceive(gateService.ReadFromDatagramPoolSCReceive()); } - else + else { gateService.HandleMsgReceive(gateService.ReadFromDatagramPoolReceive()); gateService.HandleMsgAlarmReceive(gateService.ReadFromDatagramPoolAlarmReceive()); @@ -928,20 +930,20 @@ /// </summary> private void CreateMainInTask() { - var c = (ConveyorEntity)CacheEntity.Conveyors.Find(x => x.Equipment.EquipName == "conveyor1"); - var mainTaskContainer = new MainTaskContainer(); - var 鐢熸垚鍏ュ簱涓讳换鍔� = new 鏍规嵁鎵爜鐢熸垚鍏ュ簱涓讳换鍔�(c, mainTaskContainer); - var 淇濆瓨鐢熸垚鐨勪换鍔� = new 淇濆瓨鐢熸垚鐨勫叆搴撲换鍔�(c, mainTaskContainer); - 鐢熸垚鍏ュ簱涓讳换鍔�.NextHandler = 淇濆瓨鐢熸垚鐨勪换鍔�; + var c = (ConveyorEntity)CacheEntity.Conveyors.Find(x => x.Equipment.EquipName == "conveyor1"); + var mainTaskContainer = new MainTaskContainer(); + var 鐢熸垚鍏ュ簱涓讳换鍔� = new 鏍规嵁鎵爜鐢熸垚鍏ュ簱涓讳换鍔�(c, mainTaskContainer); + var 淇濆瓨鐢熸垚鐨勪换鍔� = new 淇濆瓨鐢熸垚鐨勫叆搴撲换鍔�(c, mainTaskContainer); + 鐢熸垚鍏ュ簱涓讳换鍔�.NextHandler = 淇濆瓨鐢熸垚鐨勪换鍔�; - while (true) + while (true) + { + if (CacheEntity.IsAutoRun) { - if (CacheEntity.IsAutoRun) - { - 鐢熸垚鍏ュ簱涓讳换鍔�.Handle(); - } - Thread.Sleep(1000); + 鐢熸垚鍏ュ簱涓讳换鍔�.Handle(); } + Thread.Sleep(1000); + } } /// <summary> /// 鐢熸垚鍑哄簱涓讳换鍔� @@ -1287,7 +1289,7 @@ { try { - // string stackerName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.stacker1); + // string stackerName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.stacker1); var reports = dbModel.COUNTStackerReports.Where(x => x.isfinished == (int)EYesOrNo.鍚�).ToList(); var stacker = CacheEntity.Stackers.FirstOrDefault(x => x.Equipment.EquipName == "stacker1"); var unfinishedReport = reports.FirstOrDefault(x => x.name == stacker.Equipment.EquipName); diff --git a/DEmon/iWareCc/SystemInteraction/HTTPService.cs b/DEmon/iWareCc/SystemInteraction/HTTPService.cs new file mode 100644 index 0000000..b982817 --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/HTTPService.cs @@ -0,0 +1,493 @@ +锘縰sing Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Http; +using System.Text; + +namespace iWareCc +{ + public class HTTPService + { + private string BaseURI = ""; + public HTTPService(string baseURI) + { + this.BaseURI = baseURI; + } + + #region GET璋冪敤webapi鍏叡鏂规硶 + + /// <summary> + /// 閫氳繃GET鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <typeparam name="T">鍏ュ弬绫诲瀷</typeparam> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public T getContent<T>(string url, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + using (HttpResponseMessage response = client.GetAsync(url).Result) + { + if (response.IsSuccessStatusCode) + { + var str_result = response.Content.ReadAsStringAsync().Result; + T result = JsonConvert.DeserializeObject<T>(str_result); + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + /// <summary> + /// 閫氳繃GET鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string getContentForString(string url, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + using (HttpResponseMessage response = client.GetAsync(url).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父,response:" + JsonConvert.SerializeObject(response)); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "},response:" + JsonConvert.SerializeObject(response)); + } + } + } + catch + { + throw; + } + } + #endregion + + #region POST璋冪敤webapi鍏叡鏂规硶 + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <typeparam name="T">鍏ュ弬绫诲瀷</typeparam> + /// <typeparam name="T2">鍑哄弬绫诲瀷</typeparam> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public T2 postContent<T, T2>(string url, T parameter, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.DefaultRequestHeaders.Add("Authorization", "123456"); + client.Timeout = new TimeSpan(0, 0, timeout); + + string str = JsonConvert.SerializeObject(parameter); + var httpContent = new StringContent(str, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var str_result = response.Content.ReadAsStringAsync().Result; + T2 result = JsonConvert.DeserializeObject<T2>(str_result); + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string postContentForString(string url, IDictionary<string, string> parameter, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + string str = JsonConvert.SerializeObject(parameter); + var httpContent = new StringContent(str, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + return response.StatusCode.ToString(); + // throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + return response.StatusCode.ToString(); + // throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬瀛楃涓�</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string postContentForString(string url, string parameter, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + var ee = new { name = parameter }; + if (parameter=="") + { + parameter = ee.ToString(); + } + + var httpContent = new StringContent(parameter, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + return response.StatusCode.ToString(); + // throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + return response.StatusCode.ToString(); + // throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch (Exception ex) + { + throw; + } + } + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟(AGV涓撶敤) + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬瀛楃涓�</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string postContentForStringForAgv(string url, string parameter, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + var ee = new { name = parameter }; + if (parameter == "") + { + parameter = ee.ToString(); + } + + var httpContent = new StringContent(parameter, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + } + catch (Exception ex) + { + throw; + } + } + + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬瀛楃涓�</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string postContentForStringWithToken(string url, string parameter, + Guid requestId, string token, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.DefaultRequestHeaders.Add("Authorization", token.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + var httpContent = new StringContent(parameter, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + #endregion + + #region PUT璋冪敤webapi鍏叡鏂规硶 + + /// <summary> + /// 閫氳繃PUT鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <typeparam name="T">鍏ュ弬绫诲瀷</typeparam> + /// <typeparam name="T2">鍑哄弬绫诲瀷</typeparam> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public T2 putContent<T, T2>(string url, T parameter, Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + string str = JsonConvert.SerializeObject(parameter); + var httpContent = new StringContent(str, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var str_result = response.Content.ReadAsStringAsync().Result; + T2 result = JsonConvert.DeserializeObject<T2>(str_result); + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + /// <summary> + /// 閫氳繃PUT鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string putContentForString(string url, IDictionary<string, string> parameter, + Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + string str = JsonConvert.SerializeObject(parameter); + var httpContent = new StringContent(str, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + + /// <summary> + /// 閫氳繃POST鏂规硶璋冪敤HTTP鏈嶅姟 + /// </summary> + /// <param name="url">鏈嶅姟鍦板潃</param> + /// <param name="parameter">鍏ュ弬瀛楃涓�</param> + /// <param name="requestId">鍙戣捣璇锋眰鐨勮涓烘爣璇�</param> + /// <param name="timeout">瓒呮椂鏃堕棿锛屽崟浣嶏細绉掞紝榛樿涓�30绉�</param> + /// <returns></returns> + public string putContentForString(string url, string parameter, + Guid requestId, int timeout = 30) + { + try + { + var client = new HttpClient(); + + client.BaseAddress = new Uri(this.BaseURI); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); + client.Timeout = new TimeSpan(0, 0, timeout); + + var httpContent = new StringContent(parameter, Encoding.UTF8); + httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; + using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) + { + if (response.IsSuccessStatusCode) + { + var result = response.Content.ReadAsStringAsync().Result; + return result; + } + else if (response.StatusCode == HttpStatusCode.InternalServerError) + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父"); + } + else + { + throw new Exception("{" + this.BaseURI + "}琚皟鐢ㄧ殑HTTP鏈嶅姟鎺ュ彛{" + url + "}鍐呴儴鍙戠敓寮傚父{" + response.StatusCode + "}"); + } + } + } + catch + { + throw; + } + } + #endregion + } +} diff --git a/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs new file mode 100644 index 0000000..59a9d63 --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs @@ -0,0 +1,112 @@ +锘縰sing Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace iWareCc +{ + /// <summary> + /// MES鎺ㄩ�佹帴鍙� + /// </summary> + public class PushMesHandler + { + public static string mes_api_url = "";// ConfigHelper.GetConfigString("MesUrl");//淇敼涓洪厤缃枃浠� 銆怑ditBy shaocx,2022-01-27銆� + static HTTPService mes_api = new HTTPService(mes_api_url);//mes鍩哄湴鍧� + + /// <summary> + /// 缁橫ES鎺ㄩ�佸叆搴撲俊鎭� + /// </summary> + /// <param name="pushData"></param> + /// <returns></returns> + public static ApiResponse<string> Mes_InStockSend(List<InboundStockInfoToMes> pushData) + { + ApiResponse<string> res = null; + var funName = "Mes_InStockSend"; + try + { + MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>(); + mesRequest.Datas = pushData; + mesRequest.TableName = "T_WMS_Inbound_Record"; + mesRequest.PrimaryKeys = "identifier"; + + string paprm = JsonConvert.SerializeObject(mesRequest); + //Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍑嗗鍙傛暟:{paprm}"); + Guid guid = System.Guid.NewGuid(); + + //妯℃嫙 + if (1 == 2) + {//妯℃嫙鐜 + res = new ApiResponse<string>(); + res.Code = 500; + res.Success = false; + res.Message = "绯荤粺妯℃嫙瀹屾垚"; + } + else + { + var resStr = mes_api.postContentForString("", paprm, guid); + //Log4NetHelper.WriteInfoLog(_logType, $"{funName},缁撴灉杩斿洖:{resStr}"); + res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr); + } + + //Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍙傛暟:{paprm},杩斿洖:{JsonConvert.SerializeObject(res)}"); + } + catch (Exception ex) + { + //Log4NetHelper.WriteErrorLog(_logType, $"{funName},寮傚父:" + ex.Message, ex); + res.Code = 500; + res.Success = false; + res.Message = "wms鍙戦�佸紓甯�:" + ex.Message; + } + return res; + + } + + + ///// <summary> + ///// 缁橫ES鎺ㄩ�佸嚭搴撲俊鎭� + ///// </summary> + ///// <param name="pushData"></param> + ///// <returns></returns> + //public static ApiResponse Mes_OutStockSend(List<InboundStockInfoToMes> pushData, LogType _logType) + //{ + // ApiResponse<string> res = null; + // var funName = "Mes_OutStockSend"; + // try + // { + // MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>(); + // mesRequest.Datas = pushData; + // mesRequest.TableName = "T_WMS_Outbound_Record"; + // mesRequest.PrimaryKeys = "identifier"; + + // string paprm = JsonConvert.SerializeObject(mesRequest); + // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍑嗗鍙傛暟:{paprm}"); + // Guid guid = System.Guid.NewGuid(); + // //妯℃嫙 + // if (Form1.isvirtual) + // {//妯℃嫙鐜 + // res = new ApiResponse<string>(); + // res.ErrorCode = 0; + // res.ErrorMsg = "绯荤粺妯℃嫙瀹屾垚"; + // } + // else + // { + // var resStr = mes_api.postContentForString("", paprm, guid); + // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},缁撴灉杩斿洖:{resStr}"); + // res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr); + // } + + // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍙傛暟:{paprm},杩斿洖:{JsonConvert.SerializeObject(res)}"); + // } + // catch (Exception ex) + // { + // //Log4NetHelper.WriteErrorLog(_logType, $"{funName},寮傚父:" + ex.Message, ex); + // res.ErrorCode = 4; + // res.ErrorMsg = "wms鍙戦�佸紓甯�:" + ex.Message; + // } + // return res; + + //} + + + } +} diff --git a/DEmon/iWareCc/SystemInteraction/dto/ApiResponse.cs b/DEmon/iWareCc/SystemInteraction/dto/ApiResponse.cs new file mode 100644 index 0000000..ab8224e --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/dto/ApiResponse.cs @@ -0,0 +1,35 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareCc +{ + /// <summary> + /// 閫氱敤娉涘瀷鎺ュ彛鍝嶅簲妯″瀷 + /// </summary> + /// <typeparam name="T">Data 瀛楁鐨勭被鍨嬶紝鍙互鏄换鎰忕被鍨嬶紝濡� string銆乮nt銆佽嚜瀹氫箟绫荤瓑</typeparam> + public class ApiResponse<T> + { + /// <summary> + /// 鐘舵�佺爜锛屼緥濡� 200 琛ㄧず鎴愬姛 + /// </summary> + public int Code { get; set; } + + /// <summary> + /// 鏄惁鎴愬姛锛宼rue 琛ㄧず鎴愬姛锛宖alse 琛ㄧず澶辫触 + /// </summary> + public bool Success { get; set; } + + /// <summary> + /// 杩斿洖娑堟伅锛屼緥濡傦細"鎴愬姛" 鎴栭敊璇俊鎭� + /// </summary> + public string Message { get; set; } + + /// <summary> + /// 杩斿洖鐨勬暟鎹唴瀹癸紝绫诲瀷涓烘硾鍨� T + /// </summary> + public T Data { get; set; } + } +} diff --git a/DEmon/iWareCc/SystemInteraction/dto/InboundStockInfoToMes.cs b/DEmon/iWareCc/SystemInteraction/dto/InboundStockInfoToMes.cs new file mode 100644 index 0000000..8c99bcf --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/dto/InboundStockInfoToMes.cs @@ -0,0 +1,57 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareCc +{ + /// <summary> + /// 鎺ㄩ�佸叆搴撴帴鍙� - 璇锋眰鍙傛暟涓殑鍗曚釜鍏ュ簱璁板綍椤� + /// </summary> + public class InboundStockInfoToMes + { + + /// <summary> + /// 鍑哄叆搴撴爣璁� + /// </summary> + public string BusinessFlag { get; set; } + + /// <summary> + /// 鍒嗘鍙� + /// </summary> + public string SerialNo { get; set; } + + /// <summary> + /// 鑸瑰彿/鍙戞斁宸ョ▼鍙� + /// </summary> + public string IssueProjectNo { get; set; } + + /// <summary> + /// 搴撲綅鍙� + /// </summary> + public string PlaceCode { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public string Code { get; set; } + + + /// <summary> + /// 鍙戠敓鏃堕棿 + /// </summary> + public string OccurrenceTime { get; set; } + + + + /// <summary> + /// 鏃堕棿鎴�(鍙傛暟鑷姩鍒濆鍖�) + /// </summary> + public string Timestamp { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + + + + } +} diff --git a/DEmon/iWareCc/SystemInteraction/dto/MesRequest.cs b/DEmon/iWareCc/SystemInteraction/dto/MesRequest.cs new file mode 100644 index 0000000..50e025b --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/dto/MesRequest.cs @@ -0,0 +1,39 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareCc +{ + /// <summary> + /// 鎺ㄩ�佷俊鎭� + /// </summary> + public class MesRequest<T> + { + /// <summary> + /// 鏁版嵁 + /// </summary> + public T Datas { get; set; } + + /// <summary> + /// 绯荤粺绫诲瀷 + /// </summary> + public string SystemType { get; set; } = "ERP"; + /// <summary> + /// Secret + /// </summary> + public string Secret { get; set; } = "HJY^*HGYIIY"; + + + /// <summary> + /// 琛ㄥ悕 + /// </summary> + public string TableName { get; set; } + + /// <summary> + /// 涓婚敭 + /// </summary> + public string PrimaryKeys { get; set; } + } +} diff --git a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs new file mode 100644 index 0000000..5435a1b --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs @@ -0,0 +1,96 @@ +锘縰sing iWareDataCore.ORM; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; + +namespace iWareCc +{ + /// <summary> + /// MES鍑哄叆搴撴暟鎹紶杈�(鐪熸鐨凪ES) + /// </summary> + public class mesDataTranfficForRealMes + { + //public static LogType _logType = LogType.mesDataTranfficForRealMes; + public static async void Handler() + { + while (true) + { + try + { + Thread.Sleep(5000); + + using (DbModelCore mod = new DbModelCore()) + { + List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.IsSendToMes == 0).OrderBy(x => x.ID).ToList(); + + if (sendMesData.Count > 0) + { + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},瑕佹帹閫亄sendMesData.Count()}鏉�!"; + foreach (var itemTask in sendMesData) + { + try + { + ApiResponse<string> ret = null; + + //鑾峰彇淇℃伅鏄庣粏 + List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>(); + pushData.Add(new InboundStockInfoToMes() + { + BusinessFlag = itemTask.OutInFlagName, + + OccurrenceTime鈥� = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"), + Code = itemTask.Code, + PlaceCode = itemTask.PlaceCode, + SerialNo = itemTask.SerialNo, + IssueProjectNo = itemTask.IssueProjectNo, + + + }); + + + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},宸叉帹閫佺粨鏉燂紝杩斿洖:{JsonConvert.SerializeObject(ret)}"; + if (ret.Success) + { + itemTask.IsSendToMes = 1;//鎺ㄩ�佹垚鍔� + itemTask.IsSendToMesStr = "鎴愬姛"; + } + else + { + itemTask.IsSendToMes = 0;//鎺ㄩ�佸け璐� + itemTask.IsSendToMesStr = "澶辫触"; + } + itemTask.SendToMesTime = DateTime.Now; + itemTask.MesRet = ret.Message; + itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1; + if (itemTask.IsSendToMes == 0 && itemTask.SendToMesCount > 100) + { + itemTask.IsSendToMes = 3;//琛ㄧず寮哄埗鎺ㄩ�佹垚鍔� + itemTask.IsSendToMesStr = "寮哄埗鎴愬姛"; + } + mod.SaveChanges(); + + } + catch (Exception ex) + { + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鎺ㄩ�佺粰MES鏁版嵁寮傚父:" + JsonConvert.SerializeObject(ex); + //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); + } + } + } + else + { + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},娌℃湁鏁版嵁瑕佹帹閫佺粰MES!"; + } + } + } + catch (Exception ex) + { + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鏁版嵁瑕佹帹閫佺粰MES鍑虹幇寮傚父:" + ex.Message; + //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); + } + } + } + } +} diff --git a/DEmon/iWareCc/iWareCc.csproj b/DEmon/iWareCc/iWareCc.csproj index 0c2d13b..62393d7 100644 --- a/DEmon/iWareCc/iWareCc.csproj +++ b/DEmon/iWareCc/iWareCc.csproj @@ -94,6 +94,7 @@ <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Management" /> + <Reference Include="System.Net.Http" /> <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.ServiceModel" /> <Reference Include="System.Xml.Linq" /> @@ -195,6 +196,12 @@ <Compile Include="Srm\EnumType\ESrmAlarm1.cs" /> <Compile Include="Srm\Strategy\鎺ㄩ�佸爢鍨涙満鍛婅鐘舵��.cs" /> <Compile Include="Srm\Strategy\鎺ㄩ�佸爢鍨涙満鐘舵��.cs" /> + <Compile Include="SystemInteraction\dto\ApiResponse.cs" /> + <Compile Include="SystemInteraction\dto\InboundStockInfoToMes.cs" /> + <Compile Include="SystemInteraction\dto\MesRequest.cs" /> + <Compile Include="SystemInteraction\HTTPService.cs" /> + <Compile Include="SystemInteraction\mesDataTranfficForRealMes.cs" /> + <Compile Include="SystemInteraction\PushMesHandler.cs" /> <Compile Include="Task\Service\TaskService.cs" /> <Compile Include="Util\OPCHelper.cs" /> <Compile Include="Util\SocketClient.cs" /> diff --git a/DEmon/iWareDataCore/ORM/DbModelCore.cs b/DEmon/iWareDataCore/ORM/DbModelCore.cs index e5523ab..fae6e7b 100644 --- a/DEmon/iWareDataCore/ORM/DbModelCore.cs +++ b/DEmon/iWareDataCore/ORM/DbModelCore.cs @@ -1,9 +1,6 @@ namespace iWareDataCore.ORM { - using System; using System.Data.Entity; - using System.ComponentModel.DataAnnotations.Schema; - using System.Linq; public partial class DbModelCore : DbContext { @@ -53,10 +50,30 @@ public virtual DbSet<WebOrderDetailView> WebOrderDetailView { get; set; } public virtual DbSet<MaterialPlaceView> MaterialPlaceView { get; set; } public virtual DbSet<BASEMaterialClass> BASEMaterialClass { get; set; } - + public virtual DbSet<Wms_outInStockRecord_V2_Mes> Wms_outInStockRecord_V2_Mes { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { + modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() + .Property(e => e.OutInFlagName) + .IsUnicode(false); + + modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() + .Property(e => e.PlaceCode) + .IsUnicode(false); + + modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() + .Property(e => e.IsSendToMesStr) + .IsUnicode(false); + + modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() + .Property(e => e.Creator) + .IsUnicode(false); + + modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() + .Property(e => e.LastModifier) + .IsUnicode(false); + modelBuilder.Entity<BASEInOutList>() .HasMany(e => e.BASEInOutListDetails) .WithRequired(e => e.BASEInOutList) diff --git a/DEmon/iWareDataCore/ORM/Wms_outInStockRecord_V2_Mes.cs b/DEmon/iWareDataCore/ORM/Wms_outInStockRecord_V2_Mes.cs new file mode 100644 index 0000000..b7061bc --- /dev/null +++ b/DEmon/iWareDataCore/ORM/Wms_outInStockRecord_V2_Mes.cs @@ -0,0 +1,61 @@ +namespace iWareDataCore.ORM +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + using System.Data.Entity.Spatial; + + public partial class Wms_outInStockRecord_V2_Mes + { + public int ID { get; set; } + + [StringLength(10)] + public string OutInFlagName { get; set; } + + [StringLength(128)] + public string ListNo { get; set; } + + [StringLength(128)] + public string Code { get; set; } + + [StringLength(128)] + public string Name { get; set; } + + [StringLength(128)] + public string SerialNo { get; set; } + + [StringLength(128)] + public string IssueProjectNo { get; set; } + + [StringLength(100)] + public string PlaceCode { get; set; } + + public DateTime? OccurrenceTime { get; set; } + + public int? IsSendToMes { get; set; } + + [StringLength(100)] + public string IsSendToMesStr { get; set; } + + public int? SendToMesCount { get; set; } + + public DateTime? SendToMesTime { get; set; } + + [StringLength(128)] + public string MesRet { get; set; } + + [StringLength(128)] + public string Remark { get; set; } + + [StringLength(128)] + public string Creator { get; set; } + + public DateTime? CreateTime { get; set; } + + [StringLength(128)] + public string LastModifier { get; set; } + + public DateTime? LastModifyTime { get; set; } + } +} diff --git a/DEmon/iWareDataCore/Test_ORM/Test_ORM.cs b/DEmon/iWareDataCore/Test_ORM/Test_ORM.cs new file mode 100644 index 0000000..01e1c12 --- /dev/null +++ b/DEmon/iWareDataCore/Test_ORM/Test_ORM.cs @@ -0,0 +1,40 @@ +//using System; +//using System.ComponentModel.DataAnnotations.Schema; +//using System.Data.Entity; +//using System.Linq; + +//namespace iWareDataCore.Test_ORM +//{ +// public partial class Test_ORM : DbContext +// { +// public Test_ORM() +// : base("name=Test_ORM") +// { +// } + +// public virtual DbSet<Wms_outInStockRecord_V2_Mes> Wms_outInStockRecord_V2_Mes { get; set; } + +// protected override void OnModelCreating(DbModelBuilder modelBuilder) +// { +// modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() +// .Property(e => e.OutInFlagName) +// .IsUnicode(false); + +// modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() +// .Property(e => e.PlaceCode) +// .IsUnicode(false); + +// modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() +// .Property(e => e.IsSendToMesStr) +// .IsUnicode(false); + +// modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() +// .Property(e => e.Creator) +// .IsUnicode(false); + +// modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() +// .Property(e => e.LastModifier) +// .IsUnicode(false); +// } +// } +//} diff --git a/DEmon/iWareDataCore/iWareDataCore.csproj b/DEmon/iWareDataCore/iWareDataCore.csproj index d18b11a..a8e0b5b 100644 --- a/DEmon/iWareDataCore/iWareDataCore.csproj +++ b/DEmon/iWareDataCore/iWareDataCore.csproj @@ -257,6 +257,8 @@ <Compile Include="TASK\Service\MainTaskViewService.cs" /> <Compile Include="TASK\Service\PartTaskService.cs" /> <Compile Include="TASK\Service\PartTaskViewService.cs" /> + <Compile Include="Test_ORM\Test_ORM.cs" /> + <Compile Include="ORM\Wms_outInStockRecord_V2_Mes.cs" /> <Compile Include="WebDav\Entity\FileInfo.cs" /> <Compile Include="WebDav\Service\FileService.cs" /> </ItemGroup> -- Gitblit v1.9.3