From ee546e514efa0951bd5b309e2d54dbe53a488c74 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 22 五月 2023 16:31:49 +0800
Subject: [PATCH] 1.app生产进度看板接口开发 2.app工序检验接口开发 3.存货档案基础资料查询接口开发 4.PC工序检验接口调整

---
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png           |    0 
 VueWebApi/DLL/BLL/AppAnalyticsBLL.cs                                 |    7 
 VueWebApi/DLL/BLL/QualityManagementBLL.cs                            |    4 
 VueWebApi/Controllers/QualityManagementController.cs                 |    3 
 VueWebApi/Controllers/ReportManagerController.cs                     |   65 ++
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/Controllers/AppQualityManagementController.cs              |   61 ++
 VueWebApi/Log4net/ActionConverter.cs                                 |   18 
 VueWebApi/Controllers/AppAnalyticsController.cs                      |   24 
 VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache       |    0 
 VueWebApi/Tools/ChannelActionFilterAttribute.cs                      |    8 
 VueWebApi/VueWebApi.csproj                                           |    6 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/Controllers/ProductionManagementController.cs              |   58 -
 VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png           |    0 
 VueWebApi/Log4net/ActionLoggerInfo.cs                                |   22 
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 VueWebApi/log4net.config                                             |   79 +-
 VueWebApi/DLL/BLL/BaseDateBLL.cs                                     |    7 
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache       |    2 
 VueWebApi/DLL/DAL/AppAnalyticsDAL.cs                                 |  239 ++++++++
 VueWebApi/Image/app_9_2.png                                          |    0 
 VueWebApi/DLL/DAL/ProductModelDAL.cs                                 |    1 
 VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png           |    0 
 VueWebApi/Web.config                                                 |   11 
 VueWebApi/obj/Release/Package/PackageTmp/log4net.config              |   79 +-
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                         |   23 
 VueWebApi/Image/app_9_3.png                                          |    0 
 VueWebApi/Models/AppScheduleKanban.cs                                |   44 +
 VueWebApi/Log4net/LogUtil.cs                                         |   15 
 VueWebApi/bin/VueWebApi.xml                                          |  135 ++++
 VueWebApi/DLL/DAL/ReportManagerDAL.cs                                |  200 +++++++
 VueWebApi/DLL/DAL/QualityManagementDAL.cs                            |   15 
 VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png           |    0 
 VueWebApi/Controllers/BaseDateController.cs                          |   19 
 VueWebApi/obj/Release/TransformWebConfig/original/Web.config         |   11 
 VueWebApi/DLL/DAL/BaseDateDAL.cs                                     |   25 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |  195 ++++--
 VueWebApi/Image/app_9_5.png                                          |    0 
 VueWebApi/DLL/BLL/ReportManagerBLL.cs                                |   15 
 VueWebApi/Image/app_9_4.png                                          |    0 
 VueWebApi/obj/Release/Package/PackageTmp/Web.config                  |    8 
 VueWebApi/Logs/2023-05-10.TXT                                        |   56 ++
 VueWebApi/bin/VueWebApi.dll.config                                   |   11 
 VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config      |    8 
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user       |   27 
 VueWebApi/Image/app_8_1.png                                          |    0 
 VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png           |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml           |  135 ++++
 VueWebApi/Tools/DapperHelper.cs                                      |    2 
 52 files changed, 1,380 insertions(+), 258 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 98e94a3..fb7b099 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/AppAnalyticsController.cs b/VueWebApi/Controllers/AppAnalyticsController.cs
index 4ecd8a3..f10d71a 100644
--- a/VueWebApi/Controllers/AppAnalyticsController.cs
+++ b/VueWebApi/Controllers/AppAnalyticsController.cs
@@ -41,5 +41,29 @@
             return TJson.toJson(mes);
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        /// <summary>
+        /// App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅
+        /// </summary>
+        /// <param name="ordertype">鍗曟嵁绫诲瀷(SO:閿�鍞鍗曘�丮O:鐢熶骇璁㈠崟銆丳O:鐢熶骇宸ュ崟)</param>
+        /// <param name="partcode">浜у搧淇℃伅(鍙涓�)</param>
+        /// <param name="Ratetime">鍗曟嵁鏃ユ湡鑼冨洿</param>
+        /// <returns></returns>
+        [Route(template: "ProductionScheduleKanban")]
+        [HttpGet]
+        public HttpResponseMessage ProductionScheduleKanban(string ordertype, string partcode=null, string Ratetime=null)
+        {
+            string startopendate = "";  //寮�濮嬫椂闂�
+            string endclosedate = "";    //缁撴潫鏃堕棿
+            if (Ratetime != "" && Ratetime != null)
+            {
+                startopendate = Ratetime.Split('~')[0].ToString();
+                endclosedate = Ratetime.Split('~')[1].ToString();
+            }
+            mes = AppAnalyticsBLL.ProductionScheduleKanban(ordertype,partcode, startopendate, endclosedate);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Controllers/AppQualityManagementController.cs b/VueWebApi/Controllers/AppQualityManagementController.cs
index a2a1601..9c9410a 100644
--- a/VueWebApi/Controllers/AppQualityManagementController.cs
+++ b/VueWebApi/Controllers/AppQualityManagementController.cs
@@ -7,6 +7,7 @@
 using System.Web;
 using System.Web.Http;
 using VueWebApi.DLL.BLL;
+using VueWebApi.Models;
 using VueWebApi.Tools;
 
 namespace VueWebApi.Controllers
@@ -80,5 +81,65 @@
         }
         #endregion
 
+
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        /// <summary>
+        /// 宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+        /// </summary>
+        /// <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+        /// <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckSearch")]
+        [HttpGet]
+        public HttpResponseMessage StepCheckSearch(string orderstepqrcode,string checktype)
+        {
+            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
+        /// <summary>
+        /// 鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
+        /// </summary>
+        /// <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckItemList")]
+        [HttpGet]
+        public HttpResponseMessage StepCheckItemList(string checkstandcode)
+        {
+            mes = ProductionManagementBLL.MesOrderStepCheckItemList(checkstandcode);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        /// <summary>
+        /// 宸ュ簭妫�楠�,鎻愪氦
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SaveStepCheckItem")]
+        [HttpPost]
+        public HttpResponseMessage SaveStepCheckItem()
+        {
+            string wocode = HttpContext.Current.Request["wocode"].ToString();//宸ュ崟鍙�
+            string partcode = HttpContext.Current.Request["partcode"].ToString();//鐗╂枡缂栫爜
+            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//宸ュ簭缂栫爜
+            string checkstandcode = HttpContext.Current.Request["checkstandcode"].ToString();//璐ㄦ鏂规缂栫爜
+            string check_type = HttpContext.Current.Request["check_type"].ToString();//妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)
+            string sampmethod = HttpContext.Current.Request["sampmethod"].ToString();//鎶芥鏂瑰紡锛氬浐瀹氭娊妫�(FIXED) 姣斾緥鎶芥(SCARE)
+            string qualitystatus = HttpContext.Current.Request["qualitystatus"].ToString(); //璐ㄩ噺鐘舵��(鍚堟牸銆佷笉鍚堟牸)
+            string labqty = HttpContext.Current.Request["good_qty"].ToString();//宸ュ簭浠诲姟鍚堟牸鏁伴噺
+            string sampleqty = HttpContext.Current.Request["sampleqty"].ToString();//鏍锋湰鏁伴噺
+            string goodqty = HttpContext.Current.Request["goodqty"].ToString();//鍚堟牸鏁伴噺
+            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//涓嶅悎鏍兼暟閲�
+            string checkitemcont = HttpContext.Current.Request["checkitemcont"].ToString();//妫�楠岄」鐩暟鎹�
+            string username = HttpContext.Current.Request["admin"].ToString();//鎿嶄綔浜哄憳
+            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, checkstandcode, check_type, sampmethod, partcode, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
     }
 }
diff --git a/VueWebApi/Controllers/BaseDateController.cs b/VueWebApi/Controllers/BaseDateController.cs
index 6d31157..51f6920 100644
--- a/VueWebApi/Controllers/BaseDateController.cs
+++ b/VueWebApi/Controllers/BaseDateController.cs
@@ -104,6 +104,10 @@
         #endregion
 
         #region[璐ㄦ鏂规淇℃伅]
+        /// <summary>
+        /// 璐ㄦ鏂规淇℃伅
+        /// </summary>
+        /// <returns></returns>
         [Route(template: "QualityScheme")]
         [HttpGet]
         public HttpResponseMessage QualityScheme()
@@ -112,5 +116,20 @@
             return TJson.toJson(mes);
         }
         #endregion
+
+        #region[瀛樿揣鏌ヨ]
+        /// <summary>
+        /// 瀛樿揣鏌ヨ
+        /// </summary>
+        /// <param name="param">瀛樿揣淇℃伅</param>
+        /// <returns></returns>
+        [Route(template: "InventorySelect")]
+        [HttpGet]
+        public HttpResponseMessage InventorySelect(string param=null)
+        {
+            mes = BaseDateBLL.InventorySelect(param);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 9416126..135c5b1 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -677,40 +677,28 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
         /// <summary>
-        /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+        /// 宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
         /// </summary>
-        /// <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
+        /// <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+        /// <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
         /// <returns></returns>
         [Route(template: "MesOrderStepCheckSearch")]
         [HttpGet]
-        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode)
+        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
         {
-            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode);
+            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
             return TJson.toJson(mes);
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁]
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
         /// <summary>
-        /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁
+        /// 鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
         /// </summary>
-        /// <returns></returns>
-        [Route(template: "MesOrderStepCheckSelect")]
-        [HttpGet]
-        public HttpResponseMessage MesOrderStepCheckSelect()
-        {
-            mes = ProductionManagementBLL.MesOrderStepCheckSelect();
-            return TJson.toJson(mes);
-        }
-        #endregion
-
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛╙
-        /// <summary>
-        /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛�
-        /// </summary>
-        /// <param name="checkstandcode">妫�楠屾爣鍑嗙紪鐮�</param>
+        /// <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
         /// <returns></returns>
         [Route(template: "MesOrderStepCheckItemList")]
         [HttpGet]
@@ -721,29 +709,29 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛榏
+        #region[宸ュ簭妫�楠�,鎻愪氦]
         /// <summary>
-        /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
+        /// 宸ュ簭妫�楠�,鎻愪氦
         /// </summary>
-        /// <param name="obj">鎻愪氦淇℃伅</param>
         /// <returns></returns>
         [Route(template: "SaveMesOrderStepCheckItem")]
         [HttpPost]
         public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj)
         {
-            string mesordercode = obj["mesordercode"].ToString(); //宸ュ崟缂栧彿
+            string wocode = obj["wocode"].ToString(); //宸ュ崟缂栧彿
             string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
             string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
-            string checkstanedcode = obj["checkstanedcode"].ToString(); //妫�楠屾爣鍑嗙紪鐮�
-            string checkusercode = obj["checkusercode"].ToString(); //妫�楠屼汉鍛樼紪鐮�
-            string checktypecode = obj["checktypecode"].ToString(); //妫�楠岀被鍨嬬紪鐮�
-            string checkresult = obj["checkresult"].ToString(); //妫�楠岀粨鏋�
-            string checkdescr = obj["checkdescr"].ToString(); //妫�楠屾弿杩�
-            string checkqty = obj["checkqty"].ToString(); //妫�楠屾暟閲�
-            string data = obj["data"].ToString();
-            List<StepCheck> json = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StepCheck>>(data);
+            string checkstandcode = obj["checkstandcode"].ToString(); //璐ㄦ鏂规缂栫爜
+            string check_type = obj["check_type"].ToString(); //妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)
+            string sampmethod = obj["sampmethod"].ToString(); //鎶芥鏂瑰紡锛氬浐瀹氭娊妫�(FIXED) 姣斾緥鎶芥(SCARE)
+            string qualitystatus = obj["qualitystatus"].ToString(); //璐ㄩ噺鐘舵��(鍚堟牸銆佷笉鍚堟牸)
+            string labqty = obj["good_qty"].ToString(); //宸ュ簭浠诲姟鍚堟牸鏁伴噺
+            string sampleqty = obj["sampleqty"].ToString(); //鏍锋湰鏁伴噺
+            string goodqty = obj["goodqty"].ToString(); //鍚堟牸鏁伴噺
+            string ngqty = obj["ngqty"].ToString();//涓嶅悎鏍兼暟閲�
+            string checkitemcont = obj["checkitemcont"].ToString(); //妫�楠岄」鐩暟鎹�
             var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
-            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username, json);
+            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode,stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/Controllers/QualityManagementController.cs b/VueWebApi/Controllers/QualityManagementController.cs
index 4195c23..9b7e4fe 100644
--- a/VueWebApi/Controllers/QualityManagementController.cs
+++ b/VueWebApi/Controllers/QualityManagementController.cs
@@ -355,10 +355,11 @@
             string suitobject = obj["suitobject"].ToString(); //閫傜敤瀵硅薄
             string suitpart = obj["suitpart"].ToString();  //閫傜敤鐗╂枡(缂栫爜)鎴栬�呯墿鏂欑被鍨�(缂栫爜)
             string descr = obj["descr"].ToString(); //妫�楠屾柟妗堟弿杩�
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜(棣栨銆佸贰妫�銆佸畬宸ユ楠�)
             string checkitem = obj["checkitem"].ToString(); //璐ㄦ鍒楄〃
             string type = obj["type"].ToString(); //鎿嶄綔绫诲瀷
             var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
-            mes = QualityManagementBLL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status,checktype,sampmethod,sampscare,suitobject,suitpart,descr,checkitem,type,username);
+            mes = QualityManagementBLL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status,checktype,sampmethod,sampscare,suitobject,suitpart,descr, stepcode, checkitem,type,username);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/Controllers/ReportManagerController.cs b/VueWebApi/Controllers/ReportManagerController.cs
index 5a3ed9d..60100a0 100644
--- a/VueWebApi/Controllers/ReportManagerController.cs
+++ b/VueWebApi/Controllers/ReportManagerController.cs
@@ -590,5 +590,70 @@
             return TJson.toJson(mes);
         }
         #endregion
