From f782248da68c035aae12f902f29d828e9867abb0 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 29 9月 2025 12:45:51 +0800 Subject: [PATCH] 222 --- DEmon/iWareCommon/iWareCommon.csproj | 3 DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs | 16 + DEmon/iWareCc/App.config | 5 DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs | 53 +++++ DEmon/iWareCc/Service1.cs | 2 DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs | 3 DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql | 6 DEmon/iWareCc/iWareCc.csproj | 2 DEmon/iWareLog/ORM/InOutStorageDetail.cs | 15 + DEmon/iWareCc/FinishStackerTask/Chain/保存出入库明细信息.cs | 37 ++- /dev/null | 96 --------- DEmon/iWareDataCore/iWareDataCore.csproj | 1 DEmon/iWareCommon/Utils/DataCache.cs | 45 ++++ DEmon/iWareLog/Report/Service/InOutService.cs | 44 ++++ DEmon/iWareCommon/Utils/ConfigHelper.cs | 106 ++++++++++ DEmon/iWareLog/iWareLog.csproj | 1 DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs | 92 +++++++++ DEmon/WebWIPAPI/Controllers/MesIntegrController.cs | 5 DEmon/iWareCc/SystemInteraction/PushMesHandler.cs | 33 +-- 19 files changed, 424 insertions(+), 141 deletions(-) diff --git a/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql index e69de29..62e26a4 100644 --- a/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql +++ b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql @@ -0,0 +1,6 @@ +alter table InOutStorageDetail +add isSendToMes int NULL , -- 鏄惁鎺ㄧ粰MES ( 1:寰呮帹閫� 2锛氭帹閫佹垚鍔� 3锛氭帹閫佸け璐� 4锛氬己鍒跺畬鎴�) + SendToMesCount int NULL , -- 鎺ㄧ粰MES娆℃暟 + SendToMesTime datetime null, -- 鎺ㄧ粰MES鏃堕棿 + isSendToMesStr NVARCHAR(128) null, -- 鏄惁鎺ㄧ粰MES 鏂囨湰 + MesRet NVARCHAR(128) NULL -- MES杩斿洖缁撴灉 \ No newline at end of file diff --git a/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs b/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs index 8f71d8e..6ee0b86 100644 --- a/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs +++ b/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs @@ -283,6 +283,11 @@ List<int> ids = new List<int>(); var materials = InputMaterialService.GetInstance().GetIds(codes); List<InOutListDetailEntity> detail = new List<InOutListDetailEntity>(); + if (materials?.Count == 0) + { + msg = ("鐗╂枡鏄庣粏鏌ヨ涓虹┖锛�"); + return; + } for (int i = 0; i < materials.Count; i++) { if (typeName == "鍏ュ簱") diff --git a/DEmon/iWareCc/App.config b/DEmon/iWareCc/App.config index dd014a3..bf7ed4e 100644 --- a/DEmon/iWareCc/App.config +++ b/DEmon/iWareCc/App.config @@ -68,5 +68,8 @@ <add name="DbModelLog" connectionString="data source=192.168.1.200;initial catalog=WGQ_WB19011_LOG;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> <add name="DbModelCore" connectionString="data source=192.168.1.200;initial catalog=WGQ_WB19011_CORE;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings> - + <appSettings> + <!--MES鍦板潃 銆怑ditBy shaocx,2025-09-25銆�--> + <add key="MesUrl" value="http://169.24.7.88:9083/"/> + </appSettings> </configuration> \ No newline at end of file diff --git "a/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs" "b/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs" index 197d674..a8cf4f1 100644 --- "a/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs" +++ "b/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs" @@ -15,7 +15,7 @@ namespace iWareCc.FinishStackerTask.Chain { - public class 淇濆瓨鍑哄叆搴撴槑缁嗕俊鎭� : IHandler + public class 淇濆瓨鍑哄叆搴撴槑缁嗕俊鎭� : IHandler { /// <summary> /// 璇ヨ妭鐐圭殑涓嬩竴涓妭鐐� @@ -49,22 +49,26 @@ { var task = DecompositionTaskContainer.PartTask; int materid = 0; - using(var dbModelcore = new DbModelCore()) + using (var dbModelcore = new DbModelCore()) { - var mater = dbModelcore.BASEMaterials.FirstOrDefault(x=>x.code==task.MaterialCode); - if (mater!=null) + var mater = dbModelcore.BASEMaterials.FirstOrDefault(x => x.code == task.MaterialCode); + if (mater != null) { materid = mater.id; } - }; - int tp=0; + } + ; + int tp = 0; + int? _isSendToMes = null;//鏄惁鍙戦�佺粰MES 銆怑ditby shaocx,2025-09-25銆� switch (task.MainTaskType) { case (int)EMainTaskType.鍏ュ簱浠诲姟: tp = 0; + _isSendToMes = (int)EIsSendToMes.寰呮帹閫�; break; case (int)EMainTaskType.鍑哄簱浠诲姟: tp = 1; + _isSendToMes = (int)EIsSendToMes.寰呮帹閫�; break; case (int)EMainTaskType.绉诲簱浠诲姟: tp = 2; @@ -78,16 +82,17 @@ InOutStorageDetail iosd = new InOutStorageDetail() { fromplacecode = task.SourcePlace, - formplaceid=task.SourcePlaceId, - toplacecode=task.ToPlace, - toplaceid=task.ToPlaceId, - equipid=task.EquipId, - equipname=task.EquipName, - updatetime=DateTime.Now, - createtime=task.CreateTime, - materialcode=task.MaterialCode, - materialid=materid, - type = tp + formplaceid = task.SourcePlaceId, + toplacecode = task.ToPlace, + toplaceid = task.ToPlaceId, + equipid = task.EquipId, + equipname = task.EquipName, + updatetime = DateTime.Now, + createtime = task.CreateTime, + materialcode = task.MaterialCode, + materialid = materid, + type = tp, + isSendToMes = _isSendToMes //鏄惁鍙戦�佺粰MES 銆怑ditby shaocx,2025-09-25銆� }; dbModel.InOutStorageDetails.Add(iosd); dbModel.SaveChanges(); diff --git a/DEmon/iWareCc/Service1.cs b/DEmon/iWareCc/Service1.cs index c8a4b4c..fe60118 100644 --- a/DEmon/iWareCc/Service1.cs +++ b/DEmon/iWareCc/Service1.cs @@ -414,7 +414,7 @@ //StartThread(ReSendThread); //寮�鍚帹閫佺粰MES鐨勫嚭鍏ュ簱瀹屾垚绾跨▼ 銆怑ditby shaocx,2025-09-17銆� - new Thread(mesDataTranfficForRealMes.Handler).Start(); + new Thread(mesDataTranfficForRealMesThread.Handler).Start(); } diff --git a/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs index 59a9d63..994bf28 100644 --- a/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs +++ b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs @@ -1,4 +1,6 @@ -锘縰sing Newtonsoft.Json; +锘縰sing iWareCommon.Utils; +using iWareLog.Report.Helper; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; @@ -10,7 +12,7 @@ /// </summary> public class PushMesHandler { - public static string mes_api_url = "";// ConfigHelper.GetConfigString("MesUrl");//淇敼涓洪厤缃枃浠� 銆怑ditBy shaocx,2022-01-27銆� + 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> @@ -18,35 +20,20 @@ /// </summary> /// <param name="pushData"></param> /// <returns></returns> - public static ApiResponse<string> Mes_InStockSend(List<InboundStockInfoToMes> pushData) + public static ApiResponse<string> Mes_InStockSend(InOutStorageDetailResultForMes 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); + string paprm = JsonConvert.SerializeObject(pushData); //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); - } + var resStr = mes_api.postContentForString("materialBack", paprm, guid); + //Log4NetHelper.WriteInfoLog(_logType, $"{funName},缁撴灉杩斿洖:{resStr}"); + res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr); + //Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍙傛暟:{paprm},杩斿洖:{JsonConvert.SerializeObject(res)}"); } diff --git a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs deleted file mode 100644 index 5435a1b..0000000 --- a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs +++ /dev/null @@ -1,96 +0,0 @@ -锘縰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/SystemInteraction/mesDataTranfficForRealMesThread.cs b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs new file mode 100644 index 0000000..743fcba --- /dev/null +++ b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs @@ -0,0 +1,92 @@ +锘縰sing iWareCc.Properties; +using iWareCommon.Utils; +using iWareDataCore.ORM; +using iWareDataCore.TASK.EnumType; +using iWareLog.LOG.EnumType; +using iWareLog.ORM; +using iWareLog.Report.Helper; +using iWareLog.Report.Service; +using Newtonsoft.Json; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace iWareCc +{ + /// <summary> + /// MES鍑哄叆搴撴暟鎹紶杈�(鐪熸鐨凪ES)-绾跨▼ + /// </summary> + public class mesDataTranfficForRealMesThread + { + //public static LogType _logType = LogType.mesDataTranfficForRealMes; + public static async void Handler() + { + while (true) + { + try + { + Thread.Sleep(5000); + + List<InOutStorageDetailResultForMes> sendMesData = InOutService.GetInstance().GetInOutStorageDetailListForMes(); + + if (sendMesData.Count > 0) + { + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},瑕佹帹閫亄sendMesData.Count()}鏉�!"; + foreach (var itemTask in sendMesData) + { + using (DbModelLog mod = new DbModelLog()) + { + try + { + ApiResponse<string> ret = null; + itemTask.Timestamp = DateTime.Now;//鍙戦�佹椂闂存埑瀹炴椂 + ret = PushMesHandler.Mes_InStockSend(itemTask); + + //鏌ユ壘瀵硅薄 + var db_itemTask = mod.InOutStorageDetails.Where(x => x.id == itemTask.Id).FirstOrDefault(); + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},宸叉帹閫佺粨鏉燂紝杩斿洖:{JsonConvert.SerializeObject(ret)}"; + if (ret.Success) + { + db_itemTask.isSendToMes = (int)EIsSendToMes.鎺ㄩ�佹垚鍔�;//鎺ㄩ�佹垚鍔� + db_itemTask.isSendToMesStr = "鎴愬姛"; + } + else + { + db_itemTask.isSendToMes = (int)EIsSendToMes.寰呮帹閫�;//寰呮帹閫� + db_itemTask.isSendToMesStr = "澶辫触"; + } + db_itemTask.SendToMesTime = DateTime.Now; + db_itemTask.MesRet = ret.Message; + db_itemTask.SendToMesCount = (db_itemTask.SendToMesCount ?? 0) + 1; + if (db_itemTask.isSendToMes == (int)EIsSendToMes.寰呮帹閫� && db_itemTask.SendToMesCount > 100) + { + db_itemTask.isSendToMes = (int)EIsSendToMes.寮哄埗瀹屾垚;//琛ㄧず寮哄埗鎺ㄩ�佹垚鍔� + db_itemTask.isSendToMesStr = "寮哄埗鎴愬姛"; + } + mod.SaveChanges(); + + } + catch (Exception ex) + { + LogTextHelper.WriteLine(Resources.LogDir + @"/MES鍑哄叆搴撴暟鎹紶杈�/" + "mesDataTranfficForRealMesThread", "MES鍑哄叆搴撴暟鎹紶杈撳紓甯�:{0}", JsonConvert.SerializeObject(ex)); + //LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); + //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鎺ㄩ�佺粰MES鏁版嵁寮傚父:" + JsonConvert.SerializeObject(ex); + //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); + } + } + } + } + } + catch (Exception ex) + { + LogTextHelper.WriteLine(Resources.LogDir + @"/MES鍑哄叆搴撴暟鎹紶杈�/" + "mesDataTranfficForRealMesThread", "(澶栭儴)MES鍑哄叆搴撴暟鎹紶杈撳紓甯�:{0}", JsonConvert.SerializeObject(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 62393d7..b44af1a 100644 --- a/DEmon/iWareCc/iWareCc.csproj +++ b/DEmon/iWareCc/iWareCc.csproj @@ -200,7 +200,7 @@ <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\mesDataTranfficForRealMesThread.cs" /> <Compile Include="SystemInteraction\PushMesHandler.cs" /> <Compile Include="Task\Service\TaskService.cs" /> <Compile Include="Util\OPCHelper.cs" /> diff --git a/DEmon/iWareCommon/Utils/ConfigHelper.cs b/DEmon/iWareCommon/Utils/ConfigHelper.cs new file mode 100644 index 0000000..609a02a --- /dev/null +++ b/DEmon/iWareCommon/Utils/ConfigHelper.cs @@ -0,0 +1,106 @@ +锘縰sing System; +using System.Configuration; + +namespace iWareCommon.Utils +{ + /// <summary> + /// web.config鎿嶄綔绫� + /// Copyright (C) TBEA.WMS + /// </summary> + public sealed class ConfigHelper + { + /// <summary> + /// 寰楀埌AppSettings涓殑閰嶇疆瀛楃涓蹭俊鎭� + /// </summary> + /// <param name="key"></param> + /// <returns></returns> + public static string GetConfigString(string key) + { + string CacheKey = "AppSettings-" + key; + object objModel = DataCache.GetCache(CacheKey); + if (objModel == null) + { + try + { + objModel = ConfigurationManager.AppSettings[key]; + if (objModel != null) + { + DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(180), TimeSpan.Zero); + } + } + catch + { } + } + return objModel.ToString(); + } + + /// <summary> + /// 寰楀埌AppSettings涓殑閰嶇疆Bool淇℃伅 + /// </summary> + /// <param name="key"></param> + /// <returns></returns> + public static bool GetConfigBool(string key) + { + bool result = false; + string cfgVal = GetConfigString(key); + if(null != cfgVal && string.Empty != cfgVal) + { + try + { + result = bool.Parse(cfgVal); + } + catch(FormatException) + { + // Ignore format exceptions. + } + } + return result; + } + /// <summary> + /// 寰楀埌AppSettings涓殑閰嶇疆Decimal淇℃伅 + /// </summary> + /// <param name="key"></param> + /// <returns></returns> + public static decimal GetConfigDecimal(string key) + { + decimal result = 0; + string cfgVal = GetConfigString(key); + if(null != cfgVal && string.Empty != cfgVal) + { + try + { + result = decimal.Parse(cfgVal); + } + catch(FormatException) + { + // Ignore format exceptions. + } + } + + return result; + } + /// <summary> + /// 寰楀埌AppSettings涓殑閰嶇疆int淇℃伅 + /// </summary> + /// <param name="key"></param> + /// <returns></returns> + public static int GetConfigInt(string key) + { + int result = 0; + string cfgVal = GetConfigString(key); + if(null != cfgVal && string.Empty != cfgVal) + { + try + { + result = int.Parse(cfgVal); + } + catch(FormatException) + { + // Ignore format exceptions. + } + } + + return result; + } + } +} diff --git a/DEmon/iWareCommon/Utils/DataCache.cs b/DEmon/iWareCommon/Utils/DataCache.cs new file mode 100644 index 0000000..e5a1d92 --- /dev/null +++ b/DEmon/iWareCommon/Utils/DataCache.cs @@ -0,0 +1,45 @@ +锘縰sing System; +using System.Web; + +namespace iWareCommon.Utils +{ + /// <summary> + /// 缂撳瓨鐩稿叧鐨勬搷浣滅被 + /// Copyright (C) TBEA.WMS + /// </summary> + public class DataCache + { + /// <summary> + /// 鑾峰彇褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊� + /// </summary> + /// <param name="CacheKey"></param> + /// <returns></returns> + public static object GetCache(string CacheKey) + { + System.Web.Caching.Cache objCache = HttpRuntime.Cache; + return objCache[CacheKey]; + } + + /// <summary> + /// 璁剧疆褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊� + /// </summary> + /// <param name="CacheKey"></param> + /// <param name="objObject"></param> + public static void SetCache(string CacheKey, object objObject) + { + System.Web.Caching.Cache objCache = HttpRuntime.Cache; + objCache.Insert(CacheKey, objObject); + } + + /// <summary> + /// 璁剧疆褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊� + /// </summary> + /// <param name="CacheKey"></param> + /// <param name="objObject"></param> + public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration ) + { + System.Web.Caching.Cache objCache = HttpRuntime.Cache; + objCache.Insert(CacheKey, objObject,null,absoluteExpiration,slidingExpiration); + } + } +} diff --git a/DEmon/iWareCommon/iWareCommon.csproj b/DEmon/iWareCommon/iWareCommon.csproj index ac80c0d..d97c0df 100644 --- a/DEmon/iWareCommon/iWareCommon.csproj +++ b/DEmon/iWareCommon/iWareCommon.csproj @@ -61,6 +61,7 @@ </Reference> <Reference Include="System" /> <Reference Include="System.ComponentModel.DataAnnotations" /> + <Reference Include="System.Configuration" /> <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Web" /> @@ -106,6 +107,8 @@ <DependentUpon>Resources.resx</DependentUpon> </Compile> <Compile Include="Utils\Base64Helper.cs" /> + <Compile Include="Utils\ConfigHelper.cs" /> + <Compile Include="Utils\DataCache.cs" /> <Compile Include="Utils\DESHelper.cs" /> <Compile Include="Utils\EntityPropHelper.cs" /> <Compile Include="Utils\FileHelper.cs" /> diff --git a/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs b/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs index 729152b..5eb4d49 100644 --- a/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs +++ b/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs @@ -87,7 +87,8 @@ { string sql = @"SELECT A.id, ISNULL(C.createtime,'1990-01-01') as createtime, ISNULL(C.updatetime,'1990-01-01') as updatetime, A.code AS placecode, A.status, A.islock, A.isexecute, B.name as placetypename, B.remark as placetyperemark, D.name, D.code AS materialcode, D.description, D.typeremark, D.typename, -ISNULL(D.status,0) AS materialstatus, A.id as placeid, ISNULL(C.materialid,0) as materialid, D.remark, A.layer, A.col, A.row, A.typeid as placetypeid +ISNULL(D.status,0) AS materialstatus, A.id as placeid, ISNULL(C.materialid,0) as materialid, D.remark, A.layer, A.col, A.row, A.typeid as placetypeid, +D.thick, D.wide, D.length,D.IssueProjectNo,D.ProcurementProjectNo,D.SerialNo,D.ClassificationSociety,D.CuttingType,D.Version FROM dbo.BASEPlace AS A LEFT OUTER JOIN dbo.BASEPlaceType AS B ON A.typeid = B.id LEFT OUTER JOIN dbo.BASEPlaceMaterial as C on A.id=C.placeid LEFT OUTER JOIN diff --git a/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs b/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs new file mode 100644 index 0000000..7168a2c --- /dev/null +++ b/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareDataCore.TASK.EnumType +{ + public enum EIsSendToMes + { + 寰呮帹閫� = 1, + 鎺ㄩ�佹垚鍔� = 2, + 鎺ㄩ�佸け璐� = 3, + 寮哄埗瀹屾垚 = 4 + } +} diff --git a/DEmon/iWareDataCore/iWareDataCore.csproj b/DEmon/iWareDataCore/iWareDataCore.csproj index a8e0b5b..e49d5c2 100644 --- a/DEmon/iWareDataCore/iWareDataCore.csproj +++ b/DEmon/iWareDataCore/iWareDataCore.csproj @@ -248,6 +248,7 @@ <Compile Include="TASK\EnumType\EMainTaskCheck.cs" /> <Compile Include="TASK\EnumType\EMainTaskPriority.cs" /> <Compile Include="TASK\EnumType\EMainTaskStatus.cs" /> + <Compile Include="TASK\EnumType\EIsSendToMes.cs" /> <Compile Include="TASK\EnumType\EMainTaskType.cs" /> <Compile Include="TASK\EnumType\EInstorgNextNode.cs" /> <Compile Include="TASK\EnumType\EPartTaskStatus.cs" /> diff --git a/DEmon/iWareLog/ORM/InOutStorageDetail.cs b/DEmon/iWareLog/ORM/InOutStorageDetail.cs index ea93482..0259c66 100644 --- a/DEmon/iWareLog/ORM/InOutStorageDetail.cs +++ b/DEmon/iWareLog/ORM/InOutStorageDetail.cs @@ -26,6 +26,9 @@ public DateTime? updatetime { get; set; } + /// <summary> + /// 任务类型,枚举 EMainTaskType + /// </summary> public int type { get; set; } public int? equipid { get; set; } @@ -37,5 +40,17 @@ [StringLength(50)] public string materialcode { get; set; } + + + public int? isSendToMes { get; set; } + + public string isSendToMesStr { get; set; } + + public int? SendToMesCount { get; set; } + + public DateTime? SendToMesTime { get; set; } + + public string MesRet { get; set; } + } } diff --git a/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs b/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs new file mode 100644 index 0000000..2aab734 --- /dev/null +++ b/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs @@ -0,0 +1,53 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareLog.Report.Helper +{ + // 寤鸿鏀惧湪 Models 鎴� DTOs 鏂囦欢澶逛笅 + public class InOutStorageDetailResultForMes + { + + /// <summary> + /// 琛↖nOutStorageDetail鐨処D + /// </summary> + public int Id { get; set; } + + /// <summary> + /// 鍨嬫潗鍞竴缂栫爜 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// 鑸瑰彿/鍙戞斁宸ョ▼鍙� + /// </summary> + public string IssueProjectNo { get; set; } + + /// <summary> + /// 鍒嗘鍙� + /// </summary> + public string SerialNo { get; set; } + + /// <summary> + /// 涓氬姟鏍囪瘑锛堟殏涓� A.type锛� + /// </summary> + public int? BusinessFlag { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜锛堟殏涓� A.toplacecode锛岀洰鏍囧簱浣嶏級 + /// </summary> + public string PlaceCode { get; set; } + + /// <summary> + /// 鍙戦�佹椂闂存埑锛堟殏涓� A.createtime锛� + /// </summary> + public DateTime? Timestamp { get; set; } + + /// <summary> + /// 鍙戠敓鏃堕棿锛堟殏涓� Timestamp 涓�鑷达紝鎴栧彲鏇挎崲涓哄叾瀹冨瓧娈碉級 + /// </summary> + public DateTime? OccurrenceTime { get; set; } + } +} diff --git a/DEmon/iWareLog/Report/Service/InOutService.cs b/DEmon/iWareLog/Report/Service/InOutService.cs index ee41eb4..36635d0 100644 --- a/DEmon/iWareLog/Report/Service/InOutService.cs +++ b/DEmon/iWareLog/Report/Service/InOutService.cs @@ -51,7 +51,7 @@ { string sql = @"select count(B.typename)quantity,B.typename materialcode from InOutStorageDetail A left join WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B on A.materialid=B.id where A.type=@p0 and A.updatetime>=@p1 and A.updatetime<@p2 group by B.typename"; - List<InOutHelper> data = context.Database.SqlQuery<InOutHelper>(sql,type, start, end).ToList(); + List<InOutHelper> data = context.Database.SqlQuery<InOutHelper>(sql, type, start, end).ToList(); return data; } catch (Exception ex) @@ -62,6 +62,46 @@ } } - + + /// <summary> + /// 鏌ヨ鍑哄叆搴撴槑缁嗗強鐗╂枡淇℃伅锛堣仈鏌� InOutStorageDetail 鍜� BASEMaterialView锛� + /// </summary> + /// <returns>杩斿洖鍖呭惈鍨嬫潗缂栫爜銆佽埞鍙枫�佸垎娈靛彿銆佷笟鍔℃爣璇嗐�佸簱浣嶃�佹椂闂寸瓑淇℃伅鐨勫垪琛�</returns> + public List<InOutStorageDetailResultForMes> GetInOutStorageDetailListForMes() + { + using (DbModelLog context = new DbModelLog()) + { + try + { + string sql = @" + SELECT + A.id AS Id, + B.code AS Code, + B.issueprojectno AS IssueProjectNo, + B.serialno AS SerialNo, + A.type AS BusinessFlag, + A.toplacecode AS PlaceCode, + A.createtime AS Timestamp, + A.createtime AS OccurrenceTime + FROM + InOutStorageDetail A + INNER JOIN + WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B + ON A.materialid = B.id And A.isSendToMes=1 "; + + // 鎵ц SQL 鏌ヨ锛屽苟鏄犲皠鍒拌嚜瀹氫箟绫� InOutStorageDetailResult + var data = context.Database.SqlQuery<InOutStorageDetailResultForMes>(sql).ToList(); + + return data; + } + catch (Exception ex) + { + // 璁板綍寮傚父鏃ュ織锛堝拰浣犲師鏈夋柟娉曚繚鎸佷竴鑷达級 + LogTextHelper.WriteLine("InOutService", "GetInOutStorageDetailList", ex.ToString()); + return null; // 鎴栬�呰繑鍥� new List<InOutStorageDetailResult>()锛屾牴鎹綘鐨勪笟鍔¢渶姹� + } + } + } + } } diff --git a/DEmon/iWareLog/iWareLog.csproj b/DEmon/iWareLog/iWareLog.csproj index 583399c..24a74c1 100644 --- a/DEmon/iWareLog/iWareLog.csproj +++ b/DEmon/iWareLog/iWareLog.csproj @@ -93,6 +93,7 @@ <DependentUpon>Resources.resx</DependentUpon> </Compile> <Compile Include="Report\Helper\AlertHelper.cs" /> + <Compile Include="Report\Helper\InOutStorageDetailResultForMes.cs" /> <Compile Include="Report\Helper\InOutHelper.cs" /> <Compile Include="Report\Service\AlertService.cs" /> <Compile Include="Report\Service\InOutService.cs" /> -- Gitblit v1.9.3