From cea8c2b4129aead2c796153738690b00366c3bb6 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 23 8月 2025 13:21:30 +0800
Subject: [PATCH] 22

---
 DEmon/iWareLog/LOG/EnumType/_system~.ini                |    0 
 DEmon/iWareCommon/bin/Debug/iWareCommon.pdb             |    0 
 DEmon/iWareLog/LOG/Service/AlertService.cs              |   40 +
 DEmon/iWareLog/LOG/Service/ReceiveMsgLogService.cs      |   38 +
 DEmon/iWareLog/LOG/Service/OperationService.cs          |   61 ++
 DEmon/iWareLog/LOG/Entity/FailSentMessageEntity.cs      |  132 ++++
 DEmon/iWareLog/LOG/Dao/AlertDao.cs                      |   64 ++
 DEmon/iWareCommon/bin/Debug/iWareCommon.dll             |    0 
 DEmon/iWareLog/LOG/Entity/SendMsgLogEntity.cs           |  115 ++++
 DEmon/iWareLog/LOG/Entity/InOutStorageDetailEntity.cs   |  150 +++++
 DEmon/iWareCommon/obj/Debug/iWareCommon.pdb             |    0 
 DEmon/iWareLog/LOG/Entity/ReceiveMsgLogEntity.cs        |  113 ++++
 DEmon/iWareCommon/obj/Debug/iWareCommon.dll             |    0 
 DEmon/iWareLog/LOG/Dao/OperationDao.cs                  |   64 ++
 DEmon/iWareLog/LOG/Service/SendMsgLogService.cs         |   37 +
 DEmon/iWareLog/LOG/Service/InOutStorageDetailService.cs |   36 +
 DEmon/iWareLog/LOG/EnumType/EInOutStorageType.cs        |   17 
 DEmon/iWareLog/LOG/Dao/ReceiveMsgLogDao.cs              |   64 ++
 DEmon/iWareLog/LOG/EnumType/EReceiveType.cs             |   15 
 DEmon/iWareLog/LOG/Dao/SendMsgLogDao.cs                 |   64 ++
 DEmon/iWareLog/LOG/Entity/OperationEntity.cs            |  138 +++++
 DEmon/iWareLog/LOG/Entity/AlertEntity.cs                |  138 +++++
 DEmon/iWareLog/LOG/Dao/FailSentMessageDao.cs            |   64 ++
 DEmon/iWareLog/LOG/Dao/InOutStorageDetailDao.cs         |   64 ++
 DEmon/iWareLog/LOG/Service/FailSentMessageService.cs    |  185 ++++++
 25 files changed, 1,599 insertions(+), 0 deletions(-)