+
+
+        #region[鐢熶骇杩涘害鎶ヨ〃]
+        /// <summary>
+        /// 鐢熶骇杩涘害鎶ヨ〃
+        /// </summary>
+        /// <param name="status">宸ュ崟鐘舵��</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+        /// <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="lm_date">鍗曟嵁鏃ユ湡</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "ProductionScheduleReportSearch")]
+        [HttpGet]
+        public HttpResponseMessage ProductionScheduleReportSearch(int page, int rows, string prop, string order,string status=null, string wocode = null, string routecode = null, string routename = null, string partcode = null, string partname = null, string partspec = null,string lm_date=null)
+        {
+            string opendate = "";     //寮�濮嬫椂闂�
+            string closedate = "";    //缁撴潫鏃堕棿
+            if (lm_date != "" && lm_date != null)
+            {
+                opendate = lm_date.Split('~')[0].ToString();
+                closedate = lm_date.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ReportManagerBLL.ProductionScheduleReportSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate, startNum, endNum, prop, order);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[鐢熶骇杩涘害鎶ヨ〃瀵煎嚭]
+        /// <summary>
+        /// 鐢熶骇杩涘害鎶ヨ〃瀵煎嚭
+        /// </summary>
+        /// <param name="status">宸ュ崟鐘舵��</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+        /// <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="lm_date">鍗曟嵁鏃ユ湡</param>
+        /// <returns></returns>
+        [Route(template: "ProductionScheduleReportExcelSearch")]
+        [HttpGet]
+        public HttpResponseMessage ProductionScheduleReportExcelSearch(string status = null, string wocode = null, string routecode = null, string routename = null, string partcode = null, string partname = null, string partspec = null, string lm_date = null)
+        {
+            string opendate = "";     //寮�濮嬫椂闂�
+            string closedate = "";    //缁撴潫鏃堕棿
+            if (lm_date != "" && lm_date != null)
+            {
+                opendate = lm_date.Split('~')[0].ToString();
+                closedate = lm_date.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.ProductionScheduleReportExcelSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebApi/DLL/BLL/AppAnalyticsBLL.cs b/VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
index aa6466d..fcd7424 100644
--- a/VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
+++ b/VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
@@ -15,5 +15,12 @@
             return AppAnalyticsDAL.ProductionKanban(usercode, startopendate, endclosedate, defecttype);
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
+        {
+            return AppAnalyticsDAL.ProductionScheduleKanban(ordertype, partcode, startopendate, endclosedate);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/BLL/BaseDateBLL.cs b/VueWebApi/DLL/BLL/BaseDateBLL.cs
index f516156..c637258 100644
--- a/VueWebApi/DLL/BLL/BaseDateBLL.cs
+++ b/VueWebApi/DLL/BLL/BaseDateBLL.cs
@@ -57,5 +57,12 @@
             return BaseDateDAL.QualityScheme();
         }
         #endregion
+
+        #region[瀛樿揣鏌ヨ]
+        public static ToMessage InventorySelect(string param)
+        {
+            return BaseDateDAL.InventorySelect(param);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index 0e9ee35..3904656 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -246,35 +246,30 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
-        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode)
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode,string checktype)
         {
-            return ProductionManagementDAL.MesOrderStepCheckSearch(orderstepqrcode);
+            return ProductionManagementDAL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁]
-        public static ToMessage MesOrderStepCheckSelect()
-        {
-            return ProductionManagementDAL.MesOrderStepCheckSelect();
-        }
-        #endregion
-
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛╙
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
         public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
         {
             return ProductionManagementDAL.MesOrderStepCheckItemList(checkstandcode);
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛榏
-        public static ToMessage SaveMesOrderStepCheckItem(string mesordercode, string partcode, string stepcode, string checkstanedcode, string checkusercode, string checktypecode, string checkresult, string checkdescr,string checkqty, string username, List<StepCheck> json)
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
         {
-            return ProductionManagementDAL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username, json);
+            return ProductionManagementDAL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
         }
         #endregion
 
 
+
         #region[MES宸ュ崟鎵归噺鍏抽棴鏌ヨ]
         public static ToMessage MesOrderBitchClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
         {
diff --git a/VueWebApi/DLL/BLL/QualityManagementBLL.cs b/VueWebApi/DLL/BLL/QualityManagementBLL.cs
index 090ecfe..f3f755b 100644
--- a/VueWebApi/DLL/BLL/QualityManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/QualityManagementBLL.cs
@@ -131,9 +131,9 @@
         #endregion
 
         #region[璐ㄦ鏂规鏂板/缂栬緫鎻愪氦]
-        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string checkitem, string type, string username)
+        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr,string stepcode, string checkitem, string type, string username)
         {
-            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, checkitem, type, username);
+            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, stepcode, checkitem, type, username);
         }
         #endregion
 
diff --git a/VueWebApi/DLL/BLL/ReportManagerBLL.cs b/VueWebApi/DLL/BLL/ReportManagerBLL.cs
index fba8e85..e0a06ac 100644
--- a/VueWebApi/DLL/BLL/ReportManagerBLL.cs
+++ b/VueWebApi/DLL/BLL/ReportManagerBLL.cs
@@ -142,5 +142,20 @@
             return ReportManagerDAL.LogisticsCheckSubSearch(checkid);
         }
         #endregion
+
+
+        #region[鐢熶骇杩涘害鎶ヨ〃]
+        public static ToMessage ProductionScheduleReportSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.ProductionScheduleReportSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[鐢熶骇杩涘害鎶ヨ〃瀵煎嚭]
+        public static ToMessage ProductionScheduleReportExcelSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate)
+        {
+            return ReportManagerDAL.ProductionScheduleReportExcelSearch(status,wocode, routecode, routename, partcode, partname, partspec,opendate, closedate);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
index 9dc1b4c..e96f522 100644
--- a/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -5,6 +5,7 @@
 using System.Data.SqlClient;
 using System.Linq;
 using System.Web;
+using VueWebApi.Models;
 using VueWebApi.Tools;
 
 namespace VueWebApi.DLL.DAL
@@ -100,5 +101,243 @@
             return mes;
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
+        {
+            Dictionary<object, object> dList = new Dictionary<object, object>();
+            List<AppScheduleKanban> list = new List<AppScheduleKanban>();
+            var dynamicParams = new DynamicParameters();
+            string search = "",sql="";
+            DataTable dt;
+            try
+            {
+                //鏍规嵁鏌ヨ鏉′欢,鏌ユ壘绗﹀悎瑕佹眰鐨勫崟鎹�
+                switch (ordertype)
+                {
+                    case "SO": //鎸夐攢鍞鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.saleOrderDate,21)>=@startopendate and convert(varchar(100),A.saleOrderDate,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        sql = @"select distinct saleOrderCode,A.saleOrderDate,sum(A.saleOrderqty) as saleOrderqty
+                                from TKimp_Ewo A 
+                                where A.saleOrderCode<>'' " + search+ " group by A.saleOrderCode,A.saleOrderDate  order by A.saleOrderDate desc";
+                        dt = DapperHelper.selectlist(sql, dynamicParams);
+                        if (dt.Rows.Count > 0)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["saleOrderCode"].ToString();
+                                cmp.orderqty = dt.Rows[i]["saleOrderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select AA.wo,AA.partcode,AA.partname,AA.partspec,AA.saleOrderqty,isnull(BB.good_qty,0) as good_qty  from(
+                                        select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.saleOrderqty) as saleOrderqty   
+                                        from TKimp_Ewo E 
+                                        left  join TMateriel_Info T on E.materiel_code=T.partcode 
+                                        where E.saleOrderCode=@saleOrderCode
+                                        group by E.wo,T.partcode,T.partname,T.partspec
+                                        ) as AA
+                                        left join
+                                        (
+                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
+                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                          where  S.isend='Y' and S.good_qty>0
+                                          group by M.m_po
+                                        ) as BB  on AA.wo=BB.m_po";
+                                dynamicParams.Add("@saleOrderCode", dt.Rows[i]["saleOrderCode"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //鎶ュ伐鎬绘暟閲�
+                                cmp.ordergoodqty = good_qty.ToString();
+                                for (int j = 0; j < data.Rows.Count; j++) 
+                                {
+                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                    cbp.code= data.Rows[j]["partcode"].ToString();
+                                    cbp.name = data.Rows[j]["partname"].ToString();
+                                    cbp.spec = data.Rows[j]["partspec"].ToString();
+                                    cbp.planqty= data.Rows[j]["saleOrderqty"].ToString();
+                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                    cmp.children.Add(cbp);
+                                }
+                                list.Add(cmp);
+                            }
+                            mes.code = "200";
+                            mes.Message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    case "MO": //鎸夌敓浜ц鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.createdate,21)>=@startopendate and convert(varchar(100),A.createdate,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        sql = @"select distinct A.wo,A.createdate,sum(A.qty) as orderqty
+                                from TKimp_Ewo A  
+                                where 1=1  "+search+" group by A.wo,A.createdate  order by A.createdate desc";
+                        dt = DapperHelper.selectlist(sql, dynamicParams);
+                        if (dt.Rows.Count > 0)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["wo"].ToString();
+                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.qty) as orderqty,isnull(BB.good_qty,0) as good_qty   
+                                        from TKimp_Ewo E 
+                                        left  join TMateriel_Info T on E.materiel_code=T.partcode 
+                                        left  join (
+                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
+                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                          where  S.isend='Y' and S.good_qty>0
+                                          group by M.m_po
+                                        ) as BB  on E.wo=BB.m_po
+                                        where E.wo=@wo
+                                        group by E.wo,T.partcode,T.partname,T.partspec,BB.good_qty";
+                                dynamicParams.Add("@wo", dt.Rows[i]["wo"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //鎶ュ伐鎬绘暟閲�
+                                cmp.ordergoodqty = good_qty.ToString();
+                                for (int j = 0; j < data.Rows.Count; j++)
+                                {
+                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                    cbp.code = data.Rows[j]["partcode"].ToString();
+                                    cbp.name = data.Rows[j]["partname"].ToString();
+                                    cbp.spec = data.Rows[j]["partspec"].ToString();
+                                    cbp.planqty = data.Rows[j]["orderqty"].ToString();
+                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                    cmp.children.Add(cbp);
+                                }
+                                list.Add(cmp);
+                            }
+                            mes.code = "200";
+                            mes.Message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    case "PO": //鎸夌敓浜у伐鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.lm_date,21)>=@startopendate and convert(varchar(100),A.lm_date,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        sql = @"select distinct A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date,sum(A.plan_qty) as orderqty
+                                from TK_Wrk_Man A  
+                                left  join TMateriel_Info T on A.materiel_code=T.partcode
+                                where 1=1 "+search+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
+                        dt = DapperHelper.selectlist(sql, dynamicParams);
+                        if (dt.Rows.Count > 0)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["wo_code"].ToString();
+                                cmp.partcode= dt.Rows[i]["partcode"].ToString();
+                                cmp.partname = dt.Rows[i]["partname"].ToString();
+                                cmp.partspec = dt.Rows[i]["partspec"].ToString();
+                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select M.wo_code,T.stepcode,T.stepname,S.plan_qty,S.good_qty,S.isend    
+                                        from TK_Wrk_Man M
+                                        inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                        left  join TStep T on S.step_code=T.stepcode
+                                        where  M.wo_code=@wo_code
+                                        order by S.seq ";
+                                dynamicParams.Add("@wo_code", dt.Rows[i]["wo_code"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                if (data.Rows.Count > 0)
+                                {
+                                    cmp.ordergoodqty = data.AsEnumerable().Where(t => t.Field<string>("isend") == "Y").ToList().Select(c => c.Field<decimal>("good_qty")).First().ToString();
+                                    for (int j = 0; j < data.Rows.Count; j++)
+                                    {
+                                        AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                        cbp.code = data.Rows[j]["stepcode"].ToString();
+                                        cbp.name = data.Rows[j]["stepname"].ToString();
+                                        cbp.spec = data.Rows[j]["isend"].ToString();
+                                        cbp.planqty = data.Rows[j]["plan_qty"].ToString();
+                                        cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                        cmp.children.Add(cbp);
+                                    }
+                                    list.Add(cmp);
+                                }
+                                else 
+                                {
+                                    cmp.ordergoodqty = "0";
+                                    list.Add(cmp);
+                                }
+                            }
+                            mes.code = "200";
+                            mes.Message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/BaseDateDAL.cs b/VueWebApi/DLL/DAL/BaseDateDAL.cs
index f49b050..ec8602b 100644
--- a/VueWebApi/DLL/DAL/BaseDateDAL.cs
+++ b/VueWebApi/DLL/DAL/BaseDateDAL.cs
@@ -197,5 +197,30 @@
             return mes;
         }
         #endregion
+
+        #region[瀛樿揣鏌ヨ]
+        public static ToMessage InventorySelect(string param)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select * from TMateriel_Info where concat(partcode, partname,partspec) like concat('%',@param,'%');";
+                dynamicParams.Add("@param", param);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index e2d658c..724f0d6 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -1433,6 +1433,7 @@
                 sql = @"select stepcode,stepname from TStep where is_delete<>'1' and enable='Y'";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
+                mes.count = data.Rows.Count;
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
             }
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 5f7430f..0dce7a5 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -608,7 +608,7 @@
                     {
                         mes.code = "300";
                         mes.count = 0;
-                        mes.Message = "褰撳墠宸ヨ壓璺嚎瀵瑰簲宸ュ簭銆�"+dtck.Rows[i]["step_code"].ToString()+"銆戯紝鏈叧鑱旇澶囷紝璇峰叧鑱旀墍鏈夊伐搴忓搴旇澶�!";
+                        mes.Message = "褰撳墠宸ヨ壓璺嚎瀵瑰簲宸ュ簭銆�" + dtck.Rows[i]["step_code"].ToString() + "銆戯紝鏈叧鑱旇澶囷紝璇峰叧鑱旀墍鏈夊伐搴忓搴旇澶�!";
                         mes.data = null;
                         return mes;
                     }
@@ -628,8 +628,8 @@
 						where C.step_code=@step_code";
                     dynamicParams.Add("@step_code", dtck1.Rows[i]["step_code"].ToString());
                     var dtck2 = DapperHelper.selectdata(sql, dynamicParams);
-                    int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() =="N").Count();
-                    if (dtck2.Rows.Count == query) 
+                    int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() == "N").Count();
+                    if (dtck2.Rows.Count == query)
                     {
                         mes.code = "300";
                         mes.count = 0;
@@ -2246,6 +2246,8 @@
                 //sql = @"update TK_Wrk_Man set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                 //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, reportqty = reportqty, ngqty = ngqty } });
 
+                //鍐欏叆ERP鍏ュ簱鍗�
+
                 //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
                 //list = AutosCloseOrder.AutosColseOrderReport(list,mesordercode, partcode, stepseq,stepcode,reportqty,ngqty);
                 bool aa = DapperHelper.DoTransaction(list);
@@ -2512,6 +2514,8 @@
                 //sql = @"update TK_Wrk_Man set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                 //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, sqty = sqty, ngqty = ngqty } });
 
+                ////鍐欏叆ERP鍏ュ簱鍗�
+              
                 //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
                 //list = AutosCloseOrder.AutosColseOrderReport(list, mesordercode, partcode, stepseq, stepcode, sqty, ngqty);
 
@@ -2712,13 +2716,16 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
-        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode)
+
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
         {
             var sql = "";
             string ordercode = "";
             string stepcode = "";
             var dynamicParams = new DynamicParameters();
+            Dictionary<string, object> list = new Dictionary<string, object>();
             try
             {
                 if (orderstepqrcode != "" && orderstepqrcode != null)
@@ -2738,7 +2745,7 @@
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
                     //閫氳繃鎵弿浜岀淮鐮佷俊鎭煡鎵句换鍔′俊鎭�
-                    sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname  
+                    sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.stocktype_code,S.stepcode,S.stepname  
                             from TK_Wrk_Step A
                             inner join TK_Wrk_Man P on A.wo_code=P.wo_code
                             left join TMateriel_Info M on P.materiel_code=M.partcode
@@ -2749,11 +2756,44 @@
                     var data = DapperHelper.selectdata(sql, dynamicParams);
                     if (data.Rows.Count > 0)
                     {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.Message = "鏌ヨ鎴愬姛!";
-                        mes.data = data;
-                        return mes;
+                        if (decimal.Parse(data.Rows[0]["good_qty"].ToString()) > 0)
+                        {
+                            //鑾峰彇缁戝畾鐨勮川妫�鏂规銆佹娊鏍锋柟寮忋�佹牱鏈暟
+                            sql = @"select code as checkstandcode,name as checkstandname,sampmethod,sampscare   
+                            from TStepCheckStandard
+                            where (PATINDEX('%,' + RTRIM(@partcode) + ',%',',' + suitpart + ',')>0 or PATINDEX('%,' + RTRIM(@stocktype_code) + ',%',',' + suitpart + ',')>0)
+                            and checktype=@checktype and stepcode=@stepcode ";
+                            dynamicParams.Add("@partcode", data.Rows[0]["partcode"].ToString());//鐗╂枡缂栫爜
+                            dynamicParams.Add("@stepcode", stepcode);//宸ュ簭缂栫爜
+                            dynamicParams.Add("@stocktype_code", data.Rows[0]["stocktype_code"].ToString());//瀛樿揣绫诲瀷缂栫爜
+                            dynamicParams.Add("@checktype", checktype);//妫�楠岀被鍨�
+                            var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                            if (data1.Rows.Count > 0)
+                            {
+                                list.Add("labcont", data);
+                                list.Add("chekstand", data1);
+                                mes.code = "200";
+                                mes.count = 0;
+                                mes.Message = "鏌ヨ鎴愬姛!";
+                                mes.data = list;
+                            }
+                            else
+                            {
+                                mes.code = "300";
+                                mes.count = 0;
+                                mes.Message = "褰撳墠浜у搧銆�" + data.Rows[0]["partname"].ToString() + "銆�,瀵瑰簲宸ュ簭銆�" + data.Rows[0]["stepname"].ToString() + "銆戯紝鏈寚瀹氳川妫�鏂规!";
+                                mes.data = null;
+                                return mes;
+                            }
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "褰撳墠宸ュ簭浠诲姟鏃犳姤宸ヤ骇鍑�!";
+                            mes.data = null;
+                            return mes;
+                        }
                     }
                     else
                     {
@@ -2784,47 +2824,36 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁]
-        public static ToMessage MesOrderStepCheckSelect()
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                //鑾峰彇宸ュ簭妫�楠屾爣鍑�
-                sql = @"select code,name  from TStepCheckStandard where is_delete<>'1'";
-                var data = DapperHelper.selecttable(sql);
-                mes.code = "200";
-                mes.Message = "鏌ヨ鎴愬姛!";
-                mes.data = data;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.Message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛╙
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
         public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
             try
             {
-                //鏍规嵁妫�楠屾爣鍑嗙紪鐮佽幏鍙栧伐搴忔楠岄」鐩�
-                sql = @"select B.code,B.name,A.stepcheckitem_desc,A.stepcheckitem_seq   from TStepCheckStandardSub A
+                //璐ㄦ鏂规缂栫爜鑾峰彇妫�楠岄」
+                sql = @"select A.stepcheckitem_seq, B.code,B.name,A.required,A.numberjudge,A.unit,A.decimalnum,
+                        A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc   
+                        from TStepCheckStandardSub A
                         left join TStepCheckItem B on A.stepcheckitem_code=B.code
-                        where B.is_delete<>'1' and A.stepstaned_code=@checkstandcode";
-                dynamicParams.Add("@checkstandcode", checkstandcode);
+                        where A.stepstaned_code=@checkstandcode
+                        order by A.stepcheckitem_seq";
+                dynamicParams.Add("@checkstandcode", checkstandcode);//璐ㄦ鏂规缂栫爜
                 var data = DapperHelper.selectdata(sql, dynamicParams);
-                mes.code = "200";
-                mes.Message = "鏌ヨ鎴愬姛!";
-                mes.data = data;
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鏌ヨ鎴愬姛!";
+                    mes.data = data;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠璐ㄦ鏂规鏃犳楠岄」!";
+                    mes.data = null;
+                }
             }
             catch (Exception e)
             {
@@ -2837,21 +2866,24 @@
         }
         #endregion
 
-        #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛榏
-        public static ToMessage SaveMesOrderStepCheckItem(string mesordercode, string partcode, string stepcode, string checkstanedcode, string checkusercode, string checktypecode, string checkresult, string checkdescr, string checkqty, string username, List<StepCheck> json)
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
         {
             var sql = "";
-            string[] arra = new string[] { };
-            string[] arra1 = new string[] { };
-            List<object> list = new List<object>();
             string checktypename = "";
+            List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
             try
             {
-                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
-
+                string datetime = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                //鑾峰彇妫�楠岄」鐩俊鎭�
+                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitemcont);
                 list.Clear();
-                switch (checktypecode)
+
+                //鍐欏叆妫�楠岃褰曚富琛�
+                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date) 
+                                values(@wo_code,@partcode,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
+                switch (check_type)
                 {
                     case "FirstCheck":
                         checktypename = "棣栨";
@@ -2865,20 +2897,51 @@
                     default:
                         break;
                 }
-                //鍐欏叆宸ュ簭妫�楠岃褰曚富琛�
-                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,check_result,check_descr,check_qty,lm_user,lm_date) 
-                                values(@mesordercode,@partcode,@stepcode,@checkstanedcode,@checkusercode,@checktypecode,@checktypename,@checkresult,@checkdescr,@check_qty,@lm_user,@lm_date)";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, partcode = partcode, stepcode = stepcode, checkstanedcode = checkstanedcode, checkusercode = checkusercode, checktypecode = checktypecode, checktypename = checktypename, checkresult = checkresult, checkdescr = checkdescr, check_qty = checkqty, lm_user = username, lm_date = date } });
-                //鍐欏叆宸ュ簭妫�楠岃褰曞瓙琛�
-                //鑾峰彇涓昏〃鏈�澶D
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        wo_code = wocode,
+                        partcode = partcode,
+                        step_code=stepcode,
+                        checkstaned_code = checkstandcode,
+                        check_user = username,
+                        check_type = check_type,
+                        check_typename = checktypename,
+                        sampmethod = sampmethod,
+                        check_result = qualitystatus,
+                        check_qty = decimal.Parse(sampleqty),
+                        good_qty = decimal.Parse(goodqty),
+                        ng_qty = decimal.Parse(ngqty),
+                        lm_user = username,
+                        lm_date = datetime
+                    }
+                });
                 sql = @"select ISNULL(IDENT_CURRENT('TStepCheckRecord')+1,1) as id";
                 var dt = DapperHelper.selecttable(sql);
-                for (int i = 0; i < json.Count; i++)
+                //鍐欏叆妫�楠岃褰曞瓙琛�
+                for (int j = 0; j < arra.Count; j++)
                 {
-                    sql = @"insert into  TStepCheckRecordSub(m_id,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_result,lm_user,lm_date) 
-                                values(@m_id,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_result,@lm_user,@lm_date)";
-                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), checkiem_seq = int.Parse(json[i].seq), checkitem_code = json[i].code, checkitem_name = json[i].name, checkitem_descr = json[i].descr, check_result = json[i].checkresult, lm_user = username, lm_date = date } });
-
+                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date) 
+                                values(@m_id,@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
+                            checknum = arra[j]["checknum"].ToString(),
+                            checkiem_seq = arra[j]["checkiem_seq"].ToString(),
+                            checkitem_code = arra[j]["checkitem_code"].ToString(),
+                            checkitem_name = arra[j]["checkitem_name"].ToString(),
+                            checkitem_descr = arra[j]["checkitem_descr"].ToString(),
+                            check_value = arra[j]["check_value"].ToString(),
+                            check_result = arra[j]["check_result"].ToString(),
+                            lm_user = username,
+                            lm_date = datetime
+                        }
+                    });
                 }
 
                 bool aa = DapperHelper.DoTransaction(list);
@@ -2886,14 +2949,14 @@
                 {
                     mes.code = "200";
                     mes.count = 0;
-                    mes.Message = "妫�楠屾垚鍔�!";
+                    mes.Message = "鎿嶄綔鎴愬姛!";
                     mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "妫�楠屽け璐�!";
+                    mes.Message = "鎿嶄綔澶辫触!";
                     mes.data = null;
                 }
             }
@@ -2909,6 +2972,8 @@
         #endregion
 
 