diff --git a/DEmon/iWareCommon/bin/Debug/iWareCommon.dll b/DEmon/iWareCommon/bin/Debug/iWareCommon.dll
index e45d141..c2c2dde 100644
--- a/DEmon/iWareCommon/bin/Debug/iWareCommon.dll
+++ b/DEmon/iWareCommon/bin/Debug/iWareCommon.dll
Binary files differ
diff --git a/DEmon/iWareCommon/bin/Debug/iWareCommon.pdb b/DEmon/iWareCommon/bin/Debug/iWareCommon.pdb
index 2dd2d33..5e852ad 100644
--- a/DEmon/iWareCommon/bin/Debug/iWareCommon.pdb
+++ b/DEmon/iWareCommon/bin/Debug/iWareCommon.pdb
Binary files differ
diff --git a/DEmon/iWareCommon/obj/Debug/iWareCommon.dll b/DEmon/iWareCommon/obj/Debug/iWareCommon.dll
index e45d141..c2c2dde 100644
--- a/DEmon/iWareCommon/obj/Debug/iWareCommon.dll
+++ b/DEmon/iWareCommon/obj/Debug/iWareCommon.dll
Binary files differ
diff --git a/DEmon/iWareCommon/obj/Debug/iWareCommon.pdb b/DEmon/iWareCommon/obj/Debug/iWareCommon.pdb
index 2dd2d33..5e852ad 100644
--- a/DEmon/iWareCommon/obj/Debug/iWareCommon.pdb
+++ b/DEmon/iWareCommon/obj/Debug/iWareCommon.pdb
Binary files differ
diff --git a/DEmon/iWareLog/LOG/Dao/AlertDao.cs b/DEmon/iWareLog/LOG/Dao/AlertDao.cs
new file mode 100644
index 0000000..74242c4
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/AlertDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class AlertDao : CommonDao<AlertEntity, DEVAlert>
+    {
+         private static object Lock = new object();
+
+         private AlertDao() { }
+
+         private static AlertDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static AlertDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new AlertDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return AlertEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return AlertEntity.GetTableName();
+         }
+
+         protected override AlertEntity ToEntity(DEVAlert receive)
+         {
+             return new AlertEntity(receive);
+         }
+
+         protected override DEVAlert ToOrm(AlertEntity receive)
+         {
+             return receive.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return AlertEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Dao/FailSentMessageDao.cs b/DEmon/iWareLog/LOG/Dao/FailSentMessageDao.cs
new file mode 100644
index 0000000..d8dc28a
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/FailSentMessageDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class FailSentMessageDao : CommonDao<FailSentMessageEntity, LOGERRORFailSentMessage>
+    {
+         private static object Lock = new object();
+
+         private FailSentMessageDao() { }
+
+         private static FailSentMessageDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static FailSentMessageDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new FailSentMessageDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return FailSentMessageEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return FailSentMessageEntity.GetTableName();
+         }
+
+         protected override FailSentMessageEntity ToEntity(LOGERRORFailSentMessage receive)
+         {
+             return new FailSentMessageEntity(receive);
+         }
+
+         protected override LOGERRORFailSentMessage ToOrm(FailSentMessageEntity receive)
+         {
+             return receive.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return FailSentMessageEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Dao/InOutStorageDetailDao.cs b/DEmon/iWareLog/LOG/Dao/InOutStorageDetailDao.cs
new file mode 100644
index 0000000..6533ece
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/InOutStorageDetailDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class InOutStorageDetailDao : CommonDao<InOutStorageDetailEntity, InOutStorageDetail>
+    {
+         private static object Lock = new object();
+
+         private InOutStorageDetailDao() { }
+
+         private static InOutStorageDetailDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static InOutStorageDetailDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new InOutStorageDetailDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return InOutStorageDetailEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return InOutStorageDetailEntity.GetTableName();
+         }
+
+         protected override InOutStorageDetailEntity ToEntity(InOutStorageDetail receive)
+         {
+             return new InOutStorageDetailEntity(receive);
+         }
+
+         protected override InOutStorageDetail ToOrm(InOutStorageDetailEntity receive)
+         {
+             return receive.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return InOutStorageDetailEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Dao/OperationDao.cs b/DEmon/iWareLog/LOG/Dao/OperationDao.cs
new file mode 100644
index 0000000..3e8f622
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/OperationDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class OperationDao : CommonDao<OperationEntity, LOGOperation>
+    {
+         private static object Lock = new object();
+
+         private OperationDao() { }
+
+         private static OperationDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static OperationDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new OperationDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return OperationEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return OperationEntity.GetTableName();
+         }
+
+         protected override OperationEntity ToEntity(LOGOperation receive)
+         {
+             return new OperationEntity(receive);
+         }
+
+         protected override LOGOperation ToOrm(OperationEntity receive)
+         {
+             return receive.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return OperationEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Dao/ReceiveMsgLogDao.cs b/DEmon/iWareLog/LOG/Dao/ReceiveMsgLogDao.cs
new file mode 100644
index 0000000..c65511a
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/ReceiveMsgLogDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class ReceiveMsgLogDao : CommonDao<ReceiveMsgLogEntity, LOGReceiveMsgLog>
+    {
+         private static object Lock = new object();
+
+         private ReceiveMsgLogDao() { }
+
+         private static ReceiveMsgLogDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static ReceiveMsgLogDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new ReceiveMsgLogDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return ReceiveMsgLogEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return ReceiveMsgLogEntity.GetTableName();
+         }
+
+         protected override ReceiveMsgLogEntity ToEntity(LOGReceiveMsgLog receive)
+         {
+             return new ReceiveMsgLogEntity(receive);
+         }
+
+         protected override LOGReceiveMsgLog ToOrm(ReceiveMsgLogEntity receive)
+         {
+             return receive.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return ReceiveMsgLogEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Dao/SendMsgLogDao.cs b/DEmon/iWareLog/LOG/Dao/SendMsgLogDao.cs
new file mode 100644
index 0000000..c352bea
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Dao/SendMsgLogDao.cs
@@ -0,0 +1,64 @@
+锘縰sing iWareCommon.Common.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace iWareLog.LOG.Dao
+{
+    public class SendMsgLogDao: CommonDao<SendMsgLogEntity, LOGSendMsgLog>
+    {
+         private static object Lock = new object();
+
+         private SendMsgLogDao() { }
+
+         private static SendMsgLogDao Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>LOG鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static SendMsgLogDao GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new SendMsgLogDao();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+         protected override string GetColumnName(string name)
+         {
+             return SendMsgLogEntity.GetColumnName(name);
+         }
+
+         protected override string GetTableName()
+         {
+             return SendMsgLogEntity.GetTableName();
+         }
+
+         protected override SendMsgLogEntity ToEntity(LOGSendMsgLog send)
+         {
+             return new SendMsgLogEntity(send);
+         }
+
+         protected override LOGSendMsgLog ToOrm(SendMsgLogEntity send)
+         {
+             return send.ToOrm();
+         }
+
+         protected override List<string> GetColumnNames()
+         {
+             return SendMsgLogEntity.GetColumnMap().Keys.ToList();
+         }
+
+    }
+}
\ No newline at end of file
diff --git a/DEmon/iWareLog/LOG/Entity/AlertEntity.cs b/DEmon/iWareLog/LOG/Entity/AlertEntity.cs
new file mode 100644
index 0000000..0cb2217
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/AlertEntity.cs
@@ -0,0 +1,138 @@
+锘縰sing iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using iWareCommon.Common.Entity;
+
+
+namespace iWareLog.LOG.Entity
+{
+    public class AlertEntity : ICommonEntity<DEVAlert>
+    {
+        /// <summary>
+        /// 1涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 2灏忚溅鍚嶇О
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 3鎻愮ず绫诲瀷
+        /// </summary>
+        public int Type { get; set; }
+
+        /// <summary>
+        /// 4璁惧id
+        /// </summary>
+        public string EquipId { get; set; }
+
+        /// <summary>
+        /// 5鎻愮ず浠g爜
+        /// </summary>
+        public string AlertCode{ get; set; }
+
+        /// <summary>
+        /// 6鎻愮ず鍚嶇О
+        /// </summary>
+        public string AlertName { get; set; }
+
+        /// <summary>
+        /// 7鏄惁娑堣
+        /// </summary>
+        public int IsFinished { get; set; }
+
+        /// <summary>
+        /// 8浜嬩欢浠g爜
+        /// </summary>
+        public int EventCode { get; set; }
+
+        /// <summary>
+        /// 9鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+
+
+        /// <summary>
+        /// 10缁撴潫浜嬩欢
+        /// </summary>
+        public DateTime FinishTime { get; set; }
+
+
+        /// <summary>
+        /// 鏃犲弬鏋勯��
+        /// </summary>
+        public AlertEntity() {  }
+
+
+        /// <summary>
+        /// 鏈夊弬鏋勯��
+        /// </summary>
+        /// <param name="alert">orm鍗板皠鐨勭被</param>
+        public AlertEntity(DEVAlert alert)
+        {
+            EntityPropHelper<AlertEntity, DEVAlert>.CopyProp(alert, this, GetColumnMap());
+        }
+
+
+
+        /// <summary>
+        /// 灏嗗璞¤浆鎹㈡垚ORM涓殑绫诲瀷
+        /// </summary>
+        /// <returns>Orm涓殑BASEShift绫诲瀷</returns>
+        public DEVAlert ToOrm()
+        {
+            DEVAlert alert = new DEVAlert();
+            EntityPropHelper<AlertEntity, DEVAlert>.CopyProp(this, alert, GetColumnMap());
+
+            return alert;
+        }
+
+        ///<summary>
+        /// 鑾峰彇鑷畾涔夎鑹茬被涓殑瀛楁鍚嶄负閿紝orm涓璞$殑瀛楁鍚嶄负鍊肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "id"},
+                {"Name", "name"},
+                {"Type", "type"},
+                {"EquipId", "equipid"},
+                {"AlertCode", "alertcode"},
+                {"AlertName", "alertname"},
+                {"IsFinished", "isfinished"},
+                {"EventCode","eventcode"},
+                {"CreateTime","createtime"},
+                {"FinishTime","finishtime"}
+            };
+        }
+      
+        /// <summary>
+        /// 鏍规嵁ShiftEntity鐨勫瓧娈佃浆BASEShift鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">ShiftEntity鐨勫瓧娈�</param>
+        /// <returns>BASEShift</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇ShiftEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>琛ㄥ悕</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[DEVAlert]";
+        }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Entity/FailSentMessageEntity.cs b/DEmon/iWareLog/LOG/Entity/FailSentMessageEntity.cs
new file mode 100644
index 0000000..d99c6a3
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/FailSentMessageEntity.cs
@@ -0,0 +1,132 @@
+锘縰sing iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using iWareCommon.Common.Entity;
+
+
+namespace iWareLog.LOG.Entity
+{
+    public class FailSentMessageEntity : ICommonEntity<LOGERRORFailSentMessage>
+    {
+        /// <summary>
+        /// 1涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 2鎻愪氦鍦板潃
+        /// </summary>
+        public string Url { get; set; }
+
+        /// <summary>
+        /// 3璇锋眰瀛楃涓�
+        /// </summary>
+        public string RequestStr { get; set; }
+
+        /// <summary>
+        /// 4閲嶈瘯娆℃暟
+        /// </summary>
+        public int RetryTimes { get; set; }
+
+        /// <summary>
+        /// 5鏄惁ok,0涓烘湭鎴愬姛锛�1涓烘垚鍔�
+        /// </summary>
+        public int IsOk { get; set; }
+
+        /// <summary>
+        /// 6鏄惁鍙戦�侀偖浠讹細0涓烘湭鍙戦�侊紝1涓哄凡鍙戦��
+        /// </summary>
+        public int IsMailed { get; set; }
+
+        /// <summary>
+        /// 7鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+
+
+        /// <summary>
+        /// 8缁撴潫浜嬩欢
+        /// </summary>
+        public DateTime FinishTime { get; set; }
+
+        /// <summary>
+        /// 9閿欒娑堟伅
+        /// </summary>
+        public string ResMsg { get; set; }
+
+
+
+        /// <summary>
+        /// 鏃犲弬鏋勯��
+        /// </summary>
+        public FailSentMessageEntity() {  }
+
+        /// <summary>
+        /// 鏈夊弬鏋勯��
+        /// </summary>
+        /// <param name="alert">orm鍗板皠鐨勭被</param>
+        public FailSentMessageEntity(LOGERRORFailSentMessage alert)
+        {
+            EntityPropHelper<FailSentMessageEntity, LOGERRORFailSentMessage>.CopyProp(alert, this, GetColumnMap());
+        }
+
+
+
+        /// <summary>
+        /// 灏嗗璞¤浆鎹㈡垚ORM涓殑绫诲瀷
+        /// </summary>
+        /// <returns>Orm涓殑BASEShift绫诲瀷</returns>
+        public LOGERRORFailSentMessage ToOrm()
+        {
+            LOGERRORFailSentMessage alert = new LOGERRORFailSentMessage();
+            EntityPropHelper<FailSentMessageEntity, LOGERRORFailSentMessage>.CopyProp(this, alert, GetColumnMap());
+
+            return alert;
+        }
+
+        ///<summary>
+        /// 鑾峰彇鑷畾涔夎鑹茬被涓殑瀛楁鍚嶄负閿紝orm涓璞$殑瀛楁鍚嶄负鍊肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "id"},
+                {"Url", "url"},
+                {"RequestStr", "requeststr"},
+                {"RetryTimes", "retrytimes"},
+                {"IsOk", "isok"},
+                {"IsMailed", "ismailed"},
+                {"CreateTime", "createtime"},
+                {"UpdateTime","updatetime"},
+                {"ResMsg","resmsg"}
+            };
+        }
+      
+        /// <summary>
+        /// 鏍规嵁ShiftEntity鐨勫瓧娈佃浆BASEShift鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">ShiftEntity鐨勫瓧娈�</param>
+        /// <returns>BASEShift</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇ShiftEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>琛ㄥ悕</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[LOGERRORFailSentMessage]";
+        }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Entity/InOutStorageDetailEntity.cs b/DEmon/iWareLog/LOG/Entity/InOutStorageDetailEntity.cs
new file mode 100644
index 0000000..8df4c19
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/InOutStorageDetailEntity.cs
@@ -0,0 +1,150 @@
+锘縰sing iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using iWareCommon.Common.Entity;
+
+
+namespace iWareLog.LOG.Entity
+{
+    public class InOutStorageDetailEntity : ICommonEntity<InOutStorageDetail>
+    {
+        /// <summary>
+        /// 1涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 2搴撲綅绫诲瀷id
+        /// </summary>
+        public int FormPlaceId { get; set; }
+
+        /// <summary>
+        /// 3搴撲綅浠g爜
+        /// </summary>
+        public string FromPlaceCode { get; set; }
+
+        /// <summary>
+        /// 4搴撲綅绫诲瀷id
+        /// </summary>
+        public int ToPlaceId { get; set; }
+
+        /// <summary>
+        /// 5搴撲綅浠g爜
+        /// </summary>
+        public string ToPlaceCode { get; set; }
+
+        /// <summary>
+        /// 6鍑哄叆搴撴椂闂�
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+
+        /// <summary>
+        /// 7淇敼鏃堕棿
+        /// </summary>
+        public DateTime UpdateTime { get; set; }
+
+        /// <summary>
+        /// 8鎿嶄綔绫诲瀷锛�1涓哄叆搴擄紝2涓哄嚭搴�
+        /// </summary>
+        public int Type { get; set; }
+
+        /// <summary>
+        /// 9璁惧id
+        /// </summary>
+        public int EquipId { get; set; }
+
+        /// <summary>
+        /// 10璁惧鍚嶇О
+        /// </summary>
+        public string EquipName { get; set; }
+
+        /// <summary>
+        /// 11鐗╂枡id
+        /// </summary>
+        public int MaterialId { get; set; }
+
+
+        /// <summary>
+        /// 12鐗╂枡鍙�
+        /// </summary>
+        public string MaterialCode { get; set; }
+
+
+        /// <summary>
+        /// 鏃犲弬鏋勯��
+        /// </summary>
+        public InOutStorageDetailEntity() {  }
+
+
+        /// <summary>
+        /// 鏈夊弬鏋勯��
+        /// </summary>
+        /// <param name="alert">orm鍗板皠鐨勭被</param>
+        public InOutStorageDetailEntity(InOutStorageDetail alert)
+        {
+            EntityPropHelper<InOutStorageDetailEntity, InOutStorageDetail>.CopyProp(alert, this, GetColumnMap());
+        }
+
+
+
+        /// <summary>
+        /// 灏嗗璞¤浆鎹㈡垚ORM涓殑绫诲瀷
+        /// </summary>
+        /// <returns>Orm涓殑BASEShift绫诲瀷</returns>
+        public InOutStorageDetail ToOrm()
+        {
+            InOutStorageDetail alert = new InOutStorageDetail();
+            EntityPropHelper<InOutStorageDetailEntity, InOutStorageDetail>.CopyProp(this, alert, GetColumnMap());
+
+            return alert;
+        }
+
+        ///<summary>
+        /// 鑾峰彇鑷畾涔夎鑹茬被涓殑瀛楁鍚嶄负閿紝orm涓璞$殑瀛楁鍚嶄负鍊肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "id"},
+                {"FormPlaceId", "formplaceid"},
+                {"FromPlaceCode", "fromplacecode"},
+                {"ToPlaceId", "toplaceid"},
+                {"ToPlaceCode", "toplacecode"},
+                {"CreateTime", "createtime"},
+                {"UpdateTime", "updatetime"},
+                {"EquipId","equipid"},
+                {"EquipName","equipname"},
+                {"MaterialId", "materialid"},
+                {"MaterialCode","materialcode"},
+                {"Type","type"}
+            };
+        }
+      
+        /// <summary>
+        /// 鏍规嵁ShiftEntity鐨勫瓧娈佃浆BASEShift鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">ShiftEntity鐨勫瓧娈�</param>
+        /// <returns>BASEShift</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇ShiftEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>琛ㄥ悕</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[InOutStorageDetail]";
+        }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Entity/OperationEntity.cs b/DEmon/iWareLog/LOG/Entity/OperationEntity.cs
new file mode 100644
index 0000000..605b816
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/OperationEntity.cs
@@ -0,0 +1,138 @@
+锘縰sing iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using iWareCommon.Common.Entity;
+
+
+namespace iWareLog.LOG.Entity
+{
+    public class OperationEntity : ICommonEntity<LOGOperation>
+    {
+        /// <summary>
+        /// 1涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 2
+        /// </summary>
+        public int WbLogType { get; set; }
+
+        /// <summary>
+        /// 3
+        /// </summary>
+        public DateTime WbLogDate { get; set; }
+
+        /// <summary>
+        /// 4
+        /// </summary>
+        public string WbLogacCount { get; set; }
+
+        /// <summary>
+        /// 5
+        /// </summary>
+        public string WbUserName { get; set; }
+
+        /// <summary>
+        /// 6
+        /// </summary>
+        public string WbUserIpaddress { get; set; }
+
+        /// <summary>
+        /// 7
+        /// </summary>
+        public string WbLogTxt { get; set; }
+
+        /// <summary>
+        /// 8
+        /// </summary>
+        public string Log_backup1 { get; set; }
+
+        /// <summary>
+        /// 9
+        /// </summary>
+        public string Log_backup2 { get; set; }
+
+
+        /// <summary>
+        /// 10
+        /// </summary>
+        public string Log_backup3 { get; set; }
+
+
+        /// <summary>
+        /// 鏃犲弬鏋勯��
+        /// </summary>
+        public OperationEntity() {  }
+
+
+        /// <summary>
+        /// 鏈夊弬鏋勯��
+        /// </summary>
+        /// <param name="alert">orm鍗板皠鐨勭被</param>
+        public OperationEntity(LOGOperation alert)
+        {
+            EntityPropHelper<OperationEntity, LOGOperation>.CopyProp(alert, this, GetColumnMap());
+        }
+
+
+
+        /// <summary>
+        /// 灏嗗璞¤浆鎹㈡垚ORM涓殑绫诲瀷
+        /// </summary>
+        /// <returns>Orm涓殑BASEShift绫诲瀷</returns>
+        public LOGOperation ToOrm()
+        {
+            LOGOperation alert = new LOGOperation();
+            EntityPropHelper<OperationEntity, LOGOperation>.CopyProp(this, alert, GetColumnMap());
+
+            return alert;
+        }
+
+        ///<summary>
+        /// 鑾峰彇鑷畾涔夎鑹茬被涓殑瀛楁鍚嶄负閿紝orm涓璞$殑瀛楁鍚嶄负鍊肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "wbdatalogid"},
+                {"WbLogType", "wblogtype"},
+                {"WbLogDate", "wblogdate"},
+                {"WbLogacCount", "wblogaccount"},
+                {"WbUserName", "wbusername"},
+                {"WbUserIpaddress", "wbuseripaddress"},
+                {"WbLogTxt", "wblogtxt"},
+                {"Log_backup1","log_backup1"},
+                {"Log_backup2","log_backup2"},
+                {"Log_backup3","log_backup3"}
+            };
+        }
+      
+        /// <summary>
+        /// 鏍规嵁ShiftEntity鐨勫瓧娈佃浆BASEShift鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">ShiftEntity鐨勫瓧娈�</param>
+        /// <returns>BASEShift</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇ShiftEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>琛ㄥ悕</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[LOGOperation]";
+        }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Entity/ReceiveMsgLogEntity.cs b/DEmon/iWareLog/LOG/Entity/ReceiveMsgLogEntity.cs
new file mode 100644
index 0000000..0e0b73e
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/ReceiveMsgLogEntity.cs
@@ -0,0 +1,113 @@
+锘縰sing iWareCommon.Common.Entity;
+using iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+
+namespace iWareLog.LOG.Entity
+{
+    public class ReceiveMsgLogEntity : ICommonEntity<LOGReceiveMsgLog>
+    {
+        /// <summary>
+        /// 鎺ュ彈淇℃伅鏃ュ織涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎺ュ彈绫诲瀷锛�0涓簑ip锛�1涓簉cs, 2涓轰汉宸ュ彂閫�
+        /// </summary>
+        public int Type { get; set; }
+
+        /// <summary>
+        /// 璋冪敤鎺ュ彛鍚嶇О
+        /// </summary>
+        public string InterfaceName { get; set; }
+
+        /// <summary>
+        /// 璇锋眰瀛楃涓�
+        /// </summary>
+        public string RequestStr { get; set; }
+
+        /// <summary>
+        /// 搴旂瓟瀛楃涓�
+        /// </summary>
+        public string ResponseStr { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鏃堕棿
+        /// </summary>
+        public DateTime ReceiveTime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public ReceiveMsgLogEntity() { }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="receive">orm涓殑妯″瀷</param>
+        public ReceiveMsgLogEntity(LOGReceiveMsgLog receive)
+        {
+            EntityPropHelper<ReceiveMsgLogEntity, LOGReceiveMsgLog>.CopyProp(receive, this, GetColumnMap());
+        }
+
+        /// <summary>
+        /// 鑾峰彇鑷畾涔夌被ReceiveMsgLogEntity鐨勫瓧娈靛悕涓洪敭锛孫RM瀵硅薄涓瓧娈靛悕涓哄�肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "id"},
+                {"Type", "type"},
+                {"InterfaceName", "interfacename"},
+                {"RequestStr", "requeststr"},
+                {"ResponseStr", "responsestr"},
+                {"ReceiveTime","receivetime"},
+                {"Remark","remark"}
+            };
+        }
+
+        /// <summary>
+        /// 灏哛eceiveMsgLogEntity瀹炰綋杞寲涓簅rm閲岄潰鐨凩OGReceiveMsgLog妯″瀷
+        /// </summary>
+        /// <returns>orm涓殑LOGReceiveMsgLog妯″瀷</returns>
+        public LOGReceiveMsgLog ToOrm()
+        {
+            var receive = new LOGReceiveMsgLog();
+            EntityPropHelper<ReceiveMsgLogEntity, LOGReceiveMsgLog>.CopyProp(this, receive, GetColumnMap());
+            return receive;
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁ReceiveMsgLogEntity鐨勫瓧娈佃浆LOGReceiveMsgLog鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">ReceiveMsgLogEntity鐨勫瓧娈�</param>
+        /// <returns>LOGReceiveMsgLog</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇ReceiveMsgLogEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>LOGReceiveMsgLog</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[LOGReceiveMsgLog]";
+        }
+        
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Entity/SendMsgLogEntity.cs b/DEmon/iWareLog/LOG/Entity/SendMsgLogEntity.cs
new file mode 100644
index 0000000..466cf36
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Entity/SendMsgLogEntity.cs
@@ -0,0 +1,115 @@
+锘縰sing iWareCommon.Common.Entity;
+using iWareCommon.Utils;
+using iWareLog.ORM;
+using System;
+using System.Collections.Generic;
+
+namespace iWareLog.LOG.Entity
+{
+    public class SendMsgLogEntity : ICommonEntity<LOGSendMsgLog>
+    {
+        /// <summary>
+        /// 鎺ュ彈淇℃伅鏃ュ織涓婚敭
+        /// </summary>
+        public int Id { get; set; }
+
+       
+        /// <summary>
+        /// 璋冪敤鎺ュ彛鍚嶇О
+        /// </summary>
+        public string InterfaceName { get; set; }
+
+        /// <summary>
+        /// 璇锋眰瀛楃涓�
+        /// </summary>
+        public string RequestStr { get; set; }
+
+        /// <summary>
+        /// 搴旂瓟瀛楃涓�
+        /// </summary>
+        public string ResponseStr { get; set; }
+
+        /// <summary>
+        /// 鍙戦�佹椂闂�
+        /// </summary>
+        public DateTime SendTime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public SendMsgLogEntity() { }
+
+        /// <summary>
+        /// 鎺ュ彈绫诲瀷锛�0涓簑ip锛�1涓簉cs, 2涓轰汉宸ュ彂閫�
+        /// </summary>
+        public int Type { get; set; }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="receive">orm涓殑妯″瀷</param>
+        public SendMsgLogEntity(LOGSendMsgLog send)
+        {
+            EntityPropHelper<SendMsgLogEntity, LOGSendMsgLog>.CopyProp(send, this, GetColumnMap());
+        }
+
+        /// <summary>
+        /// 鑾峰彇鑷畾涔夌被SendMsgLogEntity鐨勫瓧娈靛悕涓洪敭锛孫RM瀵硅薄涓瓧娈靛悕涓哄�肩殑瀛楁
+        /// </summary>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetColumnMap()
+        {
+            return new Dictionary<string, string>() 
+            { 
+                {"Id", "id"},
+                {"Type", "type"},
+                {"InterfaceName", "interfacename"},
+                {"RequestStr", "requeststr"},
+                {"ResponseStr", "responsestr"},
+                {"SendTime","sendtime"},
+                {"Remark","remark"}
+            };
+        }
+
+        /// <summary>
+        /// 灏哠endMsgLogEntity瀹炰綋杞寲涓簅rm閲岄潰鐨凩OGSendMsgLog妯″瀷
+        /// </summary>
+        /// <returns>orm涓殑LOGReceiveMsgLog妯″瀷</returns>
+        public LOGSendMsgLog ToOrm()
+        {
+            var send = new LOGSendMsgLog();
+            EntityPropHelper<SendMsgLogEntity, LOGSendMsgLog>.CopyProp(this, send, GetColumnMap());
+            return send;
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁SendMsgLogEntity鐨勫瓧娈佃浆LOGSendMsgLog鐨勫瓧娈�
+        /// </summary>
+        /// <param name="name">SendMsgLogEntity鐨勫瓧娈�</param>
+        /// <returns>LOGSendMsgLog</returns>
+        public static string GetColumnName(string name)
+        {
+            var columnMap = GetColumnMap();
+            return columnMap.ContainsKey(name) ? columnMap[name] : name;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇SendMsgLogEntity瀵瑰簲鐨勮〃鍚�
+        /// </summary>
+        /// <returns>LOGSendMsgLog</returns>
+        public static string GetTableName()
+        {
+            return "[dbo].[LOGSendMsgLog]";
+        }
+        
+
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/EnumType/EInOutStorageType.cs b/DEmon/iWareLog/LOG/EnumType/EInOutStorageType.cs
new file mode 100644
index 0000000..8f64b4f
--- /dev/null
+++ b/DEmon/iWareLog/LOG/EnumType/EInOutStorageType.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace iWareLog.LOG.EnumType
+{
+    public enum EInOutStorageType
+    {
+        鍏ュ簱 = 0,
+        鍑哄簱 = 1,
+        绉诲簱 = 2,
+        閫�搴� = 3
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/EnumType/EReceiveType.cs b/DEmon/iWareLog/LOG/EnumType/EReceiveType.cs
new file mode 100644
index 0000000..d97ab30
--- /dev/null
+++ b/DEmon/iWareLog/LOG/EnumType/EReceiveType.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace iWareLog.LOG.EnumType
+{
+    public enum EReceiveType
+    {
+        wip,
+        rcs,
+        浜哄伐鍙戦��
+    }
+}
diff --git a/DEmon/iWareLog/LOG/EnumType/_system~.ini b/DEmon/iWareLog/LOG/EnumType/_system~.ini
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/DEmon/iWareLog/LOG/EnumType/_system~.ini
diff --git a/DEmon/iWareLog/LOG/Service/AlertService.cs b/DEmon/iWareLog/LOG/Service/AlertService.cs
new file mode 100644
index 0000000..bc233ae
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/AlertService.cs
@@ -0,0 +1,40 @@
+锘縰sing iWareLog.ORM;
+using iWareLog.LOG.Entity;
+using iWareLog.LOG.Dao;
+using iWareCommon.Common.Service;
+
+namespace iWareLog.LOG.Service
+{
+    public class AlertService : CommonService<AlertEntity, DEVAlert, DbModelLog>
+    {
+           private static object Lock = new object();
+
+           private AlertService() : base(AlertDao.GetInstance()) { }
+
+           private static AlertService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+           public static AlertService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new AlertService();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+        
+        
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Service/FailSentMessageService.cs b/DEmon/iWareLog/LOG/Service/FailSentMessageService.cs
new file mode 100644
index 0000000..8c3e7cb
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/FailSentMessageService.cs
@@ -0,0 +1,185 @@
+锘縰sing iWareLog.ORM;
+using iWareLog.LOG.Entity;
+using iWareLog.LOG.Dao;
+using iWareCommon.Common.Service;
+using iWareCommon.Utils;
+using System;
+using iWareCommon.Common.EnumType;
+using Newtonsoft.Json;
+using iWareLog.Properties;
+using iWareCommon.Common.Entity;
+using System.Linq;
+
+namespace iWareLog.LOG.Service
+{
+    public class FailSentMessageService : CommonService<FailSentMessageEntity, LOGERRORFailSentMessage, DbModelLog>
+    {
+           private static object Lock = new object();
+
+           private FailSentMessageService() : base(FailSentMessageDao.GetInstance()) { }
+
+           private static FailSentMessageService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+           public static FailSentMessageService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new FailSentMessageService();
+                    }
+                }
+            }
+            return Instance;
+        }
+           /// <summary>
+           /// 閲嶆柊鍙戦��
+           /// </summary>
+           /// <param name="message"></param>
+           /// <param name="msg"></param>
+           /// <returns></returns>
+           public bool ReSend(int id, out string msg)
+           {
+               using (var dbModel = new DbModelLog())
+               {
+                   try
+                   {
+                       msg = "";
+                       var url = "";
+
+                       var message = dbModel.LOGERRORFailSentMessages.FirstOrDefault(x => x.id == id);
+
+                       if (message == null)
+                       {
+                           msg = string.Format("娌℃湁鎵惧埌id涓簕0}鐨勮褰�", id);
+                           return false;
+                       }
+
+                       switch (message.url)
+                       {
+                           case "pushstatusforpreheating":
+                           case "pushstatusforheatstorage":
+                           case "pushstatusforbufferfeed":
+                           case "preheatstoragefinish":
+                           case "pushstatusforft":
+                           case "pushstatusforecmfeedbyrcs":
+                           case "pushstatusforecmblankingbyrcs":
+                           case "pushstatusforheattrans":
+                           case "pushstatusforartificialqualityinspection":
+                           case "heatstoroutbindrfid":
+                           case "heatstoroutbindfinish":
+                           case "pushstatusforbuffertrans":
+                               url = Resources.WipUrl + @"/";
+                               break;
+                           case "syncmaterialinfo":
+                           case "materialstatemodify":
+                           case "getloadingtablestatus":
+                           case "getecmtablestatus":
+                           case "businessexception":
+                           case "equipwarn":
+                           case "equipstatus":
+                           case "agvrealtimelocation":
+                           case "outstoragecompleted":
+                           case "movestoragecompleted":
+                           case "bufferlayingoffcompleted":
+                           case "artificialwarehousing":
+                           case "processcardforwcs":
+                           case "resetprocesscardprintqueue":
+                               url = Resources.WipUrl2 + @"/";
+                               break;
+                           case "reparsetask":
+                               break;
+
+
+                       }
+
+                       var responseStr = HttpHelper.GetHttpResponse(url + message.url, JsonConvert.DeserializeObject(message.requeststr), 5000);
+                       var resFormat = JsonConvert.DeserializeObject<ResEntity>(responseStr);
+
+                       message.isok = resFormat.resCode == "00000" ? (int)EYesOrNo.鏄� : (int)EYesOrNo.鍚�;
+
+                       message.updatetime = DateTime.Now;
+
+                       message.retrytimes += 1;
+
+                       dbModel.SaveChanges();
+
+                       if (message.isok == (int)EYesOrNo.鍚�)
+                       {
+                           msg = resFormat.resMsg;
+                       }
+
+                       return message.isok == (int)EYesOrNo.鏄�;
+
+                   }
+                   catch (Exception ex)
+                   {
+                       msg = ex.Message;
+                       var message = dbModel.LOGERRORFailSentMessages.FirstOrDefault(x => x.id == id);
+                       message.isok = (int)EYesOrNo.鍚�;
+
+                       message.updatetime = DateTime.Now;
+
+                       message.retrytimes += 1;
+
+                       dbModel.SaveChanges();
+                       LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ReSend", msg);
+                       return false;
+                   }
+               }
+           }
+
+           public bool PushBusinessException(int id, out string msg)
+           {
+               using (var dbModel2 = new DbModelLog())
+               {
+                   try
+                   {
+                       msg = "";
+
+                       var message = dbModel2.LOGERRORFailSentMessages.FirstOrDefault(x => x.id == id);
+
+                       if (message == null)
+                       {
+                           msg = string.Format("娌℃湁鎵惧埌id涓簕0}鐨勮褰�", id);
+                           return false;
+                       }
+
+                       var requestBody = new
+                       {
+                           sysCode = "WCS",
+                           taskNo = StringHelper.GetValue(message.requeststr, "taskNo"),
+                           processCardNumber = StringHelper.GetValue(message.requeststr, "processCardNumber"),
+                           exceptionCode = "001",
+                           exceptionMsg = message.resmsg,
+                           timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                       };
+
+                       var responseStr = HttpHelper.GetHttpResponse(Resources.WipUrl2 + @"/businessexception", requestBody, 5000);
+
+                       LogTextHelper.WriteLine(Resources.LogDir, "PushBusinessException:responseStr = {0}", responseStr);
+
+                       return true;
+                   }
+                   catch (Exception ex)
+                   {
+                       msg = ex.Message;
+
+                       LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "PushBusinessException", msg);
+                       return false;
+                   }
+
+               }
+
+           }
+
+         
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Service/InOutStorageDetailService.cs b/DEmon/iWareLog/LOG/Service/InOutStorageDetailService.cs
new file mode 100644
index 0000000..f133246
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/InOutStorageDetailService.cs
@@ -0,0 +1,36 @@
+锘縰sing iWareLog.ORM;
+using iWareLog.LOG.Entity;
+using iWareLog.LOG.Dao;
+using iWareCommon.Common.Service;
+
+namespace iWareLog.LOG.Service
+{
+    public class InOutStorageDetailService : CommonService<InOutStorageDetailEntity, InOutStorageDetail, DbModelLog>
+    {
+           private static object Lock = new object();
+
+           private InOutStorageDetailService() : base(InOutStorageDetailDao.GetInstance()) { }
+
+           private static InOutStorageDetailService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+        public static InOutStorageDetailService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new InOutStorageDetailService();
+                    }
+                }
+            }
+            return Instance;
+        }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Service/OperationService.cs b/DEmon/iWareLog/LOG/Service/OperationService.cs
new file mode 100644
index 0000000..dd27816
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/OperationService.cs
@@ -0,0 +1,61 @@
+锘縰sing iWareLog.ORM;
+using iWareLog.LOG.Entity;
+using iWareLog.LOG.Dao;
+using iWareCommon.Common.Service;
+using iWareCommon.Utils;
+using iWareLog.Properties;
+using System;
+
+namespace iWareLog.LOG.Service
+{
+    public class OperationService : CommonService<OperationEntity, LOGOperation, DbModelLog>
+    {
+           private static object Lock = new object();
+
+           private OperationService() : base(OperationDao.GetInstance()) { }
+
+           private static OperationService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+           public static OperationService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new OperationService();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+           /// <summary>
+           /// 鍐欏叆鏃ュ織
+           /// </summary>
+           /// <param name="tt_new"></param>
+           /// <returns></returns>
+           public void Save(OperationEntity dateLog)
+           {
+               try
+               {
+                   using (DbModelLog ml = new DbModelLog())
+                   {
+                       ml.LOGOperations.Add(dateLog.ToOrm());
+                       ml.SaveChanges();
+                   }
+               }
+               catch (Exception ex)
+               {
+                LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", ex.Message);
+                  
+               }
+           }
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Service/ReceiveMsgLogService.cs b/DEmon/iWareLog/LOG/Service/ReceiveMsgLogService.cs
new file mode 100644
index 0000000..db3fff4
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/ReceiveMsgLogService.cs
@@ -0,0 +1,38 @@
+锘縰sing iWareLog.ORM;
+using iWareLog.LOG.Entity;
+using iWareLog.LOG.Dao;
+using iWareCommon.Common.Service;
+
+namespace iWareLog.LOG.Service
+{
+    public class ReceiveMsgLogService : CommonService<ReceiveMsgLogEntity, LOGReceiveMsgLog, DbModelLog>
+    {
+           private static object Lock = new object();
+
+           private ReceiveMsgLogService() : base(ReceiveMsgLogDao.GetInstance()) { }
+
+           private static ReceiveMsgLogService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+           public static ReceiveMsgLogService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new ReceiveMsgLogService();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+
+    }
+}
diff --git a/DEmon/iWareLog/LOG/Service/SendMsgLogService.cs b/DEmon/iWareLog/LOG/Service/SendMsgLogService.cs
new file mode 100644
index 0000000..1ac4b50
--- /dev/null
+++ b/DEmon/iWareLog/LOG/Service/SendMsgLogService.cs
@@ -0,0 +1,37 @@
+锘縰sing iWareLog.LOG.Dao;
+using iWareLog.LOG.Entity;
+using iWareLog.ORM;
+using iWareCommon.Common.Service;
+
+namespace iWareLog.LOG.Service
+{
+    public class SendMsgLogService : CommonService<SendMsgLogEntity, LOGSendMsgLog, DbModelLog>
+    {
+         private static object Lock = new object();
+
+         private SendMsgLogService() : base(SendMsgLogDao.GetInstance()) { }
+
+         private static SendMsgLogService Instance = null;
+
+        /// <summary>
+        /// 鑾峰彇鍗曚緥鐨勬柟娉�
+        /// </summary>
+        /// <returns>log鏈嶅姟鐨勫崟渚嬪疄浣�</returns>
+         public static SendMsgLogService GetInstance()
+        {
+
+            if (Instance == null)
+            {
+                lock (Lock)
+                {
+                    if (Instance == null)
+                    {
+                        Instance = new SendMsgLogService();
+                    }
+                }
+            }
+            return Instance;
+        }
+
+    }
+}

--
Gitblit v1.9.3