+
+
         #region[MES宸ュ崟鎵归噺鍏抽棴鏌ヨ]
         public static ToMessage MesOrderBitchClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
         {
diff --git a/VueWebApi/DLL/DAL/QualityManagementDAL.cs b/VueWebApi/DLL/DAL/QualityManagementDAL.cs
index 788f8bc..83fd5d0 100644
--- a/VueWebApi/DLL/DAL/QualityManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/QualityManagementDAL.cs
@@ -905,7 +905,7 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select *  from(
-                            select A.code,A.name,A.status,A.checktype,A.sampmethod,A.sampscare,A.suitobject,A.descr,A.suitpart,A.lm_date,U.username,
+                            select A.code,A.name,A.status,A.checktype,A.sampmethod,A.sampscare,A.suitobject,A.stepcode,S.stepname,A.descr,A.suitpart,A.lm_date,U.username,
                             case when A.suitobject='P' then
                             STUFF(( SELECT ';' + partname
                             FROM TMateriel_Info
@@ -919,7 +919,8 @@
                             FOR XML PATH('')), 1, 1,'')
                             end as suitpartname
                             from TStepCheckStandard A
-							left join TUser U on  A.lm_user=U.usercode
+                            left join TUser U on  A.lm_user=U.usercode
+                            left join TStep S on A.stepcode=S.stepcode
                             ) as AA 
                             where " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
@@ -970,7 +971,7 @@
         #endregion
 
         #region[璐ㄦ鏂规鏂板/缂栬緫鎻愪氦]
-        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string checkitem, string type, string username)
+        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr,string stepcode, string checkitem, string type, string username)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -985,8 +986,8 @@
                 {
                     case "Add": //鏂板
                         //鍐欏叆璐ㄦ鏂规涓昏〃
-                        sql = @"insert into  TStepCheckStandard(code,name,status,checktype,sampmethod,sampscare,suitobject,suitpart,descr,lm_user,lm_date) 
-                                values(@code,@name,@status,@checktype,@sampmethod,@sampscare,@suitobject,@suitpart,@descr,@lm_user,@lm_date)";
+                        sql = @"insert into  TStepCheckStandard(code,name,status,checktype,sampmethod,sampscare,suitobject,suitpart,stepcode,descr,lm_user,lm_date) 
+                                values(@code,@name,@status,@checktype,@sampmethod,@sampscare,@suitobject,@suitpart,@stepcode,@descr,@lm_user,@lm_date)";
                         list.Add(new
                         {
                             str = sql,
@@ -1000,6 +1001,7 @@
                                 sampscare = sampscare,
                                 suitobject = suitobject,
                                 suitpart = suitpart,
+                                stepcode= stepcode,
                                 descr = descr,
                                 lm_user = username,
                                 lm_date = date
@@ -1051,7 +1053,7 @@
                         list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
                         //淇敼璐ㄦ鏂规涓昏〃
                         sql = @"update TStepCheckStandard set name=@name,status=@status,checktype=@checktype,sampmethod=@sampmethod,sampscare=@sampscare,
-                                suitobject=@suitobject,suitpart=@suitpart,descr=@descr
+                                suitobject=@suitobject,suitpart=@suitpart,stepcode=@stepcode,descr=@descr
                                 where code=@code";
                         list.Add(new
                         {
@@ -1066,6 +1068,7 @@
                                 sampscare = sampscare,
                                 suitobject = suitobject,
                                 suitpart = suitpart,
+                                stepcode = stepcode,
                                 descr = descr,
                             }
                         });
diff --git a/VueWebApi/DLL/DAL/ReportManagerDAL.cs b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
index 64a99cf..3903915 100644
--- a/VueWebApi/DLL/DAL/ReportManagerDAL.cs
+++ b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -1478,5 +1478,205 @@
             return mes;
         }
         #endregion
+
+
+        #region[鐢熶骇杩涘害鎶ヨ〃]
+        public static ToMessage ProductionScheduleReportSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (status != "" && status != null) 
+                {
+                    switch (status)
+                    {
+                        case "START":
+                            search += "and AA.status='START' ";
+                            break;
+                        case "CLOSED":
+                            search += "and AA.status='CLOSED' ";
+                            break;
+                        default:
+                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
+                            break;
+                    }
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (routecode != "" && routecode != null)
+                {
+                    search += "and AA.route_code like '%'+@routecode+'%' ";
+                    dynamicParams.Add("@routecode", routecode);
+                }
+                if (routename != "" && routename != null)
+                {
+                    search += "and AA.route_name like '%'+@routename+'%' ";
+                    dynamicParams.Add("@routename", routename);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (opendate != "" && opendate != null)
+                {
+                    search += "and AA.lm_date between @opendate and @closedate ";
+                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
+                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select  AA.saleOrderCode,AA.m_po,AA.wo_code,
+                            (case when AA.status='START' then '鎵ц涓�' when AA.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end) as status,
+                            AA.lm_date,AA.route_code,AA.route_name,AA.partcode,AA.partname,AA.partspec,AA.plan_qty,left(AA.concat_name,len(concat_name)-1) as concat_name  from
+                            (
+                            select E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
+                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
+                             inner join TStep S on n.step_code=S.stepcode
+                             where n.wo_code=m.wo_code for xml path('')) as concat_name
+                            from TK_Wrk_Step m
+                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
+                            left join TKimp_Ewo E on W.m_po=E.wo
+                            inner join TMateriel_Info P on W.materiel_code=p.partcode
+                            inner join TFlw_Rout R on W.route_code=R.code
+                            group by E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
+                            ) AA  
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鐢熶骇杩涘害鎶ヨ〃瀵煎嚭]
+        public static ToMessage ProductionScheduleReportExcelSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (status != "" && status != null)
+                {
+                    switch (status)
+                    {
+                        case "START":
+                            search += "and AA.status='START' ";
+                            break;
+                        case "CLOSED":
+                            search += "and AA.status='CLOSED' ";
+                            break;
+                        default:
+                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
+                            break;
+                    }
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (routecode != "" && routecode != null)
+                {
+                    search += "and AA.route_code like '%'+@routecode+'%' ";
+                    dynamicParams.Add("@routecode", routecode);
+                }
+                if (routename != "" && routename != null)
+                {
+                    search += "and AA.route_name like '%'+@routename+'%' ";
+                    dynamicParams.Add("@routename", routename);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (opendate != "" && opendate != null)
+                {
+                    search += "and AA.lm_date between @opendate and @closedate ";
+                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
+                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select  AA.saleOrderCode as ERP婧愬崟鍙�,AA.m_po as ERP鐢熶骇璁㈠崟,AA.wo_code as 鐢熶骇宸ュ崟鍙�,
+                            (case when AA.status='START' then '鎵ц涓�' when AA.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end) as 宸ュ崟鐘舵��,
+                            AA.lm_date as 鍗曟嵁鏃ユ湡,AA.route_code as 宸ヨ壓璺嚎缂栧彿,AA.route_name as 宸ヨ壓璺嚎鍚嶇О,
+                            AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.plan_qty as 浠诲姟鏁伴噺,left(AA.concat_name,len(concat_name)-1) as 鐢熶骇杩涘害  from
+                            (
+                            select E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
+                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
+                             inner join TStep S on n.step_code=S.stepcode
+                             where n.wo_code=m.wo_code for xml path('')) as concat_name
+                            from TK_Wrk_Step m
+                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
+                            left join TKimp_Ewo E on W.m_po=E.wo
+                            inner join TMateriel_Info P on W.materiel_code=p.partcode
+                            inner join TFlw_Rout R on W.route_code=R.code
+                            group by E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
+                            ) AA  
+                            where " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "鐢熶骇杩涘害鎶ヨ〃");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Image/app_8_1.png b/VueWebApi/Image/app_8_1.png
new file mode 100644
index 0000000..b0e1b4c
--- /dev/null
+++ b/VueWebApi/Image/app_8_1.png
Binary files differ
diff --git a/VueWebApi/Image/app_9_2.png b/VueWebApi/Image/app_9_2.png
new file mode 100644
index 0000000..78a8592
--- /dev/null
+++ b/VueWebApi/Image/app_9_2.png
Binary files differ
diff --git a/VueWebApi/Image/app_9_3.png b/VueWebApi/Image/app_9_3.png
new file mode 100644
index 0000000..f2ec5ae
--- /dev/null
+++ b/VueWebApi/Image/app_9_3.png
Binary files differ
diff --git a/VueWebApi/Image/app_9_4.png b/VueWebApi/Image/app_9_4.png
new file mode 100644
index 0000000..c1cd4d5
--- /dev/null
+++ b/VueWebApi/Image/app_9_4.png
Binary files differ
diff --git a/VueWebApi/Image/app_9_5.png b/VueWebApi/Image/app_9_5.png
new file mode 100644
index 0000000..fb631b6
--- /dev/null
+++ b/VueWebApi/Image/app_9_5.png
Binary files differ
diff --git a/VueWebApi/Log4net/ActionConverter.cs b/VueWebApi/Log4net/ActionConverter.cs
index 9c64d2f..1aecf09 100644
--- a/VueWebApi/Log4net/ActionConverter.cs
+++ b/VueWebApi/Log4net/ActionConverter.cs
@@ -21,14 +21,20 @@
             {
                 switch (this.Option.ToLower())
                 {
-                    case "userid":
-                        writer.Write(actionInfo.ActionClick);
+                    case "op_type":
+                        writer.Write(actionInfo.op_type);
                         break;
-                    case "unitcode":
-                        writer.Write(actionInfo.UserCode);
+                    case "op_content":
+                        writer.Write(actionInfo.op_content);
                         break;
-                    case "menuid":
-                        writer.Write(actionInfo.UserIP);
+                    case "actionclick":
+                        writer.Write(actionInfo.actionclick);
+                        break;
+                    case "ippath":
+                        writer.Write(actionInfo.ippath);
+                        break;
+                    case "lm_user":
+                        writer.Write(actionInfo.lm_user);
                         break;
                     default:
                         writer.Write("");
diff --git a/VueWebApi/Log4net/ActionLoggerInfo.cs b/VueWebApi/Log4net/ActionLoggerInfo.cs
index 07ad70c..c35d26d 100644
--- a/VueWebApi/Log4net/ActionLoggerInfo.cs
+++ b/VueWebApi/Log4net/ActionLoggerInfo.cs
@@ -7,16 +7,20 @@
 {
     public class ActionLoggerInfo
     {
-        public string ActionClick { get; set; }
-        public string UserCode { get; set; }
-        public string UserIP { get; set; }
-        public int Level { get; set; }
-        public ActionLoggerInfo(string ActionClick, string UserCode, string UserIP,int Level)
+        public string op_type { get; set; }
+        public string op_content { get; set; }
+        public string actionclick { get; set; }
+        public string ippath { get; set; }
+        public string lm_user { get; set; }
+        public int level { get; set; }
+        public ActionLoggerInfo(string op_type,string op_content,string actionclick,string ippath,string lm_user, int level)
         {
-            this.ActionClick = ActionClick;
-            this.UserCode = UserCode;
-            this.UserIP = UserIP;
-            this.Level = Level;
+            this.op_type = op_type;
+            this.op_content = op_content;
+            this.actionclick = actionclick;
+            this.ippath = ippath;
+            this.lm_user = lm_user;
+            this.level = level;
         }
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Log4net/LogUtil.cs b/VueWebApi/Log4net/LogUtil.cs
index 90e04ff..7036c36 100644
--- a/VueWebApi/Log4net/LogUtil.cs
+++ b/VueWebApi/Log4net/LogUtil.cs
@@ -59,15 +59,16 @@
         }
 
         /// <summary>
-        /// 鏃ュ織璋冪敤鏂规硶
+        /// 鎿嶄綔璁板綍璋冪敤鏂规硶
         /// </summary>
-        /// <param name="actionclick">鎺ュ彛鏂规硶</param>
-        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
-        /// <param name="userip">鐢ㄦ埛ip</param>
-        /// <param name="level">鏃ュ織绛夌骇</param>
-        public static void SaveMessage(string actionclick, string usercode, string userip,int level)
+        /// <param name="op_type">鎿嶄綔绫诲瀷</param>
+        /// <param name="op_content">鎿嶄綔绫诲</param>
+        /// <param name="actionclick">鎿嶄綔鏂规硶</param>
+        /// <param name="ippath">ip鍦板潃</param>
+        /// <param name="lm_user">鎿嶄綔浜哄憳</param>
+        public static void SaveMessage(string op_type, string op_content, string actionclick,string ippath,string lm_user, int level)
         {
-            _message = new ActionLoggerInfo(actionclick, usercode, userip, level);
+            _message = new ActionLoggerInfo(op_type, op_content, actionclick, ippath, lm_user, level);
             switch (level)
             {
                 case 1: Info(); break;
diff --git a/VueWebApi/Logs/2023-05-10.TXT b/VueWebApi/Logs/2023-05-10.TXT
new file mode 100644
index 0000000..873e2e1
--- /dev/null
+++ b/VueWebApi/Logs/2023-05-10.TXT
@@ -0,0 +1,56 @@
+ 【时间】:2023-05-10 08:08:10,058
+ 【级别】:INFO
+ 【类名】:OperateLogger
+ 【线程ID】: 6 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第50行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 08:12:14,946
+ 【级别】:INFO
+ 【类名】:OperateLogger
+ 【线程ID】: 8 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第50行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 08:23:43,441
+ 【级别】:INFO
+ 【类名】:OperateLogger
+ 【线程ID】: 7 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第50行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 08:28:58,148
+ 【级别】:WARN
+ 【类名】:OperateLogger
+ 【线程ID】: 7 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第57行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 08:33:30,681
+ 【级别】:WARN
+ 【类名】:OperateLogger
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第57行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 08:56:34,910
+ 【级别】:WARN
+ 【类名】:OperateLogger
+ 【线程ID】: 14 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第57行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2023-05-10 09:17:40,903
+ 【级别】:INFO
+ 【类名】:OperateLogger
+ 【线程ID】: 8 
+ 【文件地址】:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs 第50行
+ 【日志内容】:VueWebApi.Log4net.ActionLoggerInfo
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Models/AppScheduleKanban.cs b/VueWebApi/Models/AppScheduleKanban.cs
new file mode 100644
index 0000000..3fc9f27
--- /dev/null
+++ b/VueWebApi/Models/AppScheduleKanban.cs
@@ -0,0 +1,44 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace VueWebApi.Models
+{
+    public class AppScheduleKanban
+    {
+        /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string ordercode { get; set; }
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺
+        /// </summary>
+        public string orderqty { get; set; }
+        /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string ordergoodqty { get; set; }
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        public string partcode { get; set; }
+        /// <summary>
+        /// 浜у搧鍚嶇О
+        /// </summary>
+        public string partname { get; set; }
+        /// <summary>
+        /// 浜у搧瑙勬牸
+        /// </summary>
+        public string partspec { get; set; }
+        public List<AppScheduleKanbanSub> children { get; set; }//瀛愯妭鐐�
+    }
+    public class AppScheduleKanbanSub
+    {
+        public string code { get; set; }  
+        public string name { get; set; }
+        public string spec { get; set; }
+        public string planqty { get; set; }
+        public string goodqty { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index 5996481..10263d9 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\XKDMesApi</_PublishTargetUrl>
-    <History>True|2023-05-09T11:30:19.2882714Z;True|2023-05-08T18:08:56.2476136+08:00;True|2023-05-08T18:07:15.2514972+08:00;True|2023-05-08T18:04:38.8770595+08:00;True|2023-05-08T17:47:24.7720275+08:00;True|2023-05-08T17:34:16.2613338+08:00;True|2023-05-08T17:31:32.9125441+08:00;True|2023-05-08T17:24:27.5765230+08:00;True|2023-05-08T17:18:32.6186281+08:00;True|2023-05-08T16:41:34.1978109+08:00;True|2023-05-08T16:38:10.1042972+08:00;True|2023-05-08T16:35:13.8108245+08:00;True|2023-05-08T16:05:00.4230119+08:00;True|2023-05-08T15:52:54.8659373+08:00;True|2023-05-08T15:27:59.7369215+08:00;True|2023-05-08T13:48:29.4669255+08:00;True|2023-05-06T09:21:10.0166182+08:00;True|2023-05-05T14:14:36.8872753+08:00;True|2023-04-25T09:53:42.9989490+08:00;True|2023-04-25T09:29:47.9359947+08:00;True|2023-04-21T10:10:47.7408362+08:00;True|2023-04-19T10:05:32.2323010+08:00;True|2023-04-19T08:47:02.1943920+08:00;True|2023-04-19T08:36:23.7737952+08:00;True|2023-04-19T08:27:33.3238877+08:00;True|2023-04-13T16:59:39.7958192+08:00;True|2023-04-13T16:34:45.9951848+08:00;True|2023-04-13T16:27:59.7386867+08:00;False|2023-04-13T16:23:36.7558189+08:00;True|2023-04-12T16:31:46.6724339+08:00;True|2023-04-12T16:23:35.3177339+08:00;True|2023-04-11T12:49:48.0246851+08:00;True|2023-04-11T12:46:56.0293166+08:00;True|2023-04-11T11:13:00.9841554+08:00;True|2023-04-10T16:53:41.8964649+08:00;True|2023-04-07T08:30:18.4653189+08:00;True|2023-04-06T17:29:55.4388629+08:00;True|2023-04-06T16:45:39.5573964+08:00;True|2023-04-04T15:41:18.1582540+08:00;True|2023-04-04T15:33:47.4319210+08:00;True|2023-04-04T15:24:23.0417772+08:00;True|2023-04-04T15:05:34.8694589+08:00;True|2023-04-04T13:51:06.6709099+08:00;True|2023-04-04T08:51:53.0379573+08:00;True|2023-04-04T08:26:14.1581736+08:00;True|2023-04-04T08:09:40.3919185+08:00;True|2023-04-04T08:03:47.3773358+08:00;True|2023-03-29T10:59:42.8557249+08:00;True|2023-03-29T10:32:37.1829423+08:00;True|2023-03-24T15:23:09.2950637+08:00;True|2023-03-22T17:52:59.0162624+08:00;True|2023-03-22T17:44:51.7892593+08:00;True|2023-03-22T17:41:41.7366750+08:00;True|2023-03-22T17:30:45.1983751+08:00;True|2023-03-22T17:25:48.0681920+08:00;True|2023-03-22T17:16:16.5578143+08:00;True|2023-03-22T16:36:15.7695476+08:00;True|2023-03-22T10:21:58.5145068+08:00;True|2023-03-20T17:21:47.4459321+08:00;True|2023-03-20T17:21:27.0468975+08:00;True|2023-03-20T16:58:02.8681774+08:00;True|2023-03-20T16:34:42.1058692+08:00;True|2023-03-20T16:23:47.7801897+08:00;True|2023-03-03T08:56:05.4730255+08:00;True|2023-03-02T16:23:31.6756396+08:00;True|2023-03-01T15:52:28.2849007+08:00;True|2023-03-01T15:35:55.8647024+08:00;True|2023-03-01T15:21:23.8133690+08:00;True|2023-02-28T16:00:01.5165754+08:00;True|2023-02-28T14:53:18.0954404+08:00;True|2023-02-28T14:45:14.0183407+08:00;True|2023-02-15T15:10:18.1493103+08:00;True|2023-02-15T14:45:42.3134512+08:00;True|2023-02-15T14:38:34.6207896+08:00;True|2023-02-15T14:28:47.3494779+08:00;True|2023-02-15T14:06:19.8843387+08:00;True|2023-02-15T12:37:06.8372351+08:00;True|2023-02-15T09:18:28.2740085+08:00;True|2023-02-14T16:38:24.2037803+08:00;False|2023-02-14T16:35:10.9291528+08:00;True|2023-02-13T14:56:38.5856100+08:00;True|2023-02-13T12:50:51.9358444+08:00;True|2023-02-11T10:08:39.6831781+08:00;True|2023-02-11T09:54:32.8160454+08:00;True|2023-02-11T09:54:21.9971913+08:00;True|2023-02-11T02:11:17.5904204+08:00;True|2023-02-11T02:04:19.4213456+08:00;True|2023-02-10T13:03:57.4443981+08:00;True|2023-02-09T21:55:13.8322950+08:00;True|2023-02-09T21:34:49.3120350+08:00;True|2023-02-07T10:08:39.5582710+08:00;True|2023-02-03T08:25:45.7718782+08:00;True|2023-01-30T12:40:37.6820386+08:00;True|2023-01-30T08:45:34.0836363+08:00;True|2023-01-11T10:13:36.4366183+08:00;True|2023-01-11T09:37:39.6235517+08:00;True|2023-01-11T09:37:05.7608583+08:00;True|2023-01-11T09:14:36.0337347+08:00;True|2023-01-10T16:29:20.9791940+08:00;True|2023-01-10T16:09:20.2950245+08:00;True|2023-01-10T14:43:30.8069585+08:00;True|2023-01-10T14:43:14.0392269+08:00;True|2023-01-10T13:30:42.7077204+08:00;True|2023-01-10T13:09:48.9547948+08:00;True|2023-01-10T12:18:02.7207328+08:00;True|2023-01-06T16:33:28.2963933+08:00;True|2023-01-06T16:27:31.9342782+08:00;True|2023-01-06T16:23:33.0323708+08:00;True|2023-01-06T14:06:25.7389071+08:00;True|2023-01-06T13:50:39.1399992+08:00;True|2023-01-06T11:55:24.5609585+08:00;True|2023-01-06T11:08:53.3862603+08:00;True|2023-01-06T10:35:25.4696330+08:00;True|2023-01-06T10:27:54.7687528+08:00;True|2023-01-06T09:34:11.0798818+08:00;True|2023-01-05T16:47:28.7063631+08:00;True|2023-01-04T15:09:12.6813075+08:00;True|2023-01-04T15:06:20.1259155+08:00;True|2022-12-27T15:22:00.8719157+08:00;True|2022-12-27T15:18:56.4183337+08:00;True|2022-12-27T11:13:35.0250651+08:00;True|2022-12-26T14:12:52.3868526+08:00;True|2022-12-26T10:35:25.9712626+08:00;True|2022-12-20T09:02:47.7097031+08:00;True|2022-12-19T14:40:38.5851369+08:00;True|2022-12-14T12:51:44.0399559+08:00;True|2022-12-14T10:59:36.5250039+08:00;True|2022-12-14T10:54:23.0704819+08:00;True|2022-12-14T10:54:11.5744699+08:00;True|2022-12-14T10:53:33.7127244+08:00;True|2022-12-14T10:47:34.9597966+08:00;True|2022-12-08T15:06:12.8416810+08:00;True|2022-12-07T16:44:49.7931793+08:00;True|2022-11-26T11:05:21.2315179+08:00;True|2022-11-26T10:56:49.3021067+08:00;True|2022-11-25T13:00:54.9138172+08:00;True|2022-11-25T12:43:01.0212012+08:00;True|2022-11-25T12:36:22.2745198+08:00;True|2022-11-25T12:33:27.1942331+08:00;True|2022-11-25T11:07:23.5860394+08:00;True|2022-11-25T10:36:26.1052993+08:00;True|2022-11-24T16:50:49.0061385+08:00;True|2022-11-24T16:47:23.6152654+08:00;True|2022-11-24T15:36:20.0275278+08:00;True|2022-11-24T15:25:29.2391337+08:00;True|2022-11-24T15:25:19.7988304+08:00;True|2022-11-24T15:06:48.3860466+08:00;True|2022-11-24T14:52:24.7879819+08:00;True|2022-11-24T10:12:41.0992839+08:00;True|2022-11-21T15:13:29.3527873+08:00;True|2022-11-21T10:42:28.8298039+08:00;True|2022-11-18T11:10:34.9917493+08:00;True|2022-11-18T11:10:11.7210670+08:00;True|2022-11-18T10:59:20.7515137+08:00;True|2022-11-18T10:52:33.2724652+08:00;True|2022-11-18T09:22:10.0215858+08:00;True|2022-11-18T09:16:35.0644453+08:00;True|2022-11-16T10:30:33.9013342+08:00;True|2022-11-16T09:55:08.7555656+08:00;True|2022-10-29T11:48:17.9164445+08:00;True|2022-10-29T10:27:39.6224331+08:00;True|2022-10-29T09:25:19.4865788+08:00;True|2022-10-29T09:01:58.2237798+08:00;True|2022-10-29T08:57:17.1749942+08:00;True|2022-10-28T14:44:10.4595607+08:00;True|2022-10-28T14:41:10.8050513+08:00;True|2022-10-28T14:39:02.0096359+08:00;True|2022-10-28T14:27:52.1679095+08:00;True|2022-10-28T14:19:07.6073425+08:00;True|2022-10-28T14:16:46.4140421+08:00;True|2022-10-28T14:06:54.5820895+08:00;True|2022-10-28T14:06:20.4765666+08:00;True|2022-10-28T14:00:01.8073205+08:00;True|2022-10-28T13:56:40.6320465+08:00;True|2022-10-28T12:52:46.3086338+08:00;True|2022-10-28T11:31:08.7626713+08:00;True|2022-10-28T11:28:25.3391022+08:00;True|2022-10-27T17:13:49.3276407+08:00;True|2022-10-27T17:09:49.3362372+08:00;True|2022-10-27T14:49:20.9922482+08:00;True|2022-10-27T11:08:32.7803317+08:00;True|2022-10-27T09:19:17.9537933+08:00;True|2022-10-27T09:14:00.6751533+08:00;True|2022-10-27T09:08:05.5814368+08:00;True|2022-10-27T09:04:21.1435873+08:00;True|2022-10-26T16:47:26.8255243+08:00;True|2022-10-26T16:29:26.3405800+08:00;False|2022-10-26T16:28:18.6237074+08:00;True|2022-10-26T14:29:39.8852546+08:00;True|2022-10-26T14:11:14.0537705+08:00;True|2022-10-26T10:56:16.7897290+08:00;True|2022-10-26T10:29:02.5303566+08:00;True|2022-10-26T10:28:29.9192643+08:00;True|2022-10-26T10:28:16.5901050+08:00;True|2022-10-26T10:22:02.2019236+08:00;True|2022-10-26T10:17:08.3009992+08:00;True|2022-10-20T18:19:28.0452517+08:00;True|2022-10-20T18:14:36.1031080+08:00;True|2022-10-20T16:49:08.1312509+08:00;True|2022-10-20T10:11:30.3988252+08:00;True|2022-10-20T09:52:55.2879279+08:00;True|2022-10-20T09:07:20.5119842+08:00;True|2022-10-20T08:55:23.9003542+08:00;True|2022-10-19T17:56:47.0600040+08:00;True|2022-10-19T17:26:22.4420642+08:00;True|2022-10-19T17:15:09.2591171+08:00;True|2022-10-19T17:00:58.0407123+08:00;True|2022-10-19T16:53:20.8393084+08:00;True|2022-10-19T16:49:09.6859302+08:00;True|2022-10-19T16:40:53.2090492+08:00;True|2022-10-19T16:35:02.0381742+08:00;True|2022-10-19T16:30:49.8415090+08:00;True|2022-10-19T16:05:14.3522346+08:00;True|2022-10-19T15:50:08.9509925+08:00;True|2022-10-19T15:36:28.6015003+08:00;True|2022-10-19T15:33:26.7861204+08:00;True|2022-10-19T15:27:02.8006070+08:00;True|2022-10-19T15:16:31.4065993+08:00;True|2022-10-19T15:14:34.8724996+08:00;True|2022-10-18T18:12:15.5930366+08:00;True|2022-10-18T18:06:54.1679240+08:00;True|2022-10-18T18:02:12.3473981+08:00;True|2022-10-18T17:39:10.7104222+08:00;True|2022-10-18T17:35:14.3679319+08:00;True|2022-10-18T17:32:18.8020932+08:00;True|2022-10-18T17:09:35.5170795+08:00;True|2022-10-18T17:02:58.3933082+08:00;True|2022-10-18T16:46:19.9647705+08:00;True|2022-10-18T11:28:23.1151472+08:00;True|2022-10-17T16:44:34.9653103+08:00;True|2022-10-16T01:53:49.3818533+08:00;True|2022-10-16T01:46:58.7626854+08:00;True|2022-10-16T01:35:19.3037353+08:00;True|2022-10-15T14:31:57.4587818+08:00;True|2022-10-15T14:22:52.4245457+08:00;True|2022-10-14T15:32:59.8175195+08:00;True|2022-10-14T15:24:23.9954226+08:00;True|2022-10-14T15:24:02.4438281+08:00;True|2022-10-14T11:07:04.2629220+08:00;True|2022-10-13T16:44:07.8507864+08:00;True|2022-10-13T16:34:20.4037866+08:00;True|2022-10-13T15:07:55.6527739+08:00;True|2022-10-12T14:59:51.4425162+08:00;True|2022-10-12T11:14:22.2463823+08:00;True|2022-10-12T08:53:16.5351204+08:00;True|2022-10-12T08:24:28.2157523+08:00;False|2022-10-12T08:23:56.2743080+08:00;True|2022-10-12T08:12:38.4791356+08:00;False|2022-10-12T08:12:14.9860966+08:00;True|2022-10-12T08:08:31.1437091+08:00;True|2022-10-11T18:10:13.8327911+08:00;True|2022-10-10T16:21:33.7622381+08:00;True|2022-10-10T09:56:53.1134309+08:00;False|2022-10-10T09:56:18.9153013+08:00;True|2022-10-10T08:46:48.2842004+08:00;True|2022-10-09T16:25:10.1147763+08:00;True|2022-10-08T16:54:50.7779806+08:00;True|2022-10-08T16:35:23.1960956+08:00;True|2022-10-08T16:06:16.5635598+08:00;True|2022-10-08T16:01:24.5889763+08:00;True|2022-10-08T13:11:34.8631266+08:00;True|2022-09-29T15:59:52.7749027+08:00;True|2022-09-28T18:13:25.7208132+08:00;True|2022-09-27T14:01:52.5493804+08:00;True|2022-09-27T08:32:48.3460557+08:00;True|2022-09-23T16:12:28.0271396+08:00;True|2022-09-23T13:50:16.4039745+08:00;True|2022-09-23T13:49:02.0464589+08:00;True|2022-09-23T13:47:12.4458913+08:00;True|2022-09-23T13:42:58.0795715+08:00;True|2022-09-23T13:32:34.2909297+08:00;True|2022-09-23T13:31:14.5573692+08:00;True|2022-09-23T13:27:32.1842906+08:00;True|2022-09-23T12:50:51.2811202+08:00;True|2022-09-22T17:31:41.3605592+08:00;True|2022-09-22T17:25:44.2386416+08:00;True|2022-09-22T09:47:22.9767826+08:00;True|2022-09-16T14:31:58.5334673+08:00;True|2022-09-16T09:04:53.3449040+08:00;True|2022-09-15T15:15:18.3159768+08:00;True|2022-09-14T17:46:23.0171281+08:00;True|2022-09-14T17:43:44.4370239+08:00;True|2022-09-14T17:34:30.3167863+08:00;True|2022-09-14T17:33:00.5148855+08:00;True|2022-09-14T17:06:32.0879029+08:00;True|2022-09-14T16:50:12.7189783+08:00;True|2022-09-14T16:47:48.3868826+08:00;True|2022-09-14T16:42:35.3830356+08:00;True|2022-09-14T16:41:37.8545801+08:00;True|2022-09-14T16:36:47.0944090+08:00;True|2022-09-14T16:26:00.8638173+08:00;True|2022-09-14T16:13:43.6329252+08:00;True|2022-09-14T16:04:16.8093275+08:00;True|2022-09-14T16:02:54.4702614+08:00;True|2022-09-14T15:57:15.9623104+08:00;True|2022-09-14T15:54:23.8745601+08:00;True|2022-09-14T15:49:40.1730864+08:00;True|2022-09-14T15:42:08.2811334+08:00;True|2022-09-14T15:26:40.0417771+08:00;True|2022-09-14T15:24:30.2187269+08:00;True|2022-09-14T15:16:30.3856771+08:00;True|2022-09-14T15:09:22.4313367+08:00;True|2022-09-14T14:59:14.3795036+08:00;True|2022-09-14T14:53:26.8923244+08:00;True|2022-09-14T14:44:00.6688344+08:00;True|2022-09-14T14:41:53.3908108+08:00;True|2022-09-14T14:40:40.3787118+08:00;True|2022-09-14T14:28:39.2273279+08:00;True|2022-09-14T14:27:13.3566861+08:00;True|2022-09-14T14:25:25.4360688+08:00;True|2022-09-14T14:20:42.9734032+08:00;True|2022-09-14T13:51:39.1303401+08:00;True|2022-09-14T13:25:34.8906041+08:00;True|2022-09-14T13:19:28.9172079+08:00;True|2022-09-14T13:18:09.5900815+08:00;True|2022-09-14T10:58:58.0910068+08:00;True|2022-09-14T10:57:11.4834444+08:00;True|2022-09-14T10:45:39.8943674+08:00;True|2022-09-14T10:38:15.2282286+08:00;True|2022-09-14T10:36:54.8259640+08:00;True|2022-09-14T10:14:12.1218790+08:00;True|2022-09-14T10:13:20.0625618+08:00;True|2022-09-14T10:10:15.3538379+08:00;True|2022-09-14T10:07:09.4796434+08:00;True|2022-09-14T10:06:02.0382235+08:00;True|2022-09-14T09:57:12.0082796+08:00;True|2022-09-14T09:52:29.4689029+08:00;True|2022-09-14T09:47:26.7205193+08:00;True|2022-09-14T09:38:56.4089520+08:00;True|2022-09-14T09:32:34.9863473+08:00;True|2022-09-12T13:07:40.5119225+08:00;True|2022-09-09T15:21:48.4251654+08:00;True|2022-09-09T14:45:54.9315147+08:00;True|2022-09-09T11:01:18.2619729+08:00;True|2022-09-09T09:35:40.9779148+08:00;True|2022-09-09T09:26:51.9854326+08:00;True|2022-09-09T09:11:48.8023373+08:00;True|2022-09-09T09:05:45.5528883+08:00;True|2022-09-08T17:47:35.2628987+08:00;True|2022-09-08T17:43:32.6700813+08:00;True|2022-09-08T17:01:23.6259930+08:00;True|2022-09-08T16:55:57.2305777+08:00;True|2022-09-08T16:35:37.3631720+08:00;True|2022-09-08T16:19:13.9122228+08:00;True|2022-09-08T16:04:07.7348285+08:00;True|2022-09-08T16:00:49.9961701+08:00;True|2022-09-08T15:16:03.0110619+08:00;True|2022-09-08T10:19:46.2872822+08:00;True|2022-09-08T10:11:15.5386438+08:00;True|2022-09-08T08:19:02.5242539+08:00;True|2022-09-08T08:18:11.7308721+08:00;True|2022-09-07T11:39:27.2463573+08:00;True|2022-09-07T10:40:57.8877369+08:00;True|2022-09-07T10:37:10.1517098+08:00;True|2022-09-07T10:30:08.7782107+08:00;True|2022-09-07T10:23:52.8534200+08:00;True|2022-09-07T10:09:31.6994230+08:00;True|2022-09-07T10:01:16.2683112+08:00;True|2022-09-07T09:51:47.6282546+08:00;True|2022-09-06T19:11:45.1701913+08:00;True|2022-09-06T18:29:29.2671862+08:00;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
+    <History>True|2023-05-19T05:58:21.8716077Z;True|2023-05-19T13:43:04.0108113+08:00;True|2023-05-18T14:00:14.2429421+08:00;True|2023-05-18T14:00:00.5235856+08:00;True|2023-05-18T13:50:34.8609414+08:00;True|2023-05-18T13:43:21.0316462+08:00;True|2023-05-18T10:19:05.7358704+08:00;True|2023-05-16T14:51:14.2413890+08:00;True|2023-05-11T16:12:03.5847312+08:00;True|2023-05-11T14:51:24.9777508+08:00;True|2023-05-11T14:22:01.5250259+08:00;True|2023-05-11T14:18:25.5821570+08:00;True|2023-05-09T19:30:19.2882714+08:00;True|2023-05-08T18:08:56.2476136+08:00;True|2023-05-08T18:07:15.2514972+08:00;True|2023-05-08T18:04:38.8770595+08:00;True|2023-05-08T17:47:24.7720275+08:00;True|2023-05-08T17:34:16.2613338+08:00;True|2023-05-08T17:31:32.9125441+08:00;True|2023-05-08T17:24:27.5765230+08:00;True|2023-05-08T17:18:32.6186281+08:00;True|2023-05-08T16:41:34.1978109+08:00;True|2023-05-08T16:38:10.1042972+08:00;True|2023-05-08T16:35:13.8108245+08:00;True|2023-05-08T16:05:00.4230119+08:00;True|2023-05-08T15:52:54.8659373+08:00;True|2023-05-08T15:27:59.7369215+08:00;True|2023-05-08T13:48:29.4669255+08:00;True|2023-05-06T09:21:10.0166182+08:00;True|2023-05-05T14:14:36.8872753+08:00;True|2023-04-25T09:53:42.9989490+08:00;True|2023-04-25T09:29:47.9359947+08:00;True|2023-04-21T10:10:47.7408362+08:00;True|2023-04-19T10:05:32.2323010+08:00;True|2023-04-19T08:47:02.1943920+08:00;True|2023-04-19T08:36:23.7737952+08:00;True|2023-04-19T08:27:33.3238877+08:00;True|2023-04-13T16:59:39.7958192+08:00;True|2023-04-13T16:34:45.9951848+08:00;True|2023-04-13T16:27:59.7386867+08:00;False|2023-04-13T16:23:36.7558189+08:00;True|2023-04-12T16:31:46.6724339+08:00;True|2023-04-12T16:23:35.3177339+08:00;True|2023-04-11T12:49:48.0246851+08:00;True|2023-04-11T12:46:56.0293166+08:00;True|2023-04-11T11:13:00.9841554+08:00;True|2023-04-10T16:53:41.8964649+08:00;True|2023-04-07T08:30:18.4653189+08:00;True|2023-04-06T17:29:55.4388629+08:00;True|2023-04-06T16:45:39.5573964+08:00;True|2023-04-04T15:41:18.1582540+08:00;True|2023-04-04T15:33:47.4319210+08:00;True|2023-04-04T15:24:23.0417772+08:00;True|2023-04-04T15:05:34.8694589+08:00;True|2023-04-04T13:51:06.6709099+08:00;True|2023-04-04T08:51:53.0379573+08:00;True|2023-04-04T08:26:14.1581736+08:00;True|2023-04-04T08:09:40.3919185+08:00;True|2023-04-04T08:03:47.3773358+08:00;True|2023-03-29T10:59:42.8557249+08:00;True|2023-03-29T10:32:37.1829423+08:00;True|2023-03-24T15:23:09.2950637+08:00;True|2023-03-22T17:52:59.0162624+08:00;True|2023-03-22T17:44:51.7892593+08:00;True|2023-03-22T17:41:41.7366750+08:00;True|2023-03-22T17:30:45.1983751+08:00;True|2023-03-22T17:25:48.0681920+08:00;True|2023-03-22T17:16:16.5578143+08:00;True|2023-03-22T16:36:15.7695476+08:00;True|2023-03-22T10:21:58.5145068+08:00;True|2023-03-20T17:21:47.4459321+08:00;True|2023-03-20T17:21:27.0468975+08:00;True|2023-03-20T16:58:02.8681774+08:00;True|2023-03-20T16:34:42.1058692+08:00;True|2023-03-20T16:23:47.7801897+08:00;True|2023-03-03T08:56:05.4730255+08:00;True|2023-03-02T16:23:31.6756396+08:00;True|2023-03-01T15:52:28.2849007+08:00;True|2023-03-01T15:35:55.8647024+08:00;True|2023-03-01T15:21:23.8133690+08:00;True|2023-02-28T16:00:01.5165754+08:00;True|2023-02-28T14:53:18.0954404+08:00;True|2023-02-28T14:45:14.0183407+08:00;True|2023-02-15T15:10:18.1493103+08:00;True|2023-02-15T14:45:42.3134512+08:00;True|2023-02-15T14:38:34.6207896+08:00;True|2023-02-15T14:28:47.3494779+08:00;True|2023-02-15T14:06:19.8843387+08:00;True|2023-02-15T12:37:06.8372351+08:00;True|2023-02-15T09:18:28.2740085+08:00;True|2023-02-14T16:38:24.2037803+08:00;False|2023-02-14T16:35:10.9291528+08:00;True|2023-02-13T14:56:38.5856100+08:00;True|2023-02-13T12:50:51.9358444+08:00;True|2023-02-11T10:08:39.6831781+08:00;True|2023-02-11T09:54:32.8160454+08:00;True|2023-02-11T09:54:21.9971913+08:00;True|2023-02-11T02:11:17.5904204+08:00;True|2023-02-11T02:04:19.4213456+08:00;True|2023-02-10T13:03:57.4443981+08:00;True|2023-02-09T21:55:13.8322950+08:00;True|2023-02-09T21:34:49.3120350+08:00;True|2023-02-07T10:08:39.5582710+08:00;True|2023-02-03T08:25:45.7718782+08:00;True|2023-01-30T12:40:37.6820386+08:00;True|2023-01-30T08:45:34.0836363+08:00;True|2023-01-11T10:13:36.4366183+08:00;True|2023-01-11T09:37:39.6235517+08:00;True|2023-01-11T09:37:05.7608583+08:00;True|2023-01-11T09:14:36.0337347+08:00;True|2023-01-10T16:29:20.9791940+08:00;True|2023-01-10T16:09:20.2950245+08:00;True|2023-01-10T14:43:30.8069585+08:00;True|2023-01-10T14:43:14.0392269+08:00;True|2023-01-10T13:30:42.7077204+08:00;True|2023-01-10T13:09:48.9547948+08:00;True|2023-01-10T12:18:02.7207328+08:00;True|2023-01-06T16:33:28.2963933+08:00;True|2023-01-06T16:27:31.9342782+08:00;True|2023-01-06T16:23:33.0323708+08:00;True|2023-01-06T14:06:25.7389071+08:00;True|2023-01-06T13:50:39.1399992+08:00;True|2023-01-06T11:55:24.5609585+08:00;True|2023-01-06T11:08:53.3862603+08:00;True|2023-01-06T10:35:25.4696330+08:00;True|2023-01-06T10:27:54.7687528+08:00;True|2023-01-06T09:34:11.0798818+08:00;True|2023-01-05T16:47:28.7063631+08:00;True|2023-01-04T15:09:12.6813075+08:00;True|2023-01-04T15:06:20.1259155+08:00;True|2022-12-27T15:22:00.8719157+08:00;True|2022-12-27T15:18:56.4183337+08:00;True|2022-12-27T11:13:35.0250651+08:00;True|2022-12-26T14:12:52.3868526+08:00;True|2022-12-26T10:35:25.9712626+08:00;True|2022-12-20T09:02:47.7097031+08:00;True|2022-12-19T14:40:38.5851369+08:00;True|2022-12-14T12:51:44.0399559+08:00;True|2022-12-14T10:59:36.5250039+08:00;True|2022-12-14T10:54:23.0704819+08:00;True|2022-12-14T10:54:11.5744699+08:00;True|2022-12-14T10:53:33.7127244+08:00;True|2022-12-14T10:47:34.9597966+08:00;True|2022-12-08T15:06:12.8416810+08:00;True|2022-12-07T16:44:49.7931793+08:00;True|2022-11-26T11:05:21.2315179+08:00;True|2022-11-26T10:56:49.3021067+08:00;True|2022-11-25T13:00:54.9138172+08:00;True|2022-11-25T12:43:01.0212012+08:00;True|2022-11-25T12:36:22.2745198+08:00;True|2022-11-25T12:33:27.1942331+08:00;True|2022-11-25T11:07:23.5860394+08:00;True|2022-11-25T10:36:26.1052993+08:00;True|2022-11-24T16:50:49.0061385+08:00;True|2022-11-24T16:47:23.6152654+08:00;True|2022-11-24T15:36:20.0275278+08:00;True|2022-11-24T15:25:29.2391337+08:00;True|2022-11-24T15:25:19.7988304+08:00;True|2022-11-24T15:06:48.3860466+08:00;True|2022-11-24T14:52:24.7879819+08:00;True|2022-11-24T10:12:41.0992839+08:00;True|2022-11-21T15:13:29.3527873+08:00;True|2022-11-21T10:42:28.8298039+08:00;True|2022-11-18T11:10:34.9917493+08:00;True|2022-11-18T11:10:11.7210670+08:00;True|2022-11-18T10:59:20.7515137+08:00;True|2022-11-18T10:52:33.2724652+08:00;True|2022-11-18T09:22:10.0215858+08:00;True|2022-11-18T09:16:35.0644453+08:00;True|2022-11-16T10:30:33.9013342+08:00;True|2022-11-16T09:55:08.7555656+08:00;True|2022-10-29T11:48:17.9164445+08:00;True|2022-10-29T10:27:39.6224331+08:00;True|2022-10-29T09:25:19.4865788+08:00;True|2022-10-29T09:01:58.2237798+08:00;True|2022-10-29T08:57:17.1749942+08:00;True|2022-10-28T14:44:10.4595607+08:00;True|2022-10-28T14:41:10.8050513+08:00;True|2022-10-28T14:39:02.0096359+08:00;True|2022-10-28T14:27:52.1679095+08:00;True|2022-10-28T14:19:07.6073425+08:00;True|2022-10-28T14:16:46.4140421+08:00;True|2022-10-28T14:06:54.5820895+08:00;True|2022-10-28T14:06:20.4765666+08:00;True|2022-10-28T14:00:01.8073205+08:00;True|2022-10-28T13:56:40.6320465+08:00;True|2022-10-28T12:52:46.3086338+08:00;True|2022-10-28T11:31:08.7626713+08:00;True|2022-10-28T11:28:25.3391022+08:00;True|2022-10-27T17:13:49.3276407+08:00;True|2022-10-27T17:09:49.3362372+08:00;True|2022-10-27T14:49:20.9922482+08:00;True|2022-10-27T11:08:32.7803317+08:00;True|2022-10-27T09:19:17.9537933+08:00;True|2022-10-27T09:14:00.6751533+08:00;True|2022-10-27T09:08:05.5814368+08:00;True|2022-10-27T09:04:21.1435873+08:00;True|2022-10-26T16:47:26.8255243+08:00;True|2022-10-26T16:29:26.3405800+08:00;False|2022-10-26T16:28:18.6237074+08:00;True|2022-10-26T14:29:39.8852546+08:00;True|2022-10-26T14:11:14.0537705+08:00;True|2022-10-26T10:56:16.7897290+08:00;True|2022-10-26T10:29:02.5303566+08:00;True|2022-10-26T10:28:29.9192643+08:00;True|2022-10-26T10:28:16.5901050+08:00;True|2022-10-26T10:22:02.2019236+08:00;True|2022-10-26T10:17:08.3009992+08:00;True|2022-10-20T18:19:28.0452517+08:00;True|2022-10-20T18:14:36.1031080+08:00;True|2022-10-20T16:49:08.1312509+08:00;True|2022-10-20T10:11:30.3988252+08:00;True|2022-10-20T09:52:55.2879279+08:00;True|2022-10-20T09:07:20.5119842+08:00;True|2022-10-20T08:55:23.9003542+08:00;True|2022-10-19T17:56:47.0600040+08:00;True|2022-10-19T17:26:22.4420642+08:00;True|2022-10-19T17:15:09.2591171+08:00;True|2022-10-19T17:00:58.0407123+08:00;True|2022-10-19T16:53:20.8393084+08:00;True|2022-10-19T16:49:09.6859302+08:00;True|2022-10-19T16:40:53.2090492+08:00;True|2022-10-19T16:35:02.0381742+08:00;True|2022-10-19T16:30:49.8415090+08:00;True|2022-10-19T16:05:14.3522346+08:00;True|2022-10-19T15:50:08.9509925+08:00;True|2022-10-19T15:36:28.6015003+08:00;True|2022-10-19T15:33:26.7861204+08:00;True|2022-10-19T15:27:02.8006070+08:00;True|2022-10-19T15:16:31.4065993+08:00;True|2022-10-19T15:14:34.8724996+08:00;True|2022-10-18T18:12:15.5930366+08:00;True|2022-10-18T18:06:54.1679240+08:00;True|2022-10-18T18:02:12.3473981+08:00;True|2022-10-18T17:39:10.7104222+08:00;True|2022-10-18T17:35:14.3679319+08:00;True|2022-10-18T17:32:18.8020932+08:00;True|2022-10-18T17:09:35.5170795+08:00;True|2022-10-18T17:02:58.3933082+08:00;True|2022-10-18T16:46:19.9647705+08:00;True|2022-10-18T11:28:23.1151472+08:00;True|2022-10-17T16:44:34.9653103+08:00;True|2022-10-16T01:53:49.3818533+08:00;True|2022-10-16T01:46:58.7626854+08:00;True|2022-10-16T01:35:19.3037353+08:00;True|2022-10-15T14:31:57.4587818+08:00;True|2022-10-15T14:22:52.4245457+08:00;True|2022-10-14T15:32:59.8175195+08:00;True|2022-10-14T15:24:23.9954226+08:00;True|2022-10-14T15:24:02.4438281+08:00;True|2022-10-14T11:07:04.2629220+08:00;True|2022-10-13T16:44:07.8507864+08:00;True|2022-10-13T16:34:20.4037866+08:00;True|2022-10-13T15:07:55.6527739+08:00;True|2022-10-12T14:59:51.4425162+08:00;True|2022-10-12T11:14:22.2463823+08:00;True|2022-10-12T08:53:16.5351204+08:00;True|2022-10-12T08:24:28.2157523+08:00;False|2022-10-12T08:23:56.2743080+08:00;True|2022-10-12T08:12:38.4791356+08:00;False|2022-10-12T08:12:14.9860966+08:00;True|2022-10-12T08:08:31.1437091+08:00;True|2022-10-11T18:10:13.8327911+08:00;True|2022-10-10T16:21:33.7622381+08:00;True|2022-10-10T09:56:53.1134309+08:00;False|2022-10-10T09:56:18.9153013+08:00;True|2022-10-10T08:46:48.2842004+08:00;True|2022-10-09T16:25:10.1147763+08:00;True|2022-10-08T16:54:50.7779806+08:00;True|2022-10-08T16:35:23.1960956+08:00;True|2022-10-08T16:06:16.5635598+08:00;True|2022-10-08T16:01:24.5889763+08:00;True|2022-10-08T13:11:34.8631266+08:00;True|2022-09-29T15:59:52.7749027+08:00;True|2022-09-28T18:13:25.7208132+08:00;True|2022-09-27T14:01:52.5493804+08:00;True|2022-09-27T08:32:48.3460557+08:00;True|2022-09-23T16:12:28.0271396+08:00;True|2022-09-23T13:50:16.4039745+08:00;True|2022-09-23T13:49:02.0464589+08:00;True|2022-09-23T13:47:12.4458913+08:00;True|2022-09-23T13:42:58.0795715+08:00;True|2022-09-23T13:32:34.2909297+08:00;True|2022-09-23T13:31:14.5573692+08:00;True|2022-09-23T13:27:32.1842906+08:00;True|2022-09-23T12:50:51.2811202+08:00;True|2022-09-22T17:31:41.3605592+08:00;True|2022-09-22T17:25:44.2386416+08:00;True|2022-09-22T09:47:22.9767826+08:00;True|2022-09-16T14:31:58.5334673+08:00;True|2022-09-16T09:04:53.3449040+08:00;True|2022-09-15T15:15:18.3159768+08:00;True|2022-09-14T17:46:23.0171281+08:00;True|2022-09-14T17:43:44.4370239+08:00;True|2022-09-14T17:34:30.3167863+08:00;True|2022-09-14T17:33:00.5148855+08:00;True|2022-09-14T17:06:32.0879029+08:00;True|2022-09-14T16:50:12.7189783+08:00;True|2022-09-14T16:47:48.3868826+08:00;True|2022-09-14T16:42:35.3830356+08:00;True|2022-09-14T16:41:37.8545801+08:00;True|2022-09-14T16:36:47.0944090+08:00;True|2022-09-14T16:26:00.8638173+08:00;True|2022-09-14T16:13:43.6329252+08:00;True|2022-09-14T16:04:16.8093275+08:00;True|2022-09-14T16:02:54.4702614+08:00;True|2022-09-14T15:57:15.9623104+08:00;True|2022-09-14T15:54:23.8745601+08:00;True|2022-09-14T15:49:40.1730864+08:00;True|2022-09-14T15:42:08.2811334+08:00;True|2022-09-14T15:26:40.0417771+08:00;True|2022-09-14T15:24:30.2187269+08:00;True|2022-09-14T15:16:30.3856771+08:00;True|2022-09-14T15:09:22.4313367+08:00;True|2022-09-14T14:59:14.3795036+08:00;True|2022-09-14T14:53:26.8923244+08:00;True|2022-09-14T14:44:00.6688344+08:00;True|2022-09-14T14:41:53.3908108+08:00;True|2022-09-14T14:40:40.3787118+08:00;True|2022-09-14T14:28:39.2273279+08:00;True|2022-09-14T14:27:13.3566861+08:00;True|2022-09-14T14:25:25.4360688+08:00;True|2022-09-14T14:20:42.9734032+08:00;True|2022-09-14T13:51:39.1303401+08:00;True|2022-09-14T13:25:34.8906041+08:00;True|2022-09-14T13:19:28.9172079+08:00;True|2022-09-14T13:18:09.5900815+08:00;True|2022-09-14T10:58:58.0910068+08:00;True|2022-09-14T10:57:11.4834444+08:00;True|2022-09-14T10:45:39.8943674+08:00;True|2022-09-14T10:38:15.2282286+08:00;True|2022-09-14T10:36:54.8259640+08:00;True|2022-09-14T10:14:12.1218790+08:00;True|2022-09-14T10:13:20.0625618+08:00;True|2022-09-14T10:10:15.3538379+08:00;True|2022-09-14T10:07:09.4796434+08:00;True|2022-09-14T10:06:02.0382235+08:00;True|2022-09-14T09:57:12.0082796+08:00;True|2022-09-14T09:52:29.4689029+08:00;True|2022-09-14T09:47:26.7205193+08:00;True|2022-09-14T09:38:56.4089520+08:00;True|2022-09-14T09:32:34.9863473+08:00;True|2022-09-12T13:07:40.5119225+08:00;True|2022-09-09T15:21:48.4251654+08:00;True|2022-09-09T14:45:54.9315147+08:00;True|2022-09-09T11:01:18.2619729+08:00;True|2022-09-09T09:35:40.9779148+08:00;True|2022-09-09T09:26:51.9854326+08:00;True|2022-09-09T09:11:48.8023373+08:00;True|2022-09-09T09:05:45.5528883+08:00;True|2022-09-08T17:47:35.2628987+08:00;True|2022-09-08T17:43:32.6700813+08:00;True|2022-09-08T17:01:23.6259930+08:00;True|2022-09-08T16:55:57.2305777+08:00;True|2022-09-08T16:35:37.3631720+08:00;True|2022-09-08T16:19:13.9122228+08:00;True|2022-09-08T16:04:07.7348285+08:00;True|2022-09-08T16:00:49.9961701+08:00;True|2022-09-08T15:16:03.0110619+08:00;True|2022-09-08T10:19:46.2872822+08:00;True|2022-09-08T10:11:15.5386438+08:00;True|2022-09-08T08:19:02.5242539+08:00;True|2022-09-08T08:18:11.7308721+08:00;True|2022-09-07T11:39:27.2463573+08:00;True|2022-09-07T10:40:57.8877369+08:00;True|2022-09-07T10:37:10.1517098+08:00;True|2022-09-07T10:30:08.7782107+08:00;True|2022-09-07T10:23:52.8534200+08:00;True|2022-09-07T10:09:31.6994230+08:00;True|2022-09-07T10:01:16.2683112+08:00;True|2022-09-07T09:51:47.6282546+08:00;True|2022-09-06T19:11:45.1701913+08:00;True|2022-09-06T18:29:29.2671862+08:00;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -729,16 +729,16 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>05/09/2023 19:30:11</publishTime>
+      <publishTime>05/19/2023 13:58:17</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>05/09/2023 19:30:11</publishTime>
+      <publishTime>05/19/2023 13:58:17</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>05/09/2023 19:30:11</publishTime>
+      <publishTime>05/19/2023 13:58:17</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1478,6 +1478,9 @@
     <File Include="Image/app_8.png">
       <publishTime>08/30/2022 10:11:46</publishTime>
     </File>
+    <File Include="Image/app_8_1.png">
+      <publishTime>05/17/2023 09:22:00</publishTime>
+    </File>
     <File Include="Image/app_8_7.png">
       <publishTime>04/04/2023 15:22:25</publishTime>
     </File>
@@ -1486,6 +1489,18 @@
     </File>
     <File Include="Image/app_9_1.png">
       <publishTime>01/03/2023 11:11:06</publishTime>
+    </File>
+    <File Include="Image/app_9_2.png">
+      <publishTime>05/17/2023 09:07:41</publishTime>
+    </File>
+    <File Include="Image/app_9_3.png">
+      <publishTime>05/17/2023 09:07:41</publishTime>
+    </File>
+    <File Include="Image/app_9_4.png">
+      <publishTime>05/17/2023 09:07:41</publishTime>
+    </File>
+    <File Include="Image/app_9_5.png">
+      <publishTime>05/17/2023 09:07:41</publishTime>
     </File>
     <File Include="Image/index_1.png">
       <publishTime>08/30/2022 10:11:46</publishTime>
@@ -1506,7 +1521,7 @@
       <publishTime>06/10/2022 09:23:15</publishTime>
     </File>
     <File Include="log4net.config">
-      <publishTime>05/09/2023 19:02:28</publishTime>
+      <publishTime>05/10/2023 09:38:48</publishTime>
     </File>
     <File Include="Scripts/bootstrap.js">
       <publishTime>06/10/2022 08:20:26</publishTime>
@@ -1560,7 +1575,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>05/09/2023 19:30:18</publishTime>
+      <publishTime>05/19/2023 13:58:21</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Tools/ChannelActionFilterAttribute.cs b/VueWebApi/Tools/ChannelActionFilterAttribute.cs
index 50da56d..04dca50 100644
--- a/VueWebApi/Tools/ChannelActionFilterAttribute.cs
+++ b/VueWebApi/Tools/ChannelActionFilterAttribute.cs
@@ -24,7 +24,7 @@
         /// 璇锋眰鎺ュ彛涔嬪墠娓犻亾杩囨护
         /// </summary>
         /// <param name="actionContext"></param>
-        public override void  OnActionExecuting(HttpActionContext actionContext)
+        public override void OnActionExecuting(HttpActionContext actionContext)
         {
             try
             {
@@ -39,7 +39,7 @@
                     //鑾峰彇redis涓綋鍓嶇敤鎴蜂俊鎭�
                     User r_loginUser = redis.Get<User>(rediskey, 0);
                     //濡傛灉session涓殑鐢ㄦ埛guid鍜宺edis涓殑鐢ㄦ埛guid鍖归厤
-                    if(r_loginUser.guid.Equals(guid))
+                    if (r_loginUser.guid.Equals(guid))
                     {
                         //閲嶇疆杩囨湡鏃堕棿
                         redis.KeyExpire(rediskey, redis.secondsTimeOut);
@@ -64,7 +64,7 @@
                 mes.Message = "鐧诲綍宸茶秴鏃�,璇烽噸鏂扮櫥褰�!";
                 actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(mes), Encoding.GetEncoding("UTF-8"), "application/json") };
             }
-           
-        }  
+
+        }
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/Tools/DapperHelper.cs b/VueWebApi/Tools/DapperHelper.cs
index 37af73e..88ac79e 100644
--- a/VueWebApi/Tools/DapperHelper.cs
+++ b/VueWebApi/Tools/DapperHelper.cs
@@ -45,6 +45,8 @@
             {
                 try
                 {
+                    //鐢ㄦ埛鎿嶄綔璁板綍鍐欏叆鏁版嵁琛�
+                    //Log4net.LogUtil.SaveMessage("PC", "鎿嶄綔浜唜xxxx", "api/Login/LoginSave", ConfigurationManager.AppSettings["FileIP"], "9999", 1);
                     list = conn.Query<T>(sql, parm).ToList<T>();
                 }
                 catch (Exception ex)
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index 4a50ecc..fef99f6 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -402,6 +402,7 @@
     <Compile Include="Models\AppDevicecCheck.cs" />
     <Compile Include="Models\AppLabCode.cs" />
     <Compile Include="Models\AppPurchOrderSave.cs" />
+    <Compile Include="Models\AppScheduleKanban.cs" />
     <Compile Include="Models\APSList.cs" />
     <Compile Include="Models\ApsOrderSerch.cs" />
     <Compile Include="Models\BomSub.cs" />
@@ -528,9 +529,14 @@
     <Content Include="Image\app_7_3.png" />
     <Content Include="Image\app_7_4.png" />
     <Content Include="Image\app_8.png" />
+    <Content Include="Image\app_8_1.png" />
     <Content Include="Image\app_8_7.png" />
     <Content Include="Image\app_9.png" />
     <Content Include="Image\app_9_1.png" />
+    <Content Include="Image\app_9_2.png" />
+    <Content Include="Image\app_9_3.png" />
+    <Content Include="Image\app_9_4.png" />
+    <Content Include="Image\app_9_5.png" />
     <Content Include="Image\index_1.png" />
     <Content Include="Image\index_2.png" />
     <Content Include="Scripts\bootstrap.js" />
diff --git a/VueWebApi/Web.config b/VueWebApi/Web.config
index 2c167a0..fd379a9 100644
--- a/VueWebApi/Web.config
+++ b/VueWebApi/Web.config
@@ -35,7 +35,18 @@
 		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
 		<!--鎻愪氦json瀛楃涓茶繃闀块棶棰�-->
 		<add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
+		<add key="log4net.Internal.Debug" value="true"/>
 	</appSettings>
+	<system.diagnostics>
+		<trace autoflush="true">
+			<listeners>
+				<add
+					name="textWriterTraceListener"
+					type="System.Diagnostics.TextWriterTraceListener"
+					initializeData="D:\log4net.txt" />
+			</listeners>
+		</trace>
+	</system.diagnostics>
 	<system.web>
 		<compilation debug="true" targetFramework="4.6.1" />
 		<customErrors mode="Off" />
diff --git a/VueWebApi/bin/VueWebApi.dll.config b/VueWebApi/bin/VueWebApi.dll.config
index 2c167a0..fd379a9 100644
--- a/VueWebApi/bin/VueWebApi.dll.config
+++ b/VueWebApi/bin/VueWebApi.dll.config
@@ -35,7 +35,18 @@
 		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
 		<!--鎻愪氦json瀛楃涓茶繃闀块棶棰�-->
 		<add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
+		<add key="log4net.Internal.Debug" value="true"/>
 	</appSettings>
+	<system.diagnostics>
+		<trace autoflush="true">
+			<listeners>
+				<add
+					name="textWriterTraceListener"
+					type="System.Diagnostics.TextWriterTraceListener"
+					initializeData="D:\log4net.txt" />
+			</listeners>
+		</trace>
+	</system.diagnostics>
 	<system.web>
 		<compilation debug="true" targetFramework="4.6.1" />
 		<customErrors mode="Off" />
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index b7bf42c..2c789ef 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index 63c01de..01315c9 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -515,6 +515,15 @@
             <param name="defecttype">缂洪櫡缁熻绫诲瀷</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
+            <summary>
+            App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅
+            </summary>
+            <param name="ordertype">鍗曟嵁绫诲瀷(SO:閿�鍞鍗曘�丮O:鐢熶骇璁㈠崟銆丳O:鐢熶骇宸ュ崟)</param>
+            <param name="partcode">浜у搧淇℃伅(鍙涓�)</param>
+            <param name="Ratetime">鍗曟嵁鏃ユ湡鑼冨洿</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.AppPersonalController.PieceRateWage(System.String,System.String,System.String)">
             <summary>
             App涓汉璁′欢宸ヨ祫
@@ -718,6 +727,27 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
+            <summary>
+            宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+            </summary>
+            <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+            <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckItemList(System.String)">
+            <summary>
+            鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
+            </summary>
+            <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.SaveStepCheckItem">
+            <summary>
+            宸ュ簭妫�楠�,鎻愪氦
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.BaseDateController.PurchSupplierSelect">
             <summary>
             閲囪喘渚涙柟淇℃伅鏌ヨ
@@ -753,6 +783,19 @@
             <summary>
             鍗曚綅淇℃伅鏌ヨ
             </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.BaseDateController.QualityScheme">
+            <summary>
+            璐ㄦ鏂规淇℃伅
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.BaseDateController.InventorySelect(System.String)">
+            <summary>
+            瀛樿揣鏌ヨ
+            </summary>
+            <param name="param">瀛樿揣淇℃伅</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.PurchaseOrderController.PurchaseOrderSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -1116,6 +1159,38 @@
             鐗╂祦妫�楠岋紝鏌ョ湅妫�楠屾槑缁�
             </summary>
             <param name="checkid">妫�楠岃褰旾D</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            鐢熶骇杩涘害鎶ヨ〃
+            </summary>
+            <param name="status">宸ュ崟鐘舵��</param>
+            <param name="wocode">宸ュ崟缂栧彿</param>
+            <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+            <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
+            <param name="lm_date">鍗曟嵁鏃ユ湡</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            鐢熶骇杩涘害鎶ヨ〃瀵煎嚭
+            </summary>
+            <param name="status">宸ュ崟鐘舵��</param>
+            <param name="wocode">宸ュ崟缂栧彿</param>
+            <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+            <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
+            <param name="lm_date">鍗曟嵁鏃ユ湡</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.SendController.GetConnect(System.String)">
@@ -2629,31 +2704,25 @@
             <param name="json">鎻愪氦鏁版嵁</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+            宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
             </summary>
-            <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
-            <returns></returns>
-        </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSelect">
-            <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁
-            </summary>
+            <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+            <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckItemList(System.String)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛�
+            鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
             </summary>
-            <param name="checkstandcode">妫�楠屾爣鍑嗙紪鐮�</param>
+            <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.SaveMesOrderStepCheckItem(Newtonsoft.Json.Linq.JObject)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
+            宸ュ簭妫�楠�,鎻愪氦
             </summary>
-            <param name="obj">鎻愪氦淇℃伅</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -3453,6 +3522,16 @@
             娉ㄥ唽Session
             </summary>
         </member>
+        <member name="M:VueWebApi.Log4net.LogUtil.SaveMessage(System.String,System.String,System.String,System.String,System.String,System.Int32)">
+            <summary>
+            鎿嶄綔璁板綍璋冪敤鏂规硶
+            </summary>
+            <param name="op_type">鎿嶄綔绫诲瀷</param>
+            <param name="op_content">鎿嶄綔绫诲</param>
+            <param name="actionclick">鎿嶄綔鏂规硶</param>
+            <param name="ippath">ip鍦板潃</param>
+            <param name="lm_user">鎿嶄綔浜哄憳</param>
+        </member>
         <member name="P:VueWebApi.Models.AppLabCode.rightcode">
             <summary>
             鍔熻兘缂栫爜
@@ -3528,6 +3607,36 @@
             鏉$爜淇℃伅
             </summary>
         </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.ordercode">
+            <summary>
+            鍗曟嵁缂栧彿
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.orderqty">
+            <summary>
+            鍗曟嵁鏁伴噺
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.ordergoodqty">
+            <summary>
+            鍗曟嵁缂栧彿
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partcode">
+            <summary>
+            浜у搧缂栫爜
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partname">
+            <summary>
+            浜у搧鍚嶇О
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partspec">
+            <summary>
+            浜у搧瑙勬牸
+            </summary>
+        </member>
         <member name="P:VueWebApi.Models.ApsOrderSerch.wocode">
             <summary>
             宸ュ崟鍙�
diff --git a/VueWebApi/log4net.config b/VueWebApi/log4net.config
index 70699b0..a92d0d9 100644
--- a/VueWebApi/log4net.config
+++ b/VueWebApi/log4net.config
@@ -8,11 +8,11 @@
 
 	<log4net>
 		<!--鍐欏叆鍒版枃浠�-->
-		<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
+		<!--<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
 
-			<!--鏂囦欢璺緞锛屽鏋淩ollingStyle涓篊omposite鎴朌ate锛屽垯杩欓噷璁剧疆涓虹洰褰曪紝鏂囦欢鍚嶅湪DatePattern閲岃缃紝鍏朵粬鍒欒繖閲岃鏈夋枃浠跺悕銆傚凡缁忔墿灞曟敮鎸佽櫄鎷熺洰褰�-->
+			--><!--鏂囦欢璺緞锛屽鏋淩ollingStyle涓篊omposite鎴朌ate锛屽垯杩欓噷璁剧疆涓虹洰褰曪紝鏂囦欢鍚嶅湪DatePattern閲岃缃紝鍏朵粬鍒欒繖閲岃鏈夋枃浠跺悕銆傚凡缁忔墿灞曟敮鎸佽櫄鎷熺洰褰�--><!--
 			<param name="File" value="Logs\" />
-			<!--灏嗘棩璁板啓鍏ュ埌璺熺洰褰曚笅闈㈢殑Logs鏂囦欢澶逛笅闈㈢殑yyyy-MM-dd.TXT鏂囦欢涓�-->
+			--><!--灏嗘棩璁板啓鍏ュ埌璺熺洰褰曚笅闈㈢殑Logs鏂囦欢澶逛笅闈㈢殑yyyy-MM-dd.TXT鏂囦欢涓�--><!--
 
 			<param name="AppendToFile" value="true" />
 
@@ -25,66 +25,69 @@
 			<param name="RollingStyle" value="Date" />
 
 			<param name="DatePattern" value="yyyy-MM-dd.TXT" />
-			<!--TXT鍚庣紑蹇呴』鏄ぇ鍐欑殑锛屽惁鍒欐湁闂-->
+			--><!--TXT鍚庣紑蹇呴』鏄ぇ鍐欑殑锛屽惁鍒欐湁闂--><!--
 
 			<param name="CountDirection" value="-1" />
 
 
-			<!--log4net璁板綍閿欒鐨勬牸寮�(鍗筹細鐢ㄤ粈涔堟牱鐨勬牸寮忥紙甯冨眬锛夋潵璁板綍閿欒)-->
+			--><!--log4net璁板綍閿欒鐨勬牸寮�(鍗筹細鐢ㄤ粈涔堟牱鐨勬牸寮忥紙甯冨眬锛夋潵璁板綍閿欒)--><!--
 
 			<layout type="log4net.Layout.PatternLayout">
 				<param name="ConversionPattern" value=" 銆愭椂闂淬��:%d%n 銆愮骇鍒��:%p%n 銆愮被鍚嶃��:%c%n 銆愮嚎绋婭D銆�: %thread %n 銆愭枃浠跺湴鍧�銆�:%F 绗�%L琛�%n 銆愭棩蹇楀唴瀹广��:%m%n 銆愭棩璁拌缁嗐�戯細%exception %n---------------------------------------------------------------------------------------------------------------%n" />
 			</layout>
-		</appender>
+		</appender>-->
 
-		<!--灏嗘棩璁板啓鍏ユ暟鎹簱-->
+		<!--姝ゅ灏嗘搷浣滆褰曞啓鍏ユ暟鎹簱,鏃ュ織鍚岀悊-->
 		<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 			<bufferSize value="-1" />
 			<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 			<connectionString value="data source=121.196.36.24,1533;initial catalog=vmes;persist security info=True;user id=sa;password=xkd@20230101;MultipleActiveResultSets=True;" />
-			<commandText value="INSERT INTO T_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
+			<commandText value="insert into T_Take ([op_type],[op_content],[actionclick],[ippath],[lm_user],[lm_date]) 
+						        values (@op_type, @op_content, @actionclick, @ippath, @lm_user, @lm_date)" />
 			<parameter>
-				<parameterName value="@log_date"  />
-				<dbType value="DateTime" />
-				<layout type="log4net.Layout.RawTimeStampLayout" />
-			</parameter>
-			<parameter>
-				<parameterName value="@thread" />
-				<dbType value="String" />
-				<size value="255" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%thread" />
-				</layout>
-			</parameter>
-			<parameter>
-				<parameterName value="@log_level" />
+				<parameterName value="@op_type" />
 				<dbType value="String" />
 				<size value="50" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%level" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{op_type}"/>
 				</layout>
 			</parameter>
 			<parameter>
-				<parameterName value="@logger" />
-				<dbType value="String" />
-				<size value="255" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%logger" />
-				</layout>
-			</parameter>
-			<parameter>
-				<parameterName value="@message" />
+				<parameterName value="@op_content" />
 				<dbType value="String" />
 				<size value="4000" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%message" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{op_content}"/>
 				</layout>
 			</parameter>
 			<parameter>
-				<parameterName value="@exception" />
+				<parameterName value="@actionclick" />
 				<dbType value="String" />
-				<size value="2000" />
-				<layout type="log4net.Layout.ExceptionLayout" />
+				<size value="100" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{actionclick}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@ippath" />
+				<dbType value="String" />
+				<size value="100" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{ippath}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@lm_user" />
+				<dbType value="String" />
+				<size value="50" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{lm_user}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@lm_date"  />
+				<dbType value="DateTime" />
+				<layout type="log4net.Layout.RawTimeStampLayout" />
 			</parameter>
 		</appender>
 
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 9163aea..304fd64 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png
new file mode 100644
index 0000000..b0e1b4c
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png
new file mode 100644
index 0000000..78a8592
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png
new file mode 100644
index 0000000..f2ec5ae
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png
new file mode 100644
index 0000000..c1cd4d5
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png
new file mode 100644
index 0000000..fb631b6
--- /dev/null
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Web.config b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
index 20162ba..8e18d4d 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Web.config
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -35,7 +35,15 @@
     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
     <!--鎻愪氦json瀛楃涓茶繃闀块棶棰�-->
     <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
+    <add key="log4net.Internal.Debug" value="true" />
   </appSettings>
+  <system.diagnostics>
+    <trace autoflush="true">
+      <listeners>
+        <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\log4net.txt" />
+      </listeners>
+    </trace>
+  </system.diagnostics>
   <system.web>
     <compilation targetFramework="4.6.1" />
     <customErrors mode="Off" />
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index b7bf42c..2c789ef 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
index 63c01de..01315c9 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -515,6 +515,15 @@
             <param name="defecttype">缂洪櫡缁熻绫诲瀷</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
+            <summary>
+            App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅
+            </summary>
+            <param name="ordertype">鍗曟嵁绫诲瀷(SO:閿�鍞鍗曘�丮O:鐢熶骇璁㈠崟銆丳O:鐢熶骇宸ュ崟)</param>
+            <param name="partcode">浜у搧淇℃伅(鍙涓�)</param>
+            <param name="Ratetime">鍗曟嵁鏃ユ湡鑼冨洿</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.AppPersonalController.PieceRateWage(System.String,System.String,System.String)">
             <summary>
             App涓汉璁′欢宸ヨ祫
@@ -718,6 +727,27 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
+            <summary>
+            宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+            </summary>
+            <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+            <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckItemList(System.String)">
+            <summary>
+            鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
+            </summary>
+            <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.AppQualityManagementController.SaveStepCheckItem">
+            <summary>
+            宸ュ簭妫�楠�,鎻愪氦
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.BaseDateController.PurchSupplierSelect">
             <summary>
             閲囪喘渚涙柟淇℃伅鏌ヨ
@@ -753,6 +783,19 @@
             <summary>
             鍗曚綅淇℃伅鏌ヨ
             </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.BaseDateController.QualityScheme">
+            <summary>
+            璐ㄦ鏂规淇℃伅
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.BaseDateController.InventorySelect(System.String)">
+            <summary>
+            瀛樿揣鏌ヨ
+            </summary>
+            <param name="param">瀛樿揣淇℃伅</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.PurchaseOrderController.PurchaseOrderSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -1116,6 +1159,38 @@
             鐗╂祦妫�楠岋紝鏌ョ湅妫�楠屾槑缁�
             </summary>
             <param name="checkid">妫�楠岃褰旾D</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            鐢熶骇杩涘害鎶ヨ〃
+            </summary>
+            <param name="status">宸ュ崟鐘舵��</param>
+            <param name="wocode">宸ュ崟缂栧彿</param>
+            <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+            <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
+            <param name="lm_date">鍗曟嵁鏃ユ湡</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            鐢熶骇杩涘害鎶ヨ〃瀵煎嚭
+            </summary>
+            <param name="status">宸ュ崟鐘舵��</param>
+            <param name="wocode">宸ュ崟缂栧彿</param>
+            <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+            <param name="routename">宸ヨ壓璺嚎鍚嶇О</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
+            <param name="lm_date">鍗曟嵁鏃ユ湡</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.SendController.GetConnect(System.String)">
@@ -2629,31 +2704,25 @@
             <param name="json">鎻愪氦鏁版嵁</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+            宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
             </summary>
-            <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
-            <returns></returns>
-        </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSelect">
-            <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁
-            </summary>
+            <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+            <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckItemList(System.String)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛�
+            鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
             </summary>
-            <param name="checkstandcode">妫�楠屾爣鍑嗙紪鐮�</param>
+            <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.SaveMesOrderStepCheckItem(Newtonsoft.Json.Linq.JObject)">
             <summary>
-            鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
+            宸ュ簭妫�楠�,鎻愪氦
             </summary>
-            <param name="obj">鎻愪氦淇℃伅</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -3453,6 +3522,16 @@
             娉ㄥ唽Session
             </summary>
         </member>
+        <member name="M:VueWebApi.Log4net.LogUtil.SaveMessage(System.String,System.String,System.String,System.String,System.String,System.Int32)">
+            <summary>
+            鎿嶄綔璁板綍璋冪敤鏂规硶
+            </summary>
+            <param name="op_type">鎿嶄綔绫诲瀷</param>
+            <param name="op_content">鎿嶄綔绫诲</param>
+            <param name="actionclick">鎿嶄綔鏂规硶</param>
+            <param name="ippath">ip鍦板潃</param>
+            <param name="lm_user">鎿嶄綔浜哄憳</param>
+        </member>
         <member name="P:VueWebApi.Models.AppLabCode.rightcode">
             <summary>
             鍔熻兘缂栫爜
@@ -3528,6 +3607,36 @@
             鏉$爜淇℃伅
             </summary>
         </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.ordercode">
+            <summary>
+            鍗曟嵁缂栧彿
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.orderqty">
+            <summary>
+            鍗曟嵁鏁伴噺
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.ordergoodqty">
+            <summary>
+            鍗曟嵁缂栧彿
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partcode">
+            <summary>
+            浜у搧缂栫爜
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partname">
+            <summary>
+            浜у搧鍚嶇О
+            </summary>
+        </member>
+        <member name="P:VueWebApi.Models.AppScheduleKanban.partspec">
+            <summary>
+            浜у搧瑙勬牸
+            </summary>
+        </member>
         <member name="P:VueWebApi.Models.ApsOrderSerch.wocode">
             <summary>
             宸ュ崟鍙�
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/log4net.config b/VueWebApi/obj/Release/Package/PackageTmp/log4net.config
index 70699b0..a92d0d9 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/log4net.config
+++ b/VueWebApi/obj/Release/Package/PackageTmp/log4net.config
@@ -8,11 +8,11 @@
 
 	<log4net>
 		<!--鍐欏叆鍒版枃浠�-->
-		<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
+		<!--<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
 
-			<!--鏂囦欢璺緞锛屽鏋淩ollingStyle涓篊omposite鎴朌ate锛屽垯杩欓噷璁剧疆涓虹洰褰曪紝鏂囦欢鍚嶅湪DatePattern閲岃缃紝鍏朵粬鍒欒繖閲岃鏈夋枃浠跺悕銆傚凡缁忔墿灞曟敮鎸佽櫄鎷熺洰褰�-->
+			--><!--鏂囦欢璺緞锛屽鏋淩ollingStyle涓篊omposite鎴朌ate锛屽垯杩欓噷璁剧疆涓虹洰褰曪紝鏂囦欢鍚嶅湪DatePattern閲岃缃紝鍏朵粬鍒欒繖閲岃鏈夋枃浠跺悕銆傚凡缁忔墿灞曟敮鎸佽櫄鎷熺洰褰�--><!--
 			<param name="File" value="Logs\" />
-			<!--灏嗘棩璁板啓鍏ュ埌璺熺洰褰曚笅闈㈢殑Logs鏂囦欢澶逛笅闈㈢殑yyyy-MM-dd.TXT鏂囦欢涓�-->
+			--><!--灏嗘棩璁板啓鍏ュ埌璺熺洰褰曚笅闈㈢殑Logs鏂囦欢澶逛笅闈㈢殑yyyy-MM-dd.TXT鏂囦欢涓�--><!--
 
 			<param name="AppendToFile" value="true" />
 
@@ -25,66 +25,69 @@
 			<param name="RollingStyle" value="Date" />
 
 			<param name="DatePattern" value="yyyy-MM-dd.TXT" />
-			<!--TXT鍚庣紑蹇呴』鏄ぇ鍐欑殑锛屽惁鍒欐湁闂-->
+			--><!--TXT鍚庣紑蹇呴』鏄ぇ鍐欑殑锛屽惁鍒欐湁闂--><!--
 
 			<param name="CountDirection" value="-1" />
 
 
-			<!--log4net璁板綍閿欒鐨勬牸寮�(鍗筹細鐢ㄤ粈涔堟牱鐨勬牸寮忥紙甯冨眬锛夋潵璁板綍閿欒)-->
+			--><!--log4net璁板綍閿欒鐨勬牸寮�(鍗筹細鐢ㄤ粈涔堟牱鐨勬牸寮忥紙甯冨眬锛夋潵璁板綍閿欒)--><!--
 
 			<layout type="log4net.Layout.PatternLayout">
 				<param name="ConversionPattern" value=" 銆愭椂闂淬��:%d%n 銆愮骇鍒��:%p%n 銆愮被鍚嶃��:%c%n 銆愮嚎绋婭D銆�: %thread %n 銆愭枃浠跺湴鍧�銆�:%F 绗�%L琛�%n 銆愭棩蹇楀唴瀹广��:%m%n 銆愭棩璁拌缁嗐�戯細%exception %n---------------------------------------------------------------------------------------------------------------%n" />
 			</layout>
-		</appender>
+		</appender>-->
 
-		<!--灏嗘棩璁板啓鍏ユ暟鎹簱-->
+		<!--姝ゅ灏嗘搷浣滆褰曞啓鍏ユ暟鎹簱,鏃ュ織鍚岀悊-->
 		<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 			<bufferSize value="-1" />
 			<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 			<connectionString value="data source=121.196.36.24,1533;initial catalog=vmes;persist security info=True;user id=sa;password=xkd@20230101;MultipleActiveResultSets=True;" />
-			<commandText value="INSERT INTO T_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
+			<commandText value="insert into T_Take ([op_type],[op_content],[actionclick],[ippath],[lm_user],[lm_date]) 
+						        values (@op_type, @op_content, @actionclick, @ippath, @lm_user, @lm_date)" />
 			<parameter>
-				<parameterName value="@log_date"  />
-				<dbType value="DateTime" />
-				<layout type="log4net.Layout.RawTimeStampLayout" />
-			</parameter>
-			<parameter>
-				<parameterName value="@thread" />
-				<dbType value="String" />
-				<size value="255" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%thread" />
-				</layout>
-			</parameter>
-			<parameter>
-				<parameterName value="@log_level" />
+				<parameterName value="@op_type" />
 				<dbType value="String" />
 				<size value="50" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%level" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{op_type}"/>
 				</layout>
 			</parameter>
 			<parameter>
-				<parameterName value="@logger" />
-				<dbType value="String" />
-				<size value="255" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%logger" />
-				</layout>
-			</parameter>
-			<parameter>
-				<parameterName value="@message" />
+				<parameterName value="@op_content" />
 				<dbType value="String" />
 				<size value="4000" />
-				<layout type="log4net.Layout.PatternLayout">
-					<conversionPattern value="%message" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{op_content}"/>
 				</layout>
 			</parameter>
 			<parameter>
-				<parameterName value="@exception" />
+				<parameterName value="@actionclick" />
 				<dbType value="String" />
-				<size value="2000" />
-				<layout type="log4net.Layout.ExceptionLayout" />
+				<size value="100" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{actionclick}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@ippath" />
+				<dbType value="String" />
+				<size value="100" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{ippath}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@lm_user" />
+				<dbType value="String" />
+				<size value="50" />
+				<layout type="VueWebApi.Log4net.ActionLayoutPattern">
+					<conversionPattern value="%actionInfo{lm_user}"/>
+				</layout>
+			</parameter>
+			<parameter>
+				<parameterName value="@lm_date"  />
+				<dbType value="DateTime" />
+				<layout type="log4net.Layout.RawTimeStampLayout" />
 			</parameter>
 		</appender>
 
diff --git a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
index 2c167a0..fd379a9 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -35,7 +35,18 @@
 		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
 		<!--鎻愪氦json瀛楃涓茶繃闀块棶棰�-->
 		<add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
+		<add key="log4net.Internal.Debug" value="true"/>
 	</appSettings>
+	<system.diagnostics>
+		<trace autoflush="true">
+			<listeners>
+				<add
+					name="textWriterTraceListener"
+					type="System.Diagnostics.TextWriterTraceListener"
+					initializeData="D:\log4net.txt" />
+			</listeners>
+		</trace>
+	</system.diagnostics>
 	<system.web>
 		<compilation debug="true" targetFramework="4.6.1" />
 		<customErrors mode="Off" />
diff --git a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
index 20162ba..8e18d4d 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -35,7 +35,15 @@
     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
     <!--鎻愪氦json瀛楃涓茶繃闀块棶棰�-->
     <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
+    <add key="log4net.Internal.Debug" value="true" />
   </appSettings>
+  <system.diagnostics>
+    <trace autoflush="true">
+      <listeners>
+        <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\log4net.txt" />
+      </listeners>
+    </trace>
+  </system.diagnostics>
   <system.web>
     <compilation targetFramework="4.6.1" />
     <customErrors mode="Off" />
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
index a125132..f5e894a 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index a74d486..0956991 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-1d4e44b5cb3d48d6853a2a835df2fed59566e054
+a846e011ebe7b9ff1188f24629019f1e16661320
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index b7bf42c..2c789ef 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3