From 22af5bed0da8a5852bd824a1e21e6fc43df6df2a Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 11 十二月 2023 19:20:43 +0800
Subject: [PATCH] 1.App 智能分析,生产进度看板接口 2.PC端设备点检项目、保养项目、点检标准、保养标准、点检记录、保养记录、维修记录 3.工序检验扫码添加判断(条码任务是否存在、工单是否关闭) 4.添加App图标图片文件

---
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_5.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_13.png      |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_12.png      |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6.png         |    0 
 VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs            | 3992 ++++++++++++++++++++-----------------------
 VueWebCoreApi/wwwroot/AppMenuImage/app_4_5.png       |    0 
 VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs             |  255 ++
 VueWebCoreApi/wwwroot/AppMenuImage/app_4_1.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_14.png      |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_4.png         |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_6.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_9.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_11.png      |    0 
 VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs            |  433 ++--
 VueWebCoreApi/DLL/BLL/AppAnalyticsBLL.cs             |    7 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_1.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_4_2.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_8.png         |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_8_2.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_7.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_10.png      |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_8.png       |    0 
 VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs        |   25 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_2.png       |    0 
 VueWebCoreApi/Controllers/DeviceManagerController.cs |  658 +++++++
 VueWebCoreApi/wwwroot/AppMenuImage/app_8_1.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_4_3.png       |    0 
 VueWebCoreApi/Tools/TOrganizationRecursion.cs        |   55 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_4.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_4_4.png       |    0 
 VueWebCoreApi/Controllers/AppAnalyticsController.cs  |   27 
 VueWebCoreApi/wwwroot/AppMenuImage/app_2_5.png       |    0 
 VueWebCoreApi/wwwroot/AppMenuImage/app_6_3.png       |    0 
 33 files changed, 3,119 insertions(+), 2,333 deletions(-)

diff --git a/VueWebCoreApi/Controllers/AppAnalyticsController.cs b/VueWebCoreApi/Controllers/AppAnalyticsController.cs
index ed1b268..515e6cb 100644
--- a/VueWebCoreApi/Controllers/AppAnalyticsController.cs
+++ b/VueWebCoreApi/Controllers/AppAnalyticsController.cs
@@ -42,5 +42,32 @@
             return Json(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 JsonResult ProductionScheduleKanban(string ordertype, string partcode = null, string Ratetime = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            //var token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyY29kZSI6Ijk5OCIsInVzZXJuYW1lIjoi5rWL6K-V6LSm5Y-3MSIsInN0b3JnX2NvZGUiOiJTQ0IwMV8xXzEiLCJzdG9yZ19uYW1lIjoi57K-5bel6L2m6Ze0IiwiaXNfc3lzdGVtX2FkbWluIjoiTiIsInJvbGVfY29kZSI6Ijk5OTkiLCJyb2xlX2RhdGFwZXJtaXNzaW9ucyI6IiIsInVzZXJ0eXBlIjoiQVBQIiwicmVkaXNrZXkiOiJOZXdNRVNMb2dpblVzZXJJREFQUDk5OCIsInRpbWVvdXQiOiIyMDIzLTEyLTA3VDE0OjU0OjAzLjU0NDMxMjMrMDg6MDAifQ._L0xdKgeD_dgnedzV8EEN6y2Xad0J7beswuIcNj4OKs";
+            User us = JwtTools.Denocode(token.ToString());
+            string startopendate = "";  //寮�濮嬫椂闂�
+            string endclosedate = "";    //缁撴潫鏃堕棿
+            if (Ratetime != "" && Ratetime != null)
+            {
+                startopendate = Ratetime.Split('~')[0].ToString();
+                endclosedate = Ratetime.Split('~')[1].ToString();
+            }
+            mes = AppAnalyticsBLL.ProductionScheduleKanban(us,ordertype, partcode, startopendate, endclosedate);
+            return Json(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/Controllers/DeviceManagerController.cs b/VueWebCoreApi/Controllers/DeviceManagerController.cs
index 979de29..90a46b1 100644
--- a/VueWebCoreApi/Controllers/DeviceManagerController.cs
+++ b/VueWebCoreApi/Controllers/DeviceManagerController.cs
@@ -45,11 +45,11 @@
         /// <returns></returns>
         [Route(template: "AddUpdateDeviceType")]
         [HttpPost]
-        public JsonResult AddUpdateDeviceType(string OperType,List<ObjectDataCont> json)
+        public JsonResult AddUpdateDeviceType(string OperType, List<ObjectDataCont> json)
         {
             var token = HttpContext.Request.Headers["Token"].ToString();
             User us = JwtTools.Denocode(token.ToString());
-            mes = DeviceManagerBLL.AddUpdateDeviceType(OperType,json, us);
+            mes = DeviceManagerBLL.AddUpdateDeviceType(OperType, json, us);
             return Json(mes);
         }
         #endregion
@@ -117,7 +117,7 @@
             string storgcode = obj["storgcode"].ToString(); //鎵�灞炵粍缁囩紪鐮�
             string status = obj["status"].ToString(); //浣跨敤鐘舵��
             string OperType = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
-            mes = DeviceManagerBLL.AddUpdateDeviceManger(devicecode, devicename, devicetype, storgcode, status,OperType, us);
+            mes = DeviceManagerBLL.AddUpdateDeviceManger(devicecode, devicename, devicetype, storgcode, status, OperType, us);
             return Json(mes);
         }
         #endregion
@@ -138,5 +138,657 @@
             return Json(mes);
         }
         #endregion
+
+
+
+        #region[璁惧鐐规椤瑰垪琛ㄦ煡璇
+        /// <summary>
+        /// 璁惧鐐规椤瑰垪琛ㄦ煡璇�
+        /// </summary>
+        /// <param name="checkitemcode">鐐规閮ㄤ綅缂栫爜</param>
+        /// <param name="checkitemname">鐐规閮ㄤ綅鍚嶇О</param>
+        /// <param name="checkdescr">鐐规瑕佹眰</param>
+        /// <param name="isqrcode">閫変腑鎵爜</param>
+        /// <param name="cycle">鐐规鍛ㄦ湡</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckItemSearch")]
+        [HttpGet]
+        public JsonResult DeviceCheckItemSearch(int page, int rows, string prop, string order, string checkitemcode = null, string checkitemname = null, string checkdescr = null, string isqrcode = null, string cycle = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceCheckItemSearch(checkitemcode, checkitemname, checkdescr, isqrcode, cycle, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规椤规柊澧炵紪杈慮
+        /// <summary>
+        /// 璁惧鐐规椤规柊澧炵紪杈�
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁瀵硅薄</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateDeviceCheckItem")]
+        [HttpPost]
+        public JsonResult AddUpdateDeviceCheckItem([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string checkitemid = obj["id"].ToString();    //璁惧鐐规椤筰d(涓婚敭)
+            string checkitemcode = obj["checkitemcode"].ToString(); //璁惧鐐规閮ㄤ綅缂栫爜
+            string checkitemname = obj["checkitemname"].ToString(); //璁惧鐐规閮ㄤ綅鍚嶇О
+            string checkitemdescr = obj["checkitemdescr"].ToString(); //璁惧鐐规閮ㄤ綅瑕佹眰
+            string cycle = obj["cycle"].ToString(); //璁惧鐐规閮ㄤ綅鍛ㄦ湡
+            string isqrcode = obj["isqrcode"].ToString(); //鏄惁鎵爜
+            string OperType = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
+            mes = DeviceManagerBLL.AddUpdateDeviceCheckItem(checkitemid, checkitemcode, checkitemname, checkitemdescr, cycle, isqrcode, us, OperType);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规椤瑰垹闄
+        /// <summary>
+        /// 璁惧鐐规椤瑰垹闄�
+        /// </summary>
+        /// <param name="checkitemcode">璁惧鐐规椤圭洰(閮ㄤ綅)缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteDeviceCheckItem")]
+        [HttpPost]
+        public JsonResult DeleteDeviceCheckItem(string checkitemcode)
+        {
+            mes = DeviceManagerBLL.DeleteDeviceCheckItem(checkitemcode);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇椤瑰垪琛ㄦ煡璇
+        /// <summary>
+        /// 璁惧淇濆吇椤瑰垪琛ㄦ煡璇�
+        /// </summary>
+        /// <param name="maiitemcode">淇濆吇閮ㄤ綅缂栫爜</param>
+        /// <param name="maiitemname">淇濆吇閮ㄤ綅鍚嶇О</param>
+        /// <param name="maidescr">淇濆吇瑕佹眰</param>
+        /// <param name="isqrcode">閫変腑鎵爜</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DeviceMaiItemSearch")]
+        [HttpGet]
+        public JsonResult DeviceMaiItemSearch(int page, int rows, string prop, string order, string maiitemcode = null, string maiitemname = null, string maidescr = null, string isqrcode = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceMaiItemSearch(maiitemcode, maiitemname, maidescr, isqrcode, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇椤规柊澧炵紪杈慮
+        /// <summary>
+        /// 璁惧淇濆吇椤规柊澧炵紪杈�
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁瀵硅薄</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateDeviceMaiItem")]
+        [HttpPost]
+        public JsonResult AddUpdateDeviceMaiItem([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string maiitemid = obj["id"].ToString();    //璁惧淇濆吇椤筰d(涓婚敭)
+            string maiitemcode = obj["maiitemcode"].ToString(); //璁惧淇濆吇閮ㄤ綅缂栫爜
+            string maiitemname = obj["maiitemname"].ToString(); //璁惧淇濆吇閮ㄤ綅鍚嶇О
+            string maiitemdescr = obj["maiitemdescr"].ToString(); //璁惧淇濆吇閮ㄤ綅瑕佹眰
+            string isqrcode = obj["isqrcode"].ToString(); //鏄惁鎵爜
+            string OperType = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
+            mes = DeviceManagerBLL.AddUpdateDeviceMaiItem(maiitemid, maiitemcode, maiitemname, maiitemdescr, isqrcode, us, OperType);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇椤瑰垹闄
+        /// <summary>
+        /// 璁惧淇濆吇椤瑰垹闄�
+        /// </summary>
+        /// <param name="maiitemcode">璁惧淇濆吇椤圭洰(閮ㄤ綅)缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteDeviceMaiItem")]
+        [HttpPost]
+        public JsonResult DeleteDeviceMaiItem(string maiitemcode)
+        {
+            mes = DeviceManagerBLL.DeleteDeviceMaiItem(maiitemcode);
+            return Json(mes);
+        }
+        #endregion
+
+
+
+        #region[璁惧鐐规鏍囧噯鍒楄〃鏌ヨ]
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鍒楄〃鏌ヨ
+        /// </summary>
+        /// <param name="checkstandcode">鐐规鏍囧噯缂栫爜</param>
+        /// <param name="checkstandname">鐐规鏍囧噯鍚嶇О</param>
+        /// <param name="checkcontr">鐐规绠℃帶</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckStandArdSearch")]
+        [HttpGet]
+        public JsonResult DeviceCheckStandArdSearch(int page, int rows, string prop, string order, string checkstandcode = null, string checkstandname = null, string checkcontr = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceCheckStandArdSearch(us, checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鏂板銆佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛╙
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鏂板銆佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckItemSelect")]
+        [HttpGet]
+        public JsonResult DeviceCheckItemSelect()
+        {
+            mes = DeviceManagerBLL.DeviceCheckItemSelect();
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+        /// </summary>
+        /// <param name="checkstand_code">璁惧鐐规鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "ViewDeviceCheckStanedSearch")]
+        [HttpPost]
+        public JsonResult ViewDeviceCheckStanedSearch(string checkstand_code)
+        {
+            mes = DeviceManagerBLL.ViewDeviceCheckStanedSearch(checkstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鏂板缂栬緫]
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鏂板缂栬緫
+        /// </summary>
+        /// <param name="opertype">鎿嶄綔绫诲瀷</param>
+        /// <param name="json">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateDeviceCheckStandArd")]
+        [HttpPost]
+        public JsonResult AddUpdateDeviceCheckStandArd(string opertype, RoutEdit json)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.AddUpdateDeviceCheckStandArd(opertype, json, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍒犻櫎]
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鍒犻櫎
+        /// </summary>
+        /// <param name="checkstand_code">璁惧鐐规鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteDeviceCheckStaned")]
+        [HttpPost]
+        public JsonResult DeleteDeviceCheckStaned(string checkstand_code)
+        {
+            mes = DeviceManagerBLL.DeleteDeviceCheckStaned(checkstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇�
+        /// </summary>
+        /// <param name="checkstand_code">璁惧鐐规鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckStanedAssociationEqp")]
+        [HttpGet]
+        public JsonResult DeviceCheckStanedAssociationEqp(string checkstand_code)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.DeviceCheckStanedAssociationEqp(us, checkstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region [璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        /// <summary>
+        /// 璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜�
+        /// </summary>
+        /// <param name="checkstand_code">璁惧鐐规鏍囧噯缂栫爜</param>
+        /// <param name="json">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "SaveDeviceCheckStanedAssociationEqp")]
+        [HttpPost]
+        public JsonResult SaveDeviceCheckStanedAssociationEqp(string checkstand_code, List<ObjectData> json)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.SaveDeviceCheckStanedAssociationEqp(us, checkstand_code, json);
+            return Json(mes);
+        }
+        #endregion
+
+
+
+        #region[璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ]
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ
+        /// </summary>
+        /// <param name="repairstandcode">淇濆吇鏍囧噯缂栫爜</param>
+        /// <param name="repairstandname">淇濆吇鏍囧噯鍚嶇О</param>
+        /// <param name="repairstanddescr">淇濆吇鏍囧噯鎻忚堪</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairStandArdSearch")]
+        [HttpGet]
+        public JsonResult DeviceRepairStandArdSearch(int page, int rows, string prop, string order, string repairstandcode = null, string repairstandname = null, string repairstanddescr = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceRepairStandArdSearch(us, repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鏂板銆佺紪杈戣幏鍙栦繚鍏婚」鐩笅鎷夊垪琛╙
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鏂板銆佺紪杈戣幏鍙栦繚鍏婚」鐩笅鎷夊垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairItemSelect")]
+        [HttpGet]
+        public JsonResult DeviceRepairItemSelect()
+        {
+            mes = DeviceManagerBLL.DeviceRepairItemSelect();
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+        /// </summary>
+        /// <param name="repairstand_code">璁惧淇濆吇鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "ViewDeviceRepairStanedSearch")]
+        [HttpPost]
+        public JsonResult ViewDeviceRepairStanedSearch(string repairstand_code)
+        {
+            mes = DeviceManagerBLL.ViewDeviceRepairStanedSearch(repairstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鏂板缂栬緫]
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鏂板缂栬緫
+        /// </summary>
+        /// <param name="opertype">鎿嶄綔绫诲瀷</param>
+        /// <param name="json">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateDeviceRepairStandArd")]
+        [HttpPost]
+        public JsonResult AddUpdateDeviceRepairStandArd(string opertype, EqpRepair json)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.AddUpdateDeviceRepairStandArd(opertype, json, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍒犻櫎]
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鍒犻櫎
+        /// </summary>
+        /// <param name="repairstand_code">璁惧淇濆吇鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteDeviceRepairStaned")]
+        [HttpPost]
+        public JsonResult DeleteDeviceRepairStaned(string repairstand_code)
+        {
+            mes = DeviceManagerBLL.DeleteDeviceRepairStaned(repairstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇�
+        /// </summary>
+        /// <param name="repairstand_code">璁惧淇濆吇鏍囧噯缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairStanedAssociationEqp")]
+        [HttpGet]
+        public JsonResult DeviceRepairStanedAssociationEqp(string repairstand_code)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.DeviceRepairStanedAssociationEqp(us, repairstand_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region [璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        /// <summary>
+        /// 璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜�
+        /// </summary>
+        /// <param name="repairstand_code">璁惧淇濆吇鏍囧噯缂栫爜</param>
+        /// <param name="json">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "SaveDeviceRepairStanedAssociationEqp")]
+        [HttpPost]
+        public JsonResult SaveDeviceRepairStanedAssociationEqp(string repairstand_code, List<ObjectData> json)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = DeviceManagerBLL.SaveDeviceRepairStanedAssociationEqp(us, repairstand_code, json);
+            return Json(mes);
+        }
+        #endregion
+
+
+
+        #region[璁惧鐐规璁板綍鏌ヨ]
+        /// <summary>
+        /// 璁惧鐐规璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栫爜</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鐐规鏍囧噯鍚嶇О</param>
+        /// <param name="checkuser">鐐规浜哄憳</param>
+        /// <param name="checkdate">鐐规鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckTakeSearch")]
+        [HttpGet]
+        public JsonResult DeviceCheckTakeSearch(int page, int rows, string prop, string order, string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string checkuser = null, string checkdate = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string checkopendate = "";//鐐规寮�濮嬫椂闂�
+            string checkclosedate = "";//鐐规缁撴潫鏃堕棿
+            if (checkdate != "" && checkdate != null)
+            {
+                checkopendate = checkdate.Split('~')[0].ToString();
+                checkclosedate = checkdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;//璧峰璁板綍rowNum
+            int endNum = rows * page; //缁撴潫璁板綍rowNum
+            mes = DeviceManagerBLL.DeviceCheckTakeSearch(us, wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 璁惧鐐规璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="djwo">璁惧鐐规鍗曞彿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckSubTakeSearch")]
+        [HttpGet]
+        public JsonResult DeviceCheckSubTakeSearch(string djwo)
+        {
+            mes = DeviceManagerBLL.DeviceCheckSubTakeSearch(djwo);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        /// <summary>
+        /// 璁惧鐐规璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栧彿</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鐐规鏍囧噯鍚嶇О</param>
+        /// <param name="checkuser">鐐规浜哄憳</param>
+        /// <param name="checkdate">鐐规鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceCheckTakeOutExcel")]
+        [HttpGet]
+        public JsonResult DeviceCheckTakeOutExcel(string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string checkuser = null, string checkdate = null)
+        {
+            var Token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(Token.ToString());
+            string checkopendate = "";//鐐规寮�濮嬫椂闂�
+            string checkclosedate = "";//鐐规缁撴潫鏃堕棿
+            if (checkdate != "" && checkdate != null)
+            {
+                checkopendate = checkdate.Split('~')[0].ToString();
+                checkclosedate = checkdate.Split('~')[1].ToString();
+            }
+            mes = DeviceManagerBLL.DeviceCheckTakeOutExcel(us,wkshopcode,eqpcode,eqpname,stanedname,checkuser,checkopendate,checkclosedate);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栫爜</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">淇濆吇鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <returns></returns>
+        public JsonResult DeviceRepairTakeSearch(int page, int rows, string prop, string order, string wkshopcode = null, string eqpcode = null,string eqpname=null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string repairopendate = "";  //鐐规寮�濮嬫椂闂�
+            string repairclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceRepairTakeSearch(us, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="bywo">璁惧淇濆吇鍗曞彿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairSubTakeSearch")]
+        [HttpGet]
+        public JsonResult DeviceRepairSubTakeSearch(string bywo)
+        {
+            mes = DeviceManagerBLL.DeviceRepairSubTakeSearch(bywo);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍瀵煎嚭]
+        /// <summary>
+        /// 璁惧淇濆吇璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栧彿</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="stanedname">鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <returns></returns>
+        [Route(template: "DeviceRepairTakeOutExcel")]
+        [HttpGet]
+        public JsonResult DeviceRepairTakeOutExcel(string wkshopcode = null, string eqpcode = null, string eqpname = null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string repairopendate = "";  //鐐规寮�濮嬫椂闂�
+            string repairclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            mes = DeviceManagerBLL.DeviceRepairTakeOutExcel(us, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[璁惧缁翠慨璁板綍鏌ヨ]
+        /// <summary>
+        /// 璁惧缁翠慨璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栫爜</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="reportuser">鎶ヤ慨浜哄憳</param>
+        /// <param name="repairuser">缁翠慨浜哄憳</param>
+        /// <param name="vrifcatuser">楠岃瘉浜哄憳</param>
+        /// <param name="reportdate">鎶ヤ慨鏃堕棿</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <param name="vrifcatdate">楠岃瘉鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceUpdateSearch")]
+        [HttpGet]
+        public JsonResult DeviceUpdateSearch(int page, int rows, string prop, string order, string wkshopcode = null, string eqpcode = null, string eqpname = null, string reportuser = null, string repairuser = null, string vrifcatuser = null, string reportdate = null, string repairdate = null, string vrifcatdate = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string reportopendate = "";  //鎶ヤ慨寮�濮嬫椂闂�
+            string reportclosedate = "";  //鎶ヤ慨缁撴潫鏃堕棿
+            string repairopendate = "";  //缁翠慨寮�濮嬫椂闂�
+            string repairclosedate = "";  //缁翠慨缁撴潫鏃堕棿
+            string vrifcatopendate = "";  //缁翠慨楠岃瘉寮�濮嬫椂闂�
+            string vrifcatclosedate = "";  //缁翠慨楠岃瘉缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            if (vrifcatdate != "" && vrifcatdate != null)
+            {
+                vrifcatopendate = vrifcatdate.Split('~')[0].ToString();
+                vrifcatclosedate = vrifcatdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = DeviceManagerBLL.DeviceUpdateSearch(us, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧缁翠慨璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 璁惧缁翠慨璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="repair_code">璁惧缁翠慨鍗曞彿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceUpdateSubSearch")]
+        [HttpGet]
+        public JsonResult DeviceUpdateSubSearch(string repair_code)
+        {
+            mes = DeviceManagerBLL.DeviceUpdateSubSearch(repair_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁惧缁翠慨璁板綍瀵煎嚭]
+        /// <summary>
+        /// 璁惧缁翠慨璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+        /// <param name="eqpcode">璁惧缂栫爜</param>
+        /// <param name="eqpname">璁惧鍚嶇О</param>
+        /// <param name="reportuser">鎶ヤ慨浜哄憳</param>
+        /// <param name="repairuser">缁翠慨浜哄憳</param>
+        /// <param name="vrifcatuser">楠岃瘉浜哄憳</param>
+        /// <param name="reportdate">鎶ヤ慨鏃堕棿</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <param name="vrifcatdate">楠岃瘉鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DeviceUpdateOutExcel")]
+        [HttpGet]
+        public JsonResult DeviceUpdateOutExcel(string wkshopcode = null, string eqpcode = null, string eqpname = null, string reportuser = null, string repairuser = null, string vrifcatuser = null, string reportdate = null, string repairdate = null, string vrifcatdate = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string reportopendate = "";  //鎶ヤ慨寮�濮嬫椂闂�
+            string reportclosedate = "";  //鎶ヤ慨缁撴潫鏃堕棿
+            string repairopendate = "";  //缁翠慨寮�濮嬫椂闂�
+            string repairclosedate = "";  //缁翠慨缁撴潫鏃堕棿
+            string vrifcatopendate = "";  //缁翠慨楠岃瘉寮�濮嬫椂闂�
+            string vrifcatclosedate = "";  //缁翠慨楠岃瘉缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            if (vrifcatdate != "" && vrifcatdate != null)
+            {
+                vrifcatopendate = vrifcatdate.Split('~')[0].ToString();
+                vrifcatclosedate = vrifcatdate.Split('~')[1].ToString();
+            }
+            mes = DeviceManagerBLL.DeviceUpdateOutExcel(us, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
+            return Json(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/BLL/AppAnalyticsBLL.cs b/VueWebCoreApi/DLL/BLL/AppAnalyticsBLL.cs
index 243e66c..851eacd 100644
--- a/VueWebCoreApi/DLL/BLL/AppAnalyticsBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/AppAnalyticsBLL.cs
@@ -16,5 +16,12 @@
             return AppAnalyticsDAL.ProductionKanban(us, startopendate, endclosedate,defecttype);
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        public static ToMessage ProductionScheduleKanban(User us, string ordertype, string partcode, string startopendate, string endclosedate)
+        {
+            return AppAnalyticsDAL.ProductionScheduleKanban(us, ordertype, partcode, startopendate, endclosedate);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs b/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
index 1817de9..9359db2 100644
--- a/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
@@ -58,222 +58,6 @@
 
 
 
-        #region[璁惧鐐规椤瑰垪琛ㄦ煡璇
-        public static ToMessage DeviceCheckItemSearch(string checkitemcode, string checkitemname, string checkdescr, string isqrcode, string cycle, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceCheckItemSearch(checkitemcode, checkitemname, checkdescr, isqrcode, cycle, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧鐐规椤规柊澧炵紪杈慮
-        public static ToMessage AddUpdateDeviceCheckItem(string checkitemid, string checkitemcode, string checkitemname, string checkitemdescr, string cycle, string isqrcode, string usercode, string operType)
-        {
-            return DeviceManagerDAL.AddUpdateDeviceCheckItem(checkitemid, checkitemcode, checkitemname, checkitemdescr, cycle, isqrcode, usercode, operType);
-        }
-        #endregion
-
-        #region[璁惧鐐规椤瑰垹闄
-        public static ToMessage DeleteDeviceCheckItem(string checkitemcode)
-        {
-            return DeviceManagerDAL.DeleteDeviceCheckItem(checkitemcode);
-        }
-        #endregion
-
-
-        #region[璁惧淇濆吇椤瑰垪琛ㄦ煡璇
-        public static ToMessage DeviceMaiItemSearch(string maiitemcode, string maiitemname, string maidescr, string isqrcode, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceMaiItemSearch(maiitemcode, maiitemname, maidescr, isqrcode, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇椤规柊澧炵紪杈慮
-        public static ToMessage AddUpdateDeviceMaiItem(string maiitemid, string maiitemcode, string maiitemname, string maiitemdescr, string isqrcode, string usercode, string operType)
-        {
-            return DeviceManagerDAL.AddUpdateDeviceMaiItem(maiitemid, maiitemcode, maiitemname, maiitemdescr, isqrcode, usercode, operType);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇椤瑰垹闄
-        public static ToMessage DeleteDeviceMaiItem(string maiitemcode)
-        {
-            return DeviceManagerDAL.DeleteDeviceMaiItem(maiitemcode);
-        }
-        #endregion
-
-
-
-        #region[璁惧鐐规鏍囧噯鍒楄〃鏌ヨ]
-        public static ToMessage DeviceCheckStandArdSearch(string stu_torgcode, string stu_torgtypecode, string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceCheckStandArdSearch(stu_torgcode, stu_torgtypecode, checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鏂板銆佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛╙
-        public static ToMessage DeviceCheckItemSelect()
-        {
-            return DeviceManagerDAL.DeviceCheckItemSelect();
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
-        public static ToMessage ViewDeviceCheckStanedSearch(string checkstand_code)
-        {
-            return DeviceManagerDAL.ViewDeviceCheckStanedSearch(checkstand_code);
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鏂板缂栬緫]
-        public static ToMessage AddUpdateDeviceCheckStandArd(string opertype, RoutEdit json, string username)
-        {
-            return DeviceManagerDAL.AddUpdateDeviceCheckStandArd(opertype, json, username);
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鍒犻櫎]
-        public static ToMessage DeleteDeviceCheckStaned(string checkstand_code)
-        {
-            return DeviceManagerDAL.DeleteDeviceCheckStaned(checkstand_code);
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
-        public static ToMessage DeviceCheckStanedAssociationEqp(string stu_torgcode, string description, string checkstand_code)
-        {
-            return DeviceManagerDAL.DeviceCheckStanedAssociationEqp(stu_torgcode, description, checkstand_code);
-        }
-        #endregion
-
-        #region [璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
-        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string checkstand_code, string username, List<ObjectData> json)
-        {
-            return DeviceManagerDAL.SaveDeviceCheckStanedAssociationEqp(stu_torgcode, stu_torgtypecode, checkstand_code, username, json);
-        }
-        #endregion
-
-
-
-        #region[璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ]
-        public static ToMessage DeviceRepairStandArdSearch(string stu_torgcode, string stu_torgtypecode, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceRepairStandArdSearch(stu_torgcode, stu_torgtypecode, repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鏂板銆佺紪杈戣幏鍙栦繚鍏婚」鐩笅鎷夊垪琛╙
-        public static ToMessage DeviceRepairItemSelect()
-        {
-            return DeviceManagerDAL.DeviceRepairItemSelect();
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
-        public static ToMessage ViewDeviceRepairStanedSearch(string repairstand_code)
-        {
-            return DeviceManagerDAL.ViewDeviceRepairStanedSearch(repairstand_code);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鏂板缂栬緫]
-        public static ToMessage AddUpdateDeviceRepairStandArd(string opertype, EqpRepair json, string username)
-        {
-            return DeviceManagerDAL.AddUpdateDeviceRepairStandArd(opertype, json, username);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鍒犻櫎]
-        public static ToMessage DeleteDeviceRepairStaned(string repairstand_code)
-        {
-            return DeviceManagerDAL.DeleteDeviceRepairStaned(repairstand_code);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
-        public static ToMessage DeviceRepairStanedAssociationEqp(string stu_torgcode, string description, string repairstand_code)
-        {
-            return DeviceManagerDAL.DeviceRepairStanedAssociationEqp(stu_torgcode, description, repairstand_code);
-        }
-        #endregion
-
-        #region [璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
-        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string repairstand_code, string username, List<ObjectData> json)
-        {
-            return DeviceManagerDAL.SaveDeviceRepairStanedAssociationEqp(stu_torgcode, stu_torgtypecode, repairstand_code, username, json);
-        }
-        #endregion
-
-
-
-        #region[璁惧鐐规璁板綍鏌ヨ]
-        public static ToMessage DeviceCheckTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceCheckTakeSearch(stu_torgcode, description, wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
-        public static ToMessage DeviceCheckSubTakeSearch(string djwo)
-        {
-            return DeviceManagerDAL.DeviceCheckSubTakeSearch(djwo);
-        }
-        #endregion
-
-        #region[璁惧鐐规璁板綍瀵煎嚭]
-        public static ToMessage DeviceCheckTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
-        {
-            return DeviceManagerDAL.DeviceCheckTakeOutExcel(stu_torgcode, description, wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate);
-        }
-        #endregion
-
-
-
-        #region[璁惧淇濆吇璁板綍鏌ヨ]
-        public static ToMessage DeviceRepairTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceCheckTakeSearch(stu_torgcode, description, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
-        public static ToMessage DeviceRepairSubTakeSearch(string bywo)
-        {
-            return DeviceManagerDAL.DeviceRepairSubTakeSearch(bywo);
-        }
-        #endregion
-
-        #region[璁惧淇濆吇璁板綍瀵煎嚭]
-        public static ToMessage DeviceRepairTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
-        {
-            return DeviceManagerDAL.DeviceRepairTakeOutExcel(stu_torgcode, description, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
-        }
-        #endregion
-
-
-
-        #region[璁惧缁翠慨璁板綍鏌ヨ]
-        public static ToMessage DeviceUpdateSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate, int startNum, int endNum, string prop, string order)
-        {
-            return DeviceManagerDAL.DeviceUpdateSearch(stu_torgcode, description, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
-        }
-        #endregion
-
-        #region[璁惧缁翠慨璁板綍鏄庣粏鏌ヨ]
-        public static ToMessage DeviceUpdateSubSearch(string repair_code)
-        {
-            return DeviceManagerDAL.DeviceUpdateSubSearch(repair_code);
-        }
-        #endregion
-
-        #region[璁惧缁翠慨璁板綍瀵煎嚭]
-        public static ToMessage DeviceUpdateOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
-        {
-            return DeviceManagerDAL.DeviceUpdateOutExcel(stu_torgcode, description, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
-        }
-        #endregion
-
-
-
 
 
 
@@ -315,11 +99,226 @@
         }
         #endregion
 
-        #region[#region[璁惧淇℃伅鍒犻櫎]]
+        #region[璁惧淇℃伅鍒犻櫎]
         public static ToMessage DeleteDeviceManger(string devicecode,User us)
         {
             return DeviceManagerDAL.DeleteDeviceManger(devicecode,us);
         }
         #endregion
+
+
+        #region[璁惧鐐规椤瑰垪琛ㄦ煡璇
+        public static ToMessage DeviceCheckItemSearch(string checkitemcode, string checkitemname, string checkdescr, string isqrcode, string cycle, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceCheckItemSearch(checkitemcode, checkitemname, checkdescr, isqrcode, cycle, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧鐐规椤规柊澧炵紪杈慮
+        public static ToMessage AddUpdateDeviceCheckItem(string checkitemid, string checkitemcode, string checkitemname, string checkitemdescr, string cycle, string isqrcode, User us, string operType)
+        {
+            return DeviceManagerDAL.AddUpdateDeviceCheckItem(checkitemid, checkitemcode, checkitemname, checkitemdescr, cycle, isqrcode, us, operType);
+        }
+        #endregion
+
+        #region[璁惧鐐规椤瑰垹闄
+        public static ToMessage DeleteDeviceCheckItem(string checkitemcode)
+        {
+            return DeviceManagerDAL.DeleteDeviceCheckItem(checkitemcode);
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇椤瑰垪琛ㄦ煡璇
+        public static ToMessage DeviceMaiItemSearch(string maiitemcode, string maiitemname, string maidescr, string isqrcode, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceMaiItemSearch(maiitemcode, maiitemname, maidescr, isqrcode, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇椤规柊澧炵紪杈慮
+        public static ToMessage AddUpdateDeviceMaiItem(string maiitemid, string maiitemcode, string maiitemname, string maiitemdescr, string isqrcode, User us, string operType)
+        {
+            return DeviceManagerDAL.AddUpdateDeviceMaiItem(maiitemid, maiitemcode, maiitemname, maiitemdescr, isqrcode, us, operType);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇椤瑰垹闄
+        public static ToMessage DeleteDeviceMaiItem(string maiitemcode)
+        {
+            return DeviceManagerDAL.DeleteDeviceMaiItem(maiitemcode);
+        }
+        #endregion
+
+
+
+        #region[璁惧鐐规鏍囧噯鍒楄〃鏌ヨ]
+        public static ToMessage DeviceCheckStandArdSearch(User us, string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceCheckStandArdSearch(us, checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鏂板銆佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛╙
+        public static ToMessage DeviceCheckItemSelect()
+        {
+            return DeviceManagerDAL.DeviceCheckItemSelect();
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        public static ToMessage ViewDeviceCheckStanedSearch(string checkstand_code)
+        {
+            return DeviceManagerDAL.ViewDeviceCheckStanedSearch(checkstand_code);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鏂板缂栬緫]
+        public static ToMessage AddUpdateDeviceCheckStandArd(string opertype, RoutEdit json, User us)
+        {
+            return DeviceManagerDAL.AddUpdateDeviceCheckStandArd(opertype, json, us);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍒犻櫎]
+        public static ToMessage DeleteDeviceCheckStaned(string checkstand_code)
+        {
+            return DeviceManagerDAL.DeleteDeviceCheckStaned(checkstand_code);
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        public static ToMessage DeviceCheckStanedAssociationEqp(User us, string checkstand_code)
+        {
+            return DeviceManagerDAL.DeviceCheckStanedAssociationEqp(us, checkstand_code);
+        }
+        #endregion
+
+        #region [璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        public static ToMessage SaveDeviceCheckStanedAssociationEqp(User us, string checkstand_code, List<ObjectData> json)
+        {
+            return DeviceManagerDAL.SaveDeviceCheckStanedAssociationEqp(us, checkstand_code, json);
+        }
+        #endregion
+
+
+
+        #region[璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ]
+        public static ToMessage DeviceRepairStandArdSearch(User us, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceRepairStandArdSearch(us, repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鏂板銆佺紪杈戣幏鍙栦繚鍏婚」鐩笅鎷夊垪琛╙
+        public static ToMessage DeviceRepairItemSelect()
+        {
+            return DeviceManagerDAL.DeviceRepairItemSelect();
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        public static ToMessage ViewDeviceRepairStanedSearch(string repairstand_code)
+        {
+            return DeviceManagerDAL.ViewDeviceRepairStanedSearch(repairstand_code);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鏂板缂栬緫]
+        public static ToMessage AddUpdateDeviceRepairStandArd(string opertype, EqpRepair json, User us)
+        {
+            return DeviceManagerDAL.AddUpdateDeviceRepairStandArd(opertype, json, us);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍒犻櫎]
+        public static ToMessage DeleteDeviceRepairStaned(string repairstand_code)
+        {
+            return DeviceManagerDAL.DeleteDeviceRepairStaned(repairstand_code);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        public static ToMessage DeviceRepairStanedAssociationEqp(User us, string repairstand_code)
+        {
+            return DeviceManagerDAL.DeviceRepairStanedAssociationEqp(us, repairstand_code);
+        }
+        #endregion
+
+        #region [璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        public static ToMessage SaveDeviceRepairStanedAssociationEqp(User us, string repairstand_code, List<ObjectData> json)
+        {
+            return DeviceManagerDAL.SaveDeviceRepairStanedAssociationEqp(us, repairstand_code, json);
+        }
+        #endregion
+
+
+
+        #region[璁惧鐐规璁板綍鏌ヨ]
+        public static ToMessage DeviceCheckTakeSearch(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceCheckTakeSearch(us, wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧鐐规璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage DeviceCheckSubTakeSearch(string djwo)
+        {
+            return DeviceManagerDAL.DeviceCheckSubTakeSearch(djwo);
+        }
+        #endregion
+
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        public static ToMessage DeviceCheckTakeOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
+        {
+            return DeviceManagerDAL.DeviceCheckTakeOutExcel(us, wkshopcode, eqpcode, eqpname, stanedname, checkuser, checkopendate, checkclosedate);
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        public static ToMessage DeviceRepairTakeSearch(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceCheckTakeSearch(us, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage DeviceRepairSubTakeSearch(string bywo)
+        {
+            return DeviceManagerDAL.DeviceRepairSubTakeSearch(bywo);
+        }
+        #endregion
+
+        #region[璁惧淇濆吇璁板綍瀵煎嚭]
+        public static ToMessage DeviceRepairTakeOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            return DeviceManagerDAL.DeviceRepairTakeOutExcel(us, wkshopcode, eqpcode, eqpname, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+        }
+        #endregion
+
+
+
+        #region[璁惧缁翠慨璁板綍鏌ヨ]
+        public static ToMessage DeviceUpdateSearch(User us, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return DeviceManagerDAL.DeviceUpdateSearch(us, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁惧缁翠慨璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage DeviceUpdateSubSearch(string repair_code)
+        {
+            return DeviceManagerDAL.DeviceUpdateSubSearch(repair_code);
+        }
+        #endregion
+
+        #region[璁惧缁翠慨璁板綍瀵煎嚭]
+        public static ToMessage DeviceUpdateOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
+        {
+            return DeviceManagerDAL.DeviceUpdateOutExcel(us, wkshopcode, eqpcode, eqpname, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
+        }
+        #endregion
+
     }
 }
diff --git a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
index 5e3289f..336c300 100644
--- a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -30,7 +30,7 @@
             try
             {
                 //鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
-                mes = TOrganizationRecursion.TOrgCodeSeach("SCB");
+                mes = TOrganizationRecursion.TOrgCodeSeach(us.storg_code);
                 if (mes.code == "300")
                 {
                     return mes;
@@ -78,5 +78,258 @@
             return mes;
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        public static ToMessage ProductionScheduleKanban(User us, 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 = "", search1 = "", sql = "", torg_codelist = "";
+            DataTable dt;
+            try
+            {
+                //鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
+                mes = TOrganizationRecursion.TOrgCodeSeachNo(us.storg_code);
+                if (mes.code == "300")
+                {
+                    return mes;
+                }
+                else
+                {
+                    torg_codelist = mes.data.ToString(); //鑾峰彇缁勭粐闆嗗悎
+                    string[] torglist = Array.ConvertAll<string, string>(torg_codelist.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                    search1 += " and A.wkshp_code in @wkshp_code ";
+                    dynamicParams.Add("@wkshp_code", torglist.ToArray());
+                }
+                
+                //鏍规嵁鏌ヨ鏉′欢,鏌ユ壘绗﹀悎瑕佹眰鐨勫崟鎹�
+                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 + search1 + " 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
+
     }
 }
diff --git a/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs b/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
index ab8bc86..1ff294c 100644
--- a/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
@@ -261,2114 +261,6 @@
 
 
 
-        #region[璁惧鐐规椤瑰垪琛ㄦ煡璇
-        public static ToMessage DeviceCheckItemSearch(string checkitemcode, string checkitemname, string checkdescr, string isqrcode, string cycle, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (checkitemcode != "" && checkitemcode != null)
-                {
-                    search += "and A.code like '%'+@checkitemcode+'%' ";
-                    dynamicParams.Add("@checkitemcode", checkitemcode);
-                }
-                if (checkitemname != "" && checkitemname != null)
-                {
-                    search += "and A.name like '%'+@checkitemname+'%' ";
-                    dynamicParams.Add("@checkitemname", checkitemname);
-                }
-                if (checkdescr != "" && checkdescr != null)
-                {
-                    search += "and A.description like '%'+@checkdescr+'%' ";
-                    dynamicParams.Add("@checkdescr", checkdescr);
-                }
-                if (isqrcode != "" && isqrcode != null)
-                {
-                    search += "and A.isscan=@isqrcode ";
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                }
-                if (cycle != "" && cycle != null)
-                {
-                    search += "and A.cycle=@cycle ";
-                    dynamicParams.Add("@cycle", cycle);
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.code,A.name,A.description,A.isscan,A.cycle,U.username as lm_user,A.lm_date 
-                            from TEqpchk_Item A
-                            left join TUser U on A.lm_user=U.usercode
-                            where A.is_delete<>'1' " + 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 AddUpdateDeviceCheckItem(string checkitemid, string checkitemcode, string checkitemname, string checkitemdescr, string cycle, string isqrcode, string usercode, string operType)
-        {
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                if (operType == "Add")
-                {
-                    var sql = @"insert into TEqpchk_Item(code,name,description,isscan,cycle,lm_user,lm_date) 
-                              values(@checkitemcode,@checkitemname,@checkitemdescr,@isqrcode,@cycle,@usercode,@CreateDate)";
-                    dynamicParams.Add("@checkitemcode", checkitemcode);
-                    dynamicParams.Add("@checkitemname", checkitemname);
-                    dynamicParams.Add("@checkitemdescr", checkitemdescr);
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                    dynamicParams.Add("@cycle", cycle);
-                    dynamicParams.Add("@usercode", usercode);
-                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
-                    int cont = DapperHelper.SQL(sql, dynamicParams);
-                    if (cont > 0)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鏂板鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鏂板鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-                if (operType == "Update")
-                {
-                    var sql = @"update TEqpchk_Item set name=@checkitemname,description=@checkitemdescr,isscan=@isqrcode,cycle=@cycle,
-                                lm_user=@usercode,lm_date=@CreateDate
-                                where id=@checkitemid";
-                    dynamicParams.Add("@checkitemid", checkitemid);
-                    dynamicParams.Add("@checkitemname", checkitemname);
-                    dynamicParams.Add("@checkitemdescr", checkitemdescr);
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                    dynamicParams.Add("@cycle", cycle);
-                    dynamicParams.Add("@usercode", usercode);
-                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
-                    int cont = DapperHelper.SQL(sql, dynamicParams);
-                    if (cont > 0)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "淇敼鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "淇敼鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧鐐规椤瑰垹闄
-        public static ToMessage DeleteDeviceCheckItem(string checkitemcode)
-        {
-            var sql = "";
-            List<object> list = new List<object>();
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                list.Clear();
-                //鍒ゆ柇鐐规鏍囧噯椤圭洰鏄惁鏈夊叧鑱旂偣妫�鏍囧噯,涓嶅厑璁稿垹闄�
-                sql = @"select *  from TEqpchk_Deta
-                        where  code=@checkitemcode";
-                dynamicParams.Add("@checkitemcode", checkitemcode);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                if (data.Rows.Count > 0)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "褰撳墠鐐规椤圭洰宸插叧鑱旀爣鍑�,涓嶅厑璁稿垹闄�!";
-                    mes.data = null;
-                    return mes;
-                }
-
-                //鍒犻櫎鐐规椤圭洰
-                sql = @"delete TEqpchk_Item  where code=@checkitemcode";
-                list.Add(new { str = sql, parm = new { checkitemcode = checkitemcode } });
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "鍒犻櫎鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鍒犻櫎澶辫触!";
-                    mes.data = null;
-                }
-
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-
-
-        #region[璁惧淇濆吇椤瑰垪琛ㄦ煡璇
-        public static ToMessage DeviceMaiItemSearch(string maiitemcode, string maiitemname, string maidescr, string isqrcode, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (maiitemcode != "" && maiitemcode != null)
-                {
-                    search += "and A.code like '%'+@maiitemcode+'%' ";
-                    dynamicParams.Add("@maiitemcode", maiitemcode);
-                }
-                if (maiitemname != "" && maiitemname != null)
-                {
-                    search += "and A.name like '%'+@maiitemname+'%' ";
-                    dynamicParams.Add("@maiitemname", maiitemname);
-                }
-                if (maidescr != "" && maidescr != null)
-                {
-                    search += "and A.description like '%'+@maidescr+'%' ";
-                    dynamicParams.Add("@maidescr", maidescr);
-                }
-                if (isqrcode != "" && isqrcode != null)
-                {
-                    search += "and A.isscan=@isqrcode ";
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.code,A.name,A.description,A.isscan,U.username as lm_user,A.lm_date 
-                            from TEqpmai_Item A
-                            left join TUser U on A.lm_user=U.usercode
-                            where A.is_delete<>'1' " + 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 AddUpdateDeviceMaiItem(string maiitemid, string maiitemcode, string maiitemname, string maiitemdescr, string isqrcode, string usercode, string operType)
-        {
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                if (operType == "Add")
-                {
-                    var sql = @"insert into TEqpmai_Item(code,name,description,isscan,lm_user,lm_date) 
-                              values(@maiitemcode,@maiitemname,@maiitemdescr,@isqrcode,@usercode,@CreateDate)";
-                    dynamicParams.Add("@maiitemcode", maiitemcode);
-                    dynamicParams.Add("@maiitemname", maiitemname);
-                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                    dynamicParams.Add("@usercode", usercode);
-                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
-                    int cont = DapperHelper.SQL(sql, dynamicParams);
-                    if (cont > 0)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鏂板鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鏂板鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-                if (operType == "Update")
-                {
-                    var sql = @"update TEqpmai_Item set name=@maiitemname,description=@maiitemdescr,isscan=@isqrcode,
-                                lm_user=@usercode,lm_date=@CreateDate
-                                where id=@maiitemid";
-                    dynamicParams.Add("@maiitemid", maiitemid);
-                    dynamicParams.Add("@maiitemname", maiitemname);
-                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
-                    dynamicParams.Add("@isqrcode", isqrcode);
-                    dynamicParams.Add("@usercode", usercode);
-                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
-                    int cont = DapperHelper.SQL(sql, dynamicParams);
-                    if (cont > 0)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "淇敼鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "淇敼鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧淇濆吇椤瑰垹闄
-        public static ToMessage DeleteDeviceMaiItem(string maiitemcode)
-        {
-            var sql = "";
-            List<object> list = new List<object>();
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                list.Clear();
-                //鍒ゆ柇淇濆吇鏍囧噯椤圭洰鏄惁鏈夊叧鑱斾繚鍏绘爣鍑�,涓嶅厑璁稿垹闄�
-                sql = @"select *  from TEqpmai_Deta
-                        where  code=@maiitemcode";
-                dynamicParams.Add("@maiitemcode", maiitemcode);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                if (data.Rows.Count > 0)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "褰撳墠淇濆吇椤圭洰宸插叧鑱旀爣鍑�,涓嶅厑璁稿垹闄�!";
-                    mes.data = null;
-                    return mes;
-                }
-
-                //鍒犻櫎淇濆吇椤圭洰
-                sql = @"delete TEqpmai_Item  where code=@maiitemcode";
-                list.Add(new { str = sql, parm = new { maiitemcode = maiitemcode } });
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "鍒犻櫎鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鍒犻櫎澶辫触!";
-                    mes.data = null;
-                }
-
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-
-
-        #region[璁惧鐐规鏍囧噯鍒楄〃鏌ヨ]
-        public static ToMessage DeviceCheckStandArdSearch(string stu_torgcode, string stu_torgtypecode, string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            string search1 = "";
-            try
-            {
-                switch (stu_torgtypecode)
-                {
-                    case "":
-                        break;
-                    case "D":
-                        search1 += "and L.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    case "W":
-                        search1 += "and F.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    default:
-                        break;
-                }
-                if (checkstandcode != "" && checkstandcode != null)
-                {
-                    search += "and A.code like '%'+@checkstandcode+'%' ";
-                    dynamicParams.Add("@checkstandcode", checkstandcode);
-                }
-                if (checkstandname != "" && checkstandname != null)
-                {
-                    search += "and A.name like '%'+@checkstandname+'%' ";
-                    dynamicParams.Add("@checkstandname", checkstandname);
-                }
-                if (checkcontr != "" && checkcontr != null)
-                {
-                    search += "and A.iscontr=@checkcontr ";
-                    dynamicParams.Add("@checkcontr", checkcontr);
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,
-                            (case when isnull(M.eqpchkmain_code,'')='' then 'N' else 'Y' end) as is_checkeqp,U.username as lm_user,A.lm_date 
-                            from TEqpchk_Main A
-                            left join TUser U on A.lm_user=U.usercode
-                            left join (
-                            select distinct eqpchkmain_code from TEqpchk_Eqp M
-                            left join TOrganization F on M.torg_code=F.org_code 
-                            left join TOrganization as L on F.parent_id=L.id 
-                            where  1=1 " + search1 + ")  M on A.code=M.eqpchkmain_code where A.is_delete<>'1' " + 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 DeviceCheckItemSelect()
-        {
-            string sql = "";
-            try
-            {
-                //鑾峰彇璁惧鐐规椤圭洰鏁版嵁
-                sql = @"select code,name,description from TEqpchk_Item 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[璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
-        public static ToMessage ViewDeviceCheckStanedSearch(string checkstand_code)
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                //鑾峰彇璁惧鐐规鏍囧噯淇℃伅
-                sql = @"select code,name,description,iscontr
-                        from TEqpchk_Main
-                        where code=@checkstand_code and is_delete<>'1'";
-                dynamicParams.Add("@checkstand_code", checkstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                RoutEdit rout = new RoutEdit();
-                if (data.Rows.Count > 0)
-                {
-                    rout.code = data.Rows[0]["CODE"].ToString();
-                    rout.name = data.Rows[0]["NAME"].ToString();
-                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
-                    rout.enable = data.Rows[0]["ISCONTR"].ToString();
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鏃犵偣妫�鏍囧噯淇℃伅!";
-                    mes.data = null;
-                    return mes;
-                }
-                //鏍规嵁璁惧鐐规鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勬楠岄」鐩俊鎭�
-                sql = @"select B.code,B.name,A.chkdesc,A.isscan,A.cycle  from TEqpchk_Deta A
-                        left join TEqpchk_Item  B on A.code=B.code
-                        where  A.eqpchk_main_code=@checkstaned_code order by A.seq asc";
-                dynamicParams.Add("@checkstaned_code", rout.code);
-                var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                rout.Data = data0;
-
-                mes.code = "200";
-                mes.message = "鏌ヨ鎴愬姛!";
-                mes.data = rout;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鏂板缂栬緫]
-        public static ToMessage AddUpdateDeviceCheckStandArd(string opertype, RoutEdit json, string username)
-        {
-            var sql = "";
-            var dynamicParams = new DynamicParameters();
-            List<object> list = new List<object>();
-            try
-            {
-                if (opertype == "Add")
-                {
-                    //鏂板璁惧鐐规鏍囧噯涓昏〃
-                    sql = @"insert into TEqpchk_Main(code,name,description,iscontr,lm_user,lm_date) values(@code,@name,@descr,@iscontr,@lm_user,@lm_date)";
-                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, iscontr = json.enable, lm_user = username, lm_date = DateTime.Now.ToString() } });
-                    for (int i = 0; i < json.Data.Rows.Count; i++)
-                    {
-                        //鏂板璁惧鐐规鏍囧噯鍏宠仈鐐规椤瑰瓙琛�
-                        sql = @"insert TEqpchk_Deta (seq,code,name,eqpchk_main_code,cycle,chkdesc,isscan,lm_user,lm_date) 
-                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@code,@cycle,@chkdesc,@isscan,@lm_user,@lm_date)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
-                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
-                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
-                                code = json.code,
-                                cycle = json.Data.Rows[i]["CYCLE"].ToString(),
-                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
-                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString()
-                            }
-                        });
-                    }
-                    bool aa = DapperHelper.DoTransaction(list);
-                    if (aa)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-                if (opertype == "Update")
-                {
-                    //鍒犻櫎鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
-                    sql = @"delete from TEqpchk_Deta where eqpchk_main_code=@checkstaned_code";
-                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code } });
-                    //淇敼鐐规鏍囧噯涓昏〃
-                    sql = @"update  TEqpchk_Main set name=@checkstaned_name,description=@checkstaned_desc,iscontr=@iscontr where code=@checkstaned_code";
-                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description, iscontr = json.enable } });
-                    //鏂板鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
-                    for (int i = 0; i < json.Data.Rows.Count; i++)
-                    {
-                        sql = @"insert TEqpchk_Deta (seq,code,name,eqpchk_main_code,cycle,chkdesc,isscan,lm_user,lm_date) 
-                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@code,@cycle,@chkdesc,@isscan,@lm_user,@lm_date)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
-                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
-                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
-                                code = json.code,
-                                cycle = json.Data.Rows[i]["CYCLE"].ToString(),
-                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
-                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString()
-                            }
-                        });
-                    }
-
-                    bool aa = DapperHelper.DoTransaction(list);
-                    if (aa)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鍒犻櫎]
-        public static ToMessage DeleteDeviceCheckStaned(string checkstand_code)
-        {
-            var sql = "";
-            List<object> list = new List<object>();
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                sql = @"select * from  TEqpchk_Proc_Main  where eqpchkmain_code=@checkstand_code";
-                dynamicParams.Add("@checkstand_code", checkstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                if (data.Rows.Count > 0)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "褰撳墠鐐规鏍囧噯宸茬敓鎴愮偣妫�璁板綍,涓嶅厑璁稿垹闄�!";
-                    mes.data = null;
-                    return mes;
-                }
-                //鍒犻櫎璁惧鐐规鏍囧噯涓昏〃
-                sql = @"delete TEqpchk_Main  where code=@checkstand_code";
-                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
-                //鍒犻櫎璁惧鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
-                sql = @"delete TEqpchk_Deta  where eqpchk_main_code=@checkstand_code";
-                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
-                //鍒犻櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛�
-                sql = @"delete TEqpchk_Eqp  where eqpchkmain_code=@checkstand_code";
-                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "璁惧鐐规鏍囧噯鍒犻櫎鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "璁惧鐐规鏍囧噯鍒犻櫎澶辫触!";
-                    mes.data = null;
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
-        public static ToMessage DeviceCheckStanedAssociationEqp(string stu_torgcode, string description, string checkstand_code)
-        {
-            string sql = "";
-            string search = "";
-            var dynamicParams = new DynamicParameters();
-            List<StandEqp> list = new List<StandEqp>();
-            try
-            {
-                switch (description)
-                {
-                    case "":
-                        break;
-                    case "D":
-                        search += "and T.org_code=@stu_torgcode or child.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    case "W":
-                        search += "and T.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    default:
-                        break;
-                }
-                //鑾峰彇宸ヤ綔绔欓泦鍚�(杞﹂棿,鍖呭惈宸茬粦瀹氬伐浣滅珯鏍囪瘑)
-                sql = @"select distinct T.org_code as wksp_code,T.org_name as wksp_name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag 
-                        from TOrganization T
-                        left join TOrganization as child on T.parent_id=child.id 
-                        left join(
-                        select distinct A.eqp_code,B.wksp_code  from TEqpchk_Eqp A 
-                        inner join TEqpInfo B on A.eqp_code=B.code 
-                        where A.eqpchkmain_code=@checkstand_code and A.is_delete<>'1' and B.is_delete<>'1'
-                        ) B on T.org_code=B.wksp_code where T.description='W' and T.is_delete<>'1' " + search;
-                dynamicParams.Add("@checkstand_code", checkstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                for (int i = 0; i < data.Rows.Count; i++)
-                {
-                    StandEqp rout = new StandEqp();
-                    rout.code = data.Rows[i]["WKSP_CODE"].ToString();
-                    rout.name = data.Rows[i]["WKSP_NAME"].ToString();
-                    rout.type = data.Rows[i]["TYPE"].ToString();
-                    rout.flag = data.Rows[i]["FLAG"].ToString();
-                    rout.children = new List<StandEqpCn>();
-                    //鏍规嵁杞﹂棿缂栫爜鏌ユ壘璁惧(鍖呭惈宸插叧鑱旀爣璇�)
-                    //sql = @"select A.code,A.name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag
-                    //        from TEqpInfo A
-                    //        left join(
-                    //        select distinct A.eqp_code  from TEqpchk_Eqp A 
-                    //        inner join TEqpInfo B on A.eqp_code=B.code 
-                    //        where A.eqpchkmain_code=@checkstand_code and A.is_delete<>'1' and B.is_delete<>'1'
-                    //        ) B on A.code=B.eqp_code where A.wksp_code=@wkspcode and A.is_delete<>'1'";
-                    sql = @"select *  from(
-                            select AA.code,AA.name,'E' as type,(case when BB.eqpchkmain_code is null then 'N' else 'Y' end) flag,(case when AA.eqpchkmain_code  is null then 'N' else 'Y' end) flage1
-                            from(
-                            select A.code,A.name,'' as eqpchkmain_code
-                            from TEqpInfo A
-                            where A.wksp_code=@wkspcode and A.is_delete<>'1' 
-                            ) as AA
-                            left join (
-                             select A.code,A.name,B.eqpchkmain_code
-                             from TEqpInfo A
-                             inner join TEqpchk_Eqp B on A.code=B.eqp_code
-                             where A.wksp_code=@wkspcode and B.eqpchkmain_code=@checkstand_code and A.is_delete<>'1'
-                            ) as BB on AA.code=BB.code
-                            ) as CC ";  //where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1
-                    dynamicParams.Add("@checkstand_code", checkstand_code);
-                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
-                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                    for (int j = 0; j < data0.Rows.Count; j++)
-                    {
-                        StandEqpCn cn = new StandEqpCn();
-                        cn.code = data0.Rows[j]["CODE"].ToString();//璁惧缂栫爜
-                        cn.name = data0.Rows[j]["NAME"].ToString();//璁惧鍚嶇О
-                        cn.type = data0.Rows[j]["TYPE"].ToString();//宸ヤ綔绔欑被鍨�(E:璁惧 W:澶栧崗渚涙柟)
-                        cn.flag = data0.Rows[j]["FLAG"].ToString();//鍏宠仈鏍囪瘑
-                        rout.children.Add(cn);
-                    }
-                    list.Add(rout);
-                }
-                mes.code = "200";
-                mes.message = "鏌ヨ鎴愬姛!";
-                mes.data = list;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region [璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
-        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string checkstand_code, string username, List<ObjectData> json)
-        {
-            var sql = "";
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            List<object> list = new List<object>();
-            try
-            {
-                list.Clear();
-                switch (stu_torgtypecode)
-                {
-                    case "":
-                        //娓呴櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
-                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
-                        break;
-                    case "D":
-                        //娓呴櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  L.org_code=@stu_torgcode)";
-                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
-                        break;
-                    case "W":
-                        //娓呴櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  T.org_code=@stu_torgcode)";
-                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
-                        break;
-                }
-                if (json != null && json.Count > 0)
-                {
-                    //寰幆鍐欏叆璁惧鐐规鏍囧噯鍏宠仈璁惧琛�
-                    for (int i = 0; i < json.Count; i++)
-                    {
-                        sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date,torg_code) values(@checkstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                eqp_code = json[i].code,
-                                checkstand_code = checkstand_code,
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString(),
-                                torg_code = json[i].flag
-                            }
-                        });
-                    }
-                }
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "鎿嶄綔鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鎿嶄綔澶辫触!";
-                    mes.data = null;
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-
-
-        #region[璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ]
-        public static ToMessage DeviceRepairStandArdSearch(string stu_torgcode, string stu_torgtypecode, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            string search1 = "";
-            try
-            {
-                switch (stu_torgtypecode)
-                {
-                    case "":
-                        break;
-                    case "D":
-                        search1 += "and L.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    case "W":
-                        search1 += "and F.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    default:
-                        break;
-                }
-                if (repairstandcode != "" && repairstandcode != null)
-                {
-                    search += "and A.code like '%'+@repairstandcode+'%' ";
-                    dynamicParams.Add("@repairstandcode", repairstandcode);
-                }
-                if (repairstandname != "" && repairstandname != null)
-                {
-                    search += "and A.name like '%'+@repairstandname+'%' ";
-                    dynamicParams.Add("@repairstandname", repairstandname);
-                }
-                if (repairstanddescr != "" && repairstanddescr != null)
-                {
-                    search += "and A.description like '%'+@repairstanddescr+'%' ";
-                    dynamicParams.Add("@repairstanddescr", repairstanddescr);
-                }
-
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.code,A.name,A.description,
-                            (case when isnull(M.eapmai_code,'')='' then 'N' else 'Y' end) as is_repaireqp,
-                            A.main_cycle,U.username as lm_user,A.lm_date 
-                            from TEqpmai_Main A
-                            left join TUser U on A.lm_user=U.usercode
-                            left join (
-                            select distinct eapmai_code from TEqpmai_Eqp M
-                            left join TOrganization F on M.torg_code=F.org_code 
-                            left join TOrganization as L on F.parent_id=L.id 
-                            where  1=1 " + search1 + ")  M on A.code=M.eapmai_code where A.is_delete<>'1' " + 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 DeviceRepairItemSelect()
-        {
-            string sql = "";
-            try
-            {
-                //鑾峰彇璁惧淇濆吇椤圭洰鏁版嵁
-                sql = @"select code,name,description from TEqpmai_Item 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[璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
-        public static ToMessage ViewDeviceRepairStanedSearch(string repairstand_code)
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                //鑾峰彇璁惧淇濆吇鏍囧噯淇℃伅
-                sql = @"select code,name,description,main_cycle
-                        from TEqpmai_Main
-                        where code=@repairstand_code and is_delete<>'1'";
-                dynamicParams.Add("@repairstand_code", repairstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                EqpRepair rout = new EqpRepair();
-                if (data.Rows.Count > 0)
-                {
-                    rout.code = data.Rows[0]["CODE"].ToString();
-                    rout.name = data.Rows[0]["NAME"].ToString();
-                    rout.repaircycle = data.Rows[0]["MAIN_CYCLE"].ToString();
-                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鏃犱繚鍏绘爣鍑嗕俊鎭�!";
-                    mes.data = null;
-                    return mes;
-                }
-                //鏍规嵁璁惧淇濆吇鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勪繚鍏婚」鐩俊鎭�
-                sql = @"select B.code,B.name,A.chk_desc,A.isscan,A.cycle  from TEqpmai_Deta A
-                        left join TEqpmai_Item  B on A.code=B.code
-                        where  A.eapmai_code=@repairstand_code order by A.seq asc";
-                dynamicParams.Add("@repairstand_code", rout.code);
-                var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                rout.Data = data0;
-
-                mes.code = "200";
-                mes.message = "鏌ヨ鎴愬姛!";
-                mes.data = rout;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鏂板缂栬緫]
-        public static ToMessage AddUpdateDeviceRepairStandArd(string opertype, EqpRepair json, string username)
-        {
-            var sql = "";
-            var dynamicParams = new DynamicParameters();
-            List<object> list = new List<object>();
-            try
-            {
-                if (opertype == "Add")
-                {
-                    //鏂板璁惧淇濆吇鏍囧噯涓昏〃
-                    sql = @"insert into TEqpmai_Main(code,name,description,main_cycle,lm_user,lm_date) values(@code,@name,@descr,@main_cycle,@lm_user,@lm_date)";
-                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, main_cycle = json.repaircycle, lm_user = username, lm_date = DateTime.Now.ToString() } });
-                    for (int i = 0; i < json.Data.Rows.Count; i++)
-                    {
-                        //鏂板璁惧淇濆吇鏍囧噯鍏宠仈淇濆吇椤瑰瓙琛�
-                        sql = @"insert TEqpmai_Deta (seq,code,name,eapmai_code,chk_desc,isscan,lm_user,lm_date) 
-                                values(@repairitem_seq,@repairitem_code,@repairitem_name,@code,@repairdesc,@isscan,@lm_user,@lm_date)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                repairitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
-                                repairitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
-                                repairitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
-                                code = json.code,
-                                repairdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
-                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString()
-                            }
-                        });
-                    }
-                    bool aa = DapperHelper.DoTransaction(list);
-                    if (aa)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-                if (opertype == "Update")
-                {
-                    //鍒犻櫎淇濆吇鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
-                    sql = @"delete from TEqpmai_Deta where eapmai_code=@repairstaned_code";
-                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code } });
-                    //淇敼淇濆吇鏍囧噯涓昏〃
-                    sql = @"update  TEqpmai_Main set name=@repairstaned_name,description=@repairstaned_desc,main_cycle=@main_cycle where code=@repairstaned_code";
-                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code, repairstaned_name = json.name, repairstaned_desc = json.description, main_cycle = json.repaircycle } });
-                    //鏂板鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
-                    for (int i = 0; i < json.Data.Rows.Count; i++)
-                    {
-                        sql = @"insert TEqpmai_Deta (seq,code,name,eapmai_code,chk_desc,isscan,lm_user,lm_date) 
-                                values(@repairitem_seq,@repairitem_code,@repairitem_name,@code,@repairdesc,@isscan,@lm_user,@lm_date)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                repairitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
-                                repairitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
-                                repairitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
-                                code = json.code,
-                                repairdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
-                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString()
-                            }
-                        });
-                    }
-
-                    bool aa = DapperHelper.DoTransaction(list);
-                    if (aa)
-                    {
-                        mes.code = "200";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔鎴愬姛!";
-                        mes.data = null;
-                    }
-                    else
-                    {
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.message = "鎿嶄綔澶辫触!";
-                        mes.data = null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鍒犻櫎]
-        public static ToMessage DeleteDeviceRepairStaned(string repairstand_code)
-        {
-            var sql = "";
-            List<object> list = new List<object>();
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                sql = @"select * from  TEqpmaint_Proc_Main  where eqpmaint_code=@repairstand_code";
-                dynamicParams.Add("@repairstand_code", repairstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                if (data.Rows.Count > 0)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "褰撳墠淇濆吇鏍囧噯宸茬敓鎴愪繚鍏昏褰�,涓嶅厑璁稿垹闄�!";
-                    mes.data = null;
-                    return mes;
-                }
-                //鍒犻櫎璁惧淇濆吇鏍囧噯涓昏〃
-                sql = @"delete TEqpmai_Main  where code=@repairstand_code";
-                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
-                //鍒犻櫎璁惧淇濆吇鏍囧噯鍏宠仈淇濆吇椤圭洰瀛愯〃
-                sql = @"delete TEqpmai_Deta  where eapmai_code=@repairstand_code";
-                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
-                //鍒犻櫎璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛�
-                sql = @"delete TEqpmai_Eqp  where eapmai_code=@repairstand_code";
-                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
-
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "璁惧淇濆吇鏍囧噯鍒犻櫎鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "璁惧淇濆吇鏍囧噯鍒犻櫎澶辫触!";
-                    mes.data = null;
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
-        public static ToMessage DeviceRepairStanedAssociationEqp(string stu_torgcode, string description, string repairstand_code)
-        {
-            string sql = "";
-            string search = "";
-            var dynamicParams = new DynamicParameters();
-            List<StandEqp> list = new List<StandEqp>();
-            try
-            {
-                switch (description)
-                {
-                    case "":
-                        break;
-                    case "D":
-                        search += "and T.org_code=@stu_torgcode or child.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    case "W":
-                        search += "and T.org_code=@stu_torgcode ";
-                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                        break;
-                    default:
-                        break;
-                }
-                //鑾峰彇宸ヤ綔绔欓泦鍚�(杞﹂棿,鍖呭惈宸茬粦瀹氬伐浣滅珯鏍囪瘑)
-                sql = @"select distinct T.org_code as wksp_code,T.org_name as wksp_name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag 
-                        from TOrganization T
-                        left join TOrganization as child on T.parent_id=child.id 
-                        left join(
-                        select distinct A.eqp_code,B.wksp_code  from TEqpmai_Eqp A 
-                        inner join TEqpInfo B on A.eqp_code=B.code 
-                        where A.eapmai_code=@repairstand_code and A.is_delete<>'1' and B.is_delete<>'1'
-                        ) B on T.org_code=B.wksp_code where T.description='W' and T.is_delete<>'1' " + search;
-
-                dynamicParams.Add("@repairstand_code", repairstand_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                for (int i = 0; i < data.Rows.Count; i++)
-                {
-                    StandEqp rout = new StandEqp();
-                    rout.code = data.Rows[i]["WKSP_CODE"].ToString();
-                    rout.name = data.Rows[i]["WKSP_NAME"].ToString();
-                    rout.type = data.Rows[i]["TYPE"].ToString();
-                    rout.flag = data.Rows[i]["FLAG"].ToString();
-                    rout.children = new List<StandEqpCn>();
-                    //鏍规嵁杞﹂棿缂栫爜鏌ユ壘璁惧(鍖呭惈宸插叧鑱旀爣璇�)
-                    //sql = @"select A.code,A.name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag
-                    //        from TEqpInfo A
-                    //        left join(
-                    //        select distinct A.eqp_code  from TEqpmai_Eqp A 
-                    //        inner join TEqpInfo B on A.eqp_code=B.code 
-                    //        where A.eapmai_code=@repairstand_code and A.is_delete<>'1' and B.is_delete<>'1'
-                    //        ) B on A.code=B.eqp_code where A.wksp_code=@wkspcode and A.is_delete<>'1'";
-                    sql = @"select *  from(
-                            select AA.code,AA.name,'E' as type,(case when BB.eapmai_code is null then 'N' else 'Y' end) flag,(case when AA.eapmai_code  is null then 'N' else 'Y' end) flage1
-                            from(
-                            select A.code,A.name,'' as eapmai_code
-                            from TEqpInfo A
-                            where A.wksp_code=@wkspcode and A.is_delete<>'1' 
-                            ) as AA
-                            left join (
-                             select A.code,A.name,B.eapmai_code
-                             from TEqpInfo A
-                             inner join TEqpmai_Eqp B on A.code=B.eqp_code
-                             where A.wksp_code=@wkspcode and B.eapmai_code=@repairstand_code and A.is_delete<>'1'
-                            ) as BB on AA.code=BB.code
-                            ) as CC ";  //where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1
-                    dynamicParams.Add("@repairstand_code", repairstand_code);
-                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
-                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                    for (int j = 0; j < data0.Rows.Count; j++)
-                    {
-                        StandEqpCn cn = new StandEqpCn();
-                        cn.code = data0.Rows[j]["CODE"].ToString();//璁惧缂栫爜
-                        cn.name = data0.Rows[j]["NAME"].ToString();//璁惧鍚嶇О
-                        cn.type = data0.Rows[j]["TYPE"].ToString();//宸ヤ綔绔欑被鍨�(E:璁惧 W:澶栧崗渚涙柟)
-                        cn.flag = data0.Rows[j]["FLAG"].ToString();//鍏宠仈鏍囪瘑
-                        rout.children.Add(cn);
-                    }
-                    list.Add(rout);
-                }
-                mes.code = "200";
-                mes.message = "鏌ヨ鎴愬姛!";
-                mes.data = list;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region [璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
-        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string repairstand_code, string username, List<ObjectData> json)
-        {
-            var sql = "";
-            List<object> list = new List<object>();
-            try
-            {
-                list.Clear();
-                switch (stu_torgtypecode)
-                {
-                    case "":
-                        //娓呴櫎璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
-                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
-                        break;
-                    case "D":
-                        //娓呴櫎璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
-                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
-                        break;
-                    case "W":
-                        //娓呴櫎璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
-                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
-                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
-                        break;
-                }
-                if (json != null && json.Count > 0)
-                {
-                    //寰幆鍐欏叆璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛�
-                    for (int i = 0; i < json.Count; i++)
-                    {
-                        sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date,torg_code) values(@repairstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                eqp_code = json[i].code,
-                                repairstand_code = repairstand_code,
-                                lm_user = username,
-                                lm_date = DateTime.Now.ToString(),
-                                torg_code = json[i].flag
-                            }
-                        });
-                    }
-                }
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
-                {
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.message = "鎿嶄綔鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.message = "鎿嶄綔澶辫触!";
-                    mes.data = null;
-                }
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-
-
-        #region[璁惧鐐规璁板綍鏌ヨ]
-        public static ToMessage DeviceCheckTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and T.org_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (stanedname != "" && stanedname != null)
-                {
-                    search += "and M.name like '%'+@stanedname+'%' ";
-                    dynamicParams.Add("@stanedname", stanedname);
-                }
-                if (checkuser != "" && checkuser != null)
-                {
-                    search += "and A.chk_user like '%'+@checkuser+'%' ";
-                    dynamicParams.Add("@checkuser", checkuser);
-                }
-                if (checkopendate != "" && checkopendate != null)
-                {
-                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
-                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
-                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.djwo,T.org_code,T.org_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,
-                            A.chk_user,A.chk_result,A.chk_date
-                            from TEqpchk_Proc_Main A
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
-                            left join TOrganization T on E.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            where T.description='W' " + 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 DeviceCheckSubTakeSearch(string djwo)
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.chk_value,A.remark
-                        from TEqpchk_Proc_Deta A
-                        left join TEqpchk_Item T on A.eqpchkdeta_code=T.code
-                        where A.djwo=@djwo";
-                dynamicParams.Add("@djwo", djwo);
-                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
-
-        #region[璁惧鐐规璁板綍瀵煎嚭]
-        public static ToMessage DeviceCheckTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and T.org_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (stanedname != "" && stanedname != null)
-                {
-                    search += "and M.name like '%'+@stanedname+'%' ";
-                    dynamicParams.Add("@stanedname", stanedname);
-                }
-                if (checkuser != "" && checkuser != null)
-                {
-                    search += "and A.chk_user like '%'+@checkuser+'%' ";
-                    dynamicParams.Add("@checkuser", checkuser);
-                }
-                if (checkopendate != "" && checkopendate != null)
-                {
-                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
-                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
-                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select 
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.eqpchkdeta_code) = 1 THEN A.djwo
-                            ELSE ''END AS '鐐规鍗曞彿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpchkdeta_code) = 1 THEN T.org_name
-                            ELSE ''END AS '鐢熶骇杞﹂棿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqp_code
-                            ELSE ''END AS '璁惧缂栧彿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN E.name
-                            ELSE ''END AS '璁惧鍚嶇О',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqpchkmain_code
-                            ELSE ''END AS '鐐规鏍囧噯缂栫爜',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN M.name
-                            ELSE ''END AS '鐐规鏍囧噯鍚嶇О',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.chk_user ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_user
-                            ELSE ''END AS '妫�楠屼汉鍛�',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.chk_result ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_result
-                            ELSE ''END AS '妫�楠岀粨鏋�',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.chk_date ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_date
-                            END AS '妫�楠屾椂闂�',
-                            B.seq as '鐐规閮ㄤ綅搴忓彿',H.code '鐐规閮ㄤ綅缂栫爜',H.name '鐐规閮ㄤ綅鍚嶇О',B.result '鐐规缁撴灉',B.chk_value '鏁板��',B.remark '澶囨敞'
-                            from TEqpchk_Proc_Main A
-                            left join TEqpchk_Proc_Deta B on A.djwo=B.djwo
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
-                            left join TOrganization T on E.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            left join TEqpchk_Item H on B.eqpchkdeta_code=H.code
-                            where T.description='W' " + 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
-
-
-
-        #region[璁惧淇濆吇璁板綍鏌ヨ]
-        public static ToMessage DeviceCheckTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and T.org_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (stanedname != "" && stanedname != null)
-                {
-                    search += "and M.name like '%'+@stanedname+'%' ";
-                    dynamicParams.Add("@stanedname", stanedname);
-                }
-                if (repairuser != "" && repairuser != null)
-                {
-                    search += "and A.maint_user like '%'+@repairuser+'%' ";
-                    dynamicParams.Add("@repairuser", repairuser);
-                }
-                if (repairopendate != "" && repairopendate != null)
-                {
-                    search += "and A.maint_date between @repairopendate and @repairclosedate ";
-                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
-                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
-                }
-                if (repairresult != "" && repairresult != null)
-                {
-                    search += "and A.maint_result=@repairresult ";
-                    dynamicParams.Add("@repairresult", repairresult);
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.bywo,T.org_code,T.org_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,A.maint_cyc,
-                            A.maint_user,A.maint_result,A.maint_date
-                            from TEqpmaint_Proc_Main A
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
-                            left join TOrganization T on E.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            where T.description='W' " + 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 DeviceRepairSubTakeSearch(string bywo)
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            try
-            {
-                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.maint_value,A.remark
-                        from TEqpmaint_Proc_Deta A
-                        left join TEqpmai_Item T on A.eqpmaideta_code=T.code
-                        where A.bywo=@bywo";
-                dynamicParams.Add("@bywo", bywo);
-                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
-
-        #region[璁惧淇濆吇璁板綍瀵煎嚭]
-        public static ToMessage DeviceRepairTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and T.org_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (stanedname != "" && stanedname != null)
-                {
-                    search += "and M.name like '%'+@stanedname+'%' ";
-                    dynamicParams.Add("@stanedname", stanedname);
-                }
-                if (repairuser != "" && repairuser != null)
-                {
-                    search += "and A.maint_user like '%'+@repairuser+'%' ";
-                    dynamicParams.Add("@repairuser", repairuser);
-                }
-                if (repairopendate != "" && repairopendate != null)
-                {
-                    search += "and A.chk_date between @repairopendate and @repairclosedate ";
-                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
-                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
-                }
-                if (repairresult != "" && repairresult != null)
-                {
-                    search += "and A.maint_result=@repairresult ";
-                    dynamicParams.Add("@repairresult", repairresult);
-                }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select 
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.eqpmaideta_code) = 1 THEN A.bywo
-                            ELSE ''END AS '淇濆吇鍗曞彿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpmaideta_code) = 1 THEN T.org_name
-                            ELSE ''END AS '鐢熶骇杞﹂棿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqp_code
-                            ELSE ''END AS '璁惧缂栧彿',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN E.name
-                            ELSE ''END AS '璁惧鍚嶇О',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqpmaint_code
-                            ELSE ''END AS '淇濆吇鏍囧噯缂栫爜',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN M.name
-                            ELSE ''END AS '淇濆吇鏍囧噯鍚嶇О',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.maint_cyc ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_cyc
-                            ELSE ''END AS '淇濆吇鍛ㄦ湡',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.maint_user ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_user
-                            ELSE ''END AS '淇濆吇浜哄憳',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.maint_result ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_result
-                            ELSE ''END AS '淇濆吇缁撴灉',
-                            CASE WHEN
-                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_date
-                            END AS '淇濆吇鏃堕棿',
-                            B.seq as '淇濆吇閮ㄤ綅搴忓彿',H.code '淇濆吇閮ㄤ綅缂栫爜',H.name '淇濆吇閮ㄤ綅鍚嶇О',B.result '淇濆吇缁撴灉',B.maint_value '鏁板��',B.remark '澶囨敞'
-                            from TEqpmaint_Proc_Main A
-                            left join TEqpmaint_Proc_Deta B on A.bywo=B.bywo
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
-                            left join TOrganization T on E.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            left join TEqpmai_Item H on B.eqpmaideta_code=H.code
-                            where T.description='W' " + 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
-
-
-
-        #region[璁惧缁翠慨璁板綍鏌ヨ]
-        public static ToMessage DeviceUpdateSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate, int startNum, int endNum, string prop, string order)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and A.wksp_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (reportuser != "" && reportuser != null)
-                {
-                    search += "and B.request_person like '%'+@reportuser+'%' ";
-                    dynamicParams.Add("@reportuser", reportuser);
-                }
-                if (repairuser != "" && repairuser != null)
-                {
-                    search += "and A.repair_person like '%'+@repairuser+'%' ";
-                    dynamicParams.Add("@repairuser", repairuser);
-                }
-                if (vrifcatuser != "" && vrifcatuser != null)
-                {
-                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
-                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
-                }
-                if (reportopendate != "" && reportopendate != null)
-                {
-                    search += "and B.request_date between @reportopendate and @reportclosedate ";
-                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
-                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
-                }
-                if (repairopendate != "" && repairopendate != null)
-                {
-                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
-                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
-                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
-                }
-                if (vrifcatopendate != "" && vrifcatopendate != null)
-                {
-                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
-                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
-                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
-                }
-
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.repair_code,A.wksp_code,T.org_name as wksp_name,A.eqp_code,E.name as eqp_name,B.request_person,B.request_date,
-                            A.repair_person,A.repair_date,CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as cycleDate,
-                            A.verify_person,A.verify_date,(case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end)as verify_result 
-                            from TEqp_Repair A
-                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code 
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TOrganization T on A.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            where T.description='W' " + 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 DeviceUpdateSubSearch(string repair_code)
-        {
-            string sql = "";
-            var dynamicParams = new DynamicParameters();
-            Dictionary<object, object> Dict = new Dictionary<object, object>();
-            try
-            {
-                //鑾峰彇璁惧鎶ヤ慨鐢宠鏁版嵁
-                sql = @"select B.docu_code,
-                        (
-                        case when B.source='A' then '璁惧鐐规'
-                        when B.source='B' then '璁惧淇濆吇'
-                        when B.source='C' then '瀹夌伅鍛煎彨'
-                        when B.source='C' then '鎵嬪伐鍒涘缓' end
-                        ) as source,B.failure_descript from TEqp_Repair A
-                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
-                        where A.repair_code=@repair_code";
-                dynamicParams.Add("@repair_code", repair_code);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
-                DeviceReport report = new DeviceReport();
-                report.faultsource = data.Rows[0]["source"].ToString();
-                report.faultdescr = data.Rows[0]["failure_descript"].ToString();
-                //鑾峰彇璁惧鎶ヤ慨鐢宠鍥剧墖鏁版嵁
-                sql = @"select M.img1url from TEqp_Repair A
-                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
-                        left join TEqp_RepairImage M on B.docu_code=M.source_wo
-                        where A.repair_code=@repair_code and M.wo_type='REPA'";
-                dynamicParams.Add("@repair_code", repair_code);
-                var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                report.faultimage = data0;
-                Dict.Add("data1", report);
-
-                //鑾峰彇璁惧缁翠慨鏁版嵁
-                sql = @"select A.failure_descript,A.is_shutdown,A.repair_content,A.repair_part from TEqp_Repair A
-                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
-                        where A.repair_code=@repair_code";
-                dynamicParams.Add("@repair_code", repair_code);
-                var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                DeviceRepair repair = new DeviceRepair();
-                repair.faultdescr = data1.Rows[0]["failure_descript"].ToString();
-                repair.isstoprepair = data1.Rows[0]["is_shutdown"].ToString();
-                repair.repaircontent = data1.Rows[0]["repair_content"].ToString();
-                repair.repairpart = data1.Rows[0]["repair_part"].ToString();
-                //鑾峰彇璁惧缁翠慨鍥剧墖鏁版嵁
-                sql = @"select M.img1url,M.img2url from TEqp_Repair A
-                        left join TEqp_RepairImage M on A.repair_code=M.source_wo
-                        where A.repair_code=@repair_code and M.wo_type='COMP'";
-                dynamicParams.Add("@repair_code", repair_code);
-                var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                repair.repairimage = data3;
-                Dict.Add("data2", repair);
-                mes.code = "200";
-                mes.message = "鏌ヨ鎴愬姛!";
-                mes.data = Dict;
-            }
-            catch (Exception e)
-            {
-                mes.code = "300";
-                mes.count = 0;
-                mes.message = e.Message;
-                mes.data = null;
-            }
-            return mes;
-        }
-        #endregion
-
-        #region[璁惧缁翠慨璁板綍瀵煎嚭]
-        public static ToMessage DeviceUpdateOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
-        {
-            var dynamicParams = new DynamicParameters();
-            string search = "";
-            try
-            {
-                if (wkshopcode != "" && wkshopcode != null)
-                {
-                    search += "and A.wksp_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
-                }
-                else
-                {
-                    switch (description)
-                    {
-                        case "":
-                            search += "and T.description=@description ";
-                            dynamicParams.Add("@description", "W");
-                            break;
-                        case "D":
-                            search += "and  L.org_code=@stu_torgcode ";
-                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                            break;
-                    }
-                }
-                if (eqpcode != "" && eqpcode != null)
-                {
-                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                }
-                if (eqpname != "" && eqpname != null)
-                {
-                    search += "and E.name like '%'+@eqpname+'%' ";
-                    dynamicParams.Add("@eqpname", eqpname);
-                }
-                if (reportuser != "" && reportuser != null)
-                {
-                    search += "and B.request_person like '%'+@reportuser+'%' ";
-                    dynamicParams.Add("@reportuser", reportuser);
-                }
-                if (repairuser != "" && repairuser != null)
-                {
-                    search += "and A.repair_person like '%'+@repairuser+'%' ";
-                    dynamicParams.Add("@repairuser", repairuser);
-                }
-                if (vrifcatuser != "" && vrifcatuser != null)
-                {
-                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
-                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
-                }
-                if (reportopendate != "" && reportopendate != null)
-                {
-                    search += "and B.request_date between @reportopendate and @reportclosedate ";
-                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
-                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
-                }
-                if (repairopendate != "" && repairopendate != null)
-                {
-                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
-                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
-                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
-                }
-                if (vrifcatopendate != "" && vrifcatopendate != null)
-                {
-                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
-                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
-                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
-                }
-
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
-                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
-                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select 
-                            A.repair_code as '缁翠慨鍗曞彿',
-                            T.org_name as '鎵�灞炶溅闂�',
-                            A.eqp_code as '璁惧缂栫爜',
-                            E.name as '璁惧鍚嶇О',
-                            B.request_person as '鎶ヤ慨浜哄憳',
-                            B.request_date as '鎶ヤ慨鏃堕棿',
-                            A.repair_person as '缁翠慨浜哄憳',
-                            A.repair_date as '缁翠慨鏃堕棿', 
-                            CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1))  as '缁翠慨鏃堕暱(灏忔椂)',
-                            A.verify_person as '楠岃瘉浜哄憳',
-                            A.verify_date as '楠岃瘉鏃堕棿',
-                            (case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end)as '楠岃瘉缁撴灉' 
-                            from TEqp_Repair A
-                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code 
-                            left join TEqpInfo E on A.eqp_code=E.code
-                            left join TOrganization T on A.wksp_code=T.org_code
-                            left join TOrganization as L on T.parent_id=L.id 
-                            where T.description='W'" + 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
-
-
 
 
 
@@ -2497,7 +389,7 @@
                                 devtypecode = json[i].code,
                                 devtypename = json[i].name,
                                 remark = json[i].description,
-                                lm_user= us.usercode,
+                                lm_user = us.usercode,
                                 lm_date = DateTime.Now.ToString()
                             }
                         });
@@ -2585,7 +477,6 @@
             return mes;
         }
         #endregion
-
 
 
         #region [璁惧娓呭崟鏌ヨ]
@@ -2806,5 +697,1886 @@
         #endregion
 
 
+        #region[璁惧鐐规椤瑰垪琛ㄦ煡璇
+        public static ToMessage DeviceCheckItemSearch(string checkitemcode, string checkitemname, string checkdescr, string isqrcode, string cycle, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (checkitemcode != "" && checkitemcode != null)
+                {
+                    search += "and A.code like '%'+@checkitemcode+'%' ";
+                    dynamicParams.Add("@checkitemcode", checkitemcode);
+                }
+                if (checkitemname != "" && checkitemname != null)
+                {
+                    search += "and A.name like '%'+@checkitemname+'%' ";
+                    dynamicParams.Add("@checkitemname", checkitemname);
+                }
+                if (checkdescr != "" && checkdescr != null)
+                {
+                    search += "and A.description like '%'+@checkdescr+'%' ";
+                    dynamicParams.Add("@checkdescr", checkdescr);
+                }
+                if (isqrcode != "" && isqrcode != null)
+                {
+                    search += "and A.isscan=@isqrcode ";
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                }
+                if (cycle != "" && cycle != null)
+                {
+                    search += "and A.cycle=@cycle ";
+                    dynamicParams.Add("@cycle", cycle);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.code,A.name,A.description,A.isscan,A.cycle,U.username as lm_user,A.lm_date 
+                            from TEqpchk_Item A
+                            left join TUser U on A.lm_user=U.usercode
+                            where A.is_delete<>'1' " + 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 AddUpdateDeviceCheckItem(string checkitemid, string checkitemcode, string checkitemname, string checkitemdescr, string cycle, string isqrcode, User us, string operType)
+        {
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (operType == "Add")
+                {
+                    var sql = @"insert into TEqpchk_Item(code,name,description,isscan,cycle,lm_user,lm_date) 
+                              values(@checkitemcode,@checkitemname,@checkitemdescr,@isqrcode,@cycle,@usercode,@CreateDate)";
+                    dynamicParams.Add("@checkitemcode", checkitemcode);
+                    dynamicParams.Add("@checkitemname", checkitemname);
+                    dynamicParams.Add("@checkitemdescr", checkitemdescr);
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                    dynamicParams.Add("@cycle", cycle);
+                    dynamicParams.Add("@usercode", us.usercode);
+                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
+                    int cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                if (operType == "Update")
+                {
+                    var sql = @"update TEqpchk_Item set name=@checkitemname,description=@checkitemdescr,isscan=@isqrcode,cycle=@cycle,
+                                lm_user=@usercode,lm_date=@CreateDate
+                                where id=@checkitemid";
+                    dynamicParams.Add("@checkitemid", checkitemid);
+                    dynamicParams.Add("@checkitemname", checkitemname);
+                    dynamicParams.Add("@checkitemdescr", checkitemdescr);
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                    dynamicParams.Add("@cycle", cycle);
+                    dynamicParams.Add("@usercode", us.usercode);
+                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
+                    int cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧鐐规椤瑰垹闄
+        public static ToMessage DeleteDeviceCheckItem(string checkitemcode)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                list.Clear();
+                //鍒ゆ柇鐐规鏍囧噯椤圭洰鏄惁鏈夊叧鑱旂偣妫�鏍囧噯,涓嶅厑璁稿垹闄�
+                sql = @"select *  from TEqpchk_Deta
+                        where  code=@checkitemcode";
+                dynamicParams.Add("@checkitemcode", checkitemcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "褰撳墠鐐规椤圭洰宸插叧鑱旀爣鍑�,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+
+                //鍒犻櫎鐐规椤圭洰
+                sql = @"delete TEqpchk_Item  where code=@checkitemcode";
+                list.Add(new { str = sql, parm = new { checkitemcode = checkitemcode } });
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇椤瑰垪琛ㄦ煡璇
+        public static ToMessage DeviceMaiItemSearch(string maiitemcode, string maiitemname, string maidescr, string isqrcode, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (maiitemcode != "" && maiitemcode != null)
+                {
+                    search += "and A.code like '%'+@maiitemcode+'%' ";
+                    dynamicParams.Add("@maiitemcode", maiitemcode);
+                }
+                if (maiitemname != "" && maiitemname != null)
+                {
+                    search += "and A.name like '%'+@maiitemname+'%' ";
+                    dynamicParams.Add("@maiitemname", maiitemname);
+                }
+                if (maidescr != "" && maidescr != null)
+                {
+                    search += "and A.description like '%'+@maidescr+'%' ";
+                    dynamicParams.Add("@maidescr", maidescr);
+                }
+                if (isqrcode != "" && isqrcode != null)
+                {
+                    search += "and A.isscan=@isqrcode ";
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.code,A.name,A.description,A.isscan,U.username as lm_user,A.lm_date 
+                            from TEqpmai_Item A
+                            left join TUser U on A.lm_user=U.usercode
+                            where A.is_delete<>'1' " + 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 AddUpdateDeviceMaiItem(string maiitemid, string maiitemcode, string maiitemname, string maiitemdescr, string isqrcode, User us, string operType)
+        {
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (operType == "Add")
+                {
+                    var sql = @"insert into TEqpmai_Item(code,name,description,isscan,lm_user,lm_date) 
+                              values(@maiitemcode,@maiitemname,@maiitemdescr,@isqrcode,@usercode,@CreateDate)";
+                    dynamicParams.Add("@maiitemcode", maiitemcode);
+                    dynamicParams.Add("@maiitemname", maiitemname);
+                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                    dynamicParams.Add("@usercode", us.usercode);
+                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
+                    int cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                if (operType == "Update")
+                {
+                    var sql = @"update TEqpmai_Item set name=@maiitemname,description=@maiitemdescr,isscan=@isqrcode,
+                                lm_user=@usercode,lm_date=@CreateDate
+                                where id=@maiitemid";
+                    dynamicParams.Add("@maiitemid", maiitemid);
+                    dynamicParams.Add("@maiitemname", maiitemname);
+                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
+                    dynamicParams.Add("@isqrcode", isqrcode);
+                    dynamicParams.Add("@usercode", us.usercode);
+                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
+                    int cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧淇濆吇椤瑰垹闄
+        public static ToMessage DeleteDeviceMaiItem(string maiitemcode)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                list.Clear();
+                //鍒ゆ柇淇濆吇鏍囧噯椤圭洰鏄惁鏈夊叧鑱斾繚鍏绘爣鍑�,涓嶅厑璁稿垹闄�
+                sql = @"select *  from TEqpmai_Deta
+                        where  code=@maiitemcode";
+                dynamicParams.Add("@maiitemcode", maiitemcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "褰撳墠淇濆吇椤圭洰宸插叧鑱旀爣鍑�,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+
+                //鍒犻櫎淇濆吇椤圭洰
+                sql = @"delete TEqpmai_Item  where code=@maiitemcode";
+                list.Add(new { str = sql, parm = new { maiitemcode = maiitemcode } });
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[璁惧鐐规鏍囧噯鍒楄〃鏌ヨ]
+        public static ToMessage DeviceCheckStandArdSearch(User us, string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (checkstandcode != "" && checkstandcode != null)
+                {
+                    search += "and A.code like '%'+@checkstandcode+'%' ";
+                    dynamicParams.Add("@checkstandcode", checkstandcode);
+                }
+                if (checkstandname != "" && checkstandname != null)
+                {
+                    search += "and A.name like '%'+@checkstandname+'%' ";
+                    dynamicParams.Add("@checkstandname", checkstandname);
+                }
+                if (checkcontr != "" && checkcontr != null)
+                {
+                    search += "and A.iscontr=@checkcontr ";
+                    dynamicParams.Add("@checkcontr", checkcontr);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,
+                            (case when isnull(M.eqpchkmain_code,'')='' then 'N' else 'Y' end) as is_checkeqp,U.username as lm_user,A.lm_date 
+                            from TEqpchk_Main A
+                            left join TUser U on A.lm_user=U.usercode
+                            left join (
+                            select distinct eqpchkmain_code from TEqpchk_Eqp M
+                            )  M on A.code=M.eqpchkmain_code where A.is_delete<>'1' " + 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 DeviceCheckItemSelect()
+        {
+            string sql = "";
+            try
+            {
+                //鑾峰彇璁惧鐐规椤圭洰鏁版嵁
+                sql = @"select code,name,description from TEqpchk_Item 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[璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        public static ToMessage ViewDeviceCheckStanedSearch(string checkstand_code)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鑾峰彇璁惧鐐规鏍囧噯淇℃伅
+                sql = @"select code,name,description,iscontr
+                        from TEqpchk_Main
+                        where code=@checkstand_code and is_delete<>'1'";
+                dynamicParams.Add("@checkstand_code", checkstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                RoutEdit rout = new RoutEdit();
+                if (data.Rows.Count > 0)
+                {
+                    rout.code = data.Rows[0]["CODE"].ToString();
+                    rout.name = data.Rows[0]["NAME"].ToString();
+                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
+                    rout.enable = data.Rows[0]["ISCONTR"].ToString();
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鏃犵偣妫�鏍囧噯淇℃伅!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鏍规嵁璁惧鐐规鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勬楠岄」鐩俊鎭�
+                sql = @"select B.code,B.name,A.chkdesc,A.isscan,A.cycle  from TEqpchk_Deta A
+                        left join TEqpchk_Item  B on A.code=B.code
+                        where  A.eqpchk_main_code=@checkstaned_code order by A.seq asc";
+                dynamicParams.Add("@checkstaned_code", rout.code);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                rout.Data = data0;
+
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = rout;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鏂板缂栬緫]
+        public static ToMessage AddUpdateDeviceCheckStandArd(string opertype, RoutEdit json, User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                if (opertype == "Add")
+                {
+                    //鏂板璁惧鐐规鏍囧噯涓昏〃
+                    sql = @"insert into TEqpchk_Main(code,name,description,iscontr,lm_user,lm_date) values(@code,@name,@descr,@iscontr,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, iscontr = json.enable, lm_user = us.usercode, lm_date = DateTime.Now.ToString() } });
+                    for (int i = 0; i < json.Data.Rows.Count; i++)
+                    {
+                        //鏂板璁惧鐐规鏍囧噯鍏宠仈鐐规椤瑰瓙琛�
+                        sql = @"insert TEqpchk_Deta (seq,code,name,eqpchk_main_code,cycle,chkdesc,isscan,lm_user,lm_date) 
+                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@code,@cycle,@chkdesc,@isscan,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
+                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
+                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
+                                code = json.code,
+                                cycle = json.Data.Rows[i]["CYCLE"].ToString(),
+                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
+                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                if (opertype == "Update")
+                {
+                    //鍒犻櫎鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
+                    sql = @"delete from TEqpchk_Deta where eqpchk_main_code=@checkstaned_code";
+                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code } });
+                    //淇敼鐐规鏍囧噯涓昏〃
+                    sql = @"update  TEqpchk_Main set name=@checkstaned_name,description=@checkstaned_desc,iscontr=@iscontr where code=@checkstaned_code";
+                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description, iscontr = json.enable } });
+                    //鏂板鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
+                    for (int i = 0; i < json.Data.Rows.Count; i++)
+                    {
+                        sql = @"insert TEqpchk_Deta (seq,code,name,eqpchk_main_code,cycle,chkdesc,isscan,lm_user,lm_date) 
+                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@code,@cycle,@chkdesc,@isscan,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
+                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
+                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
+                                code = json.code,
+                                cycle = json.Data.Rows[i]["CYCLE"].ToString(),
+                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
+                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍒犻櫎]
+        public static ToMessage DeleteDeviceCheckStaned(string checkstand_code)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select * from  TEqpchk_Proc_Main  where eqpchkmain_code=@checkstand_code";
+                dynamicParams.Add("@checkstand_code", checkstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "褰撳墠鐐规鏍囧噯宸茬敓鎴愮偣妫�璁板綍,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鍒犻櫎璁惧鐐规鏍囧噯涓昏〃
+                sql = @"delete TEqpchk_Main  where code=@checkstand_code";
+                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
+                //鍒犻櫎璁惧鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
+                sql = @"delete TEqpchk_Deta  where eqpchk_main_code=@checkstand_code";
+                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
+                //鍒犻櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛�
+                sql = @"delete TEqpchk_Eqp  where eqpchkmain_code=@checkstand_code";
+                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "璁惧鐐规鏍囧噯鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "璁惧鐐规鏍囧噯鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        public static ToMessage DeviceCheckStanedAssociationEqp(User us, string checkstand_code)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<StandEqp> list = new List<StandEqp>();
+            try
+            {
+                //鑾峰彇宸ヤ綔绔欓泦鍚�(杞﹂棿,鍖呭惈宸茬粦瀹氬伐浣滅珯鏍囪瘑)
+                sql = @"select distinct E.torg_code as wksp_code,T.torg_name as wksp_name,'E' as type,(case when B.wksp_code is null then 'N' else 'Y' end) flag 
+                        from TEqpInfo E
+                        left join  TOrganization T on E.torg_code=T.torg_code
+                        left join(
+                        select distinct B.torg_code as wksp_code  from TEqpchk_Eqp A 
+                        inner join TEqpInfo B on A.eqp_code=B.code 
+                        where A.eqpchkmain_code=@checkstand_code 
+                        ) B on T.torg_code=B.wksp_code";
+                dynamicParams.Add("@checkstand_code", checkstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                for (int i = 0; i < data.Rows.Count; i++)
+                {
+                    StandEqp rout = new StandEqp();
+                    rout.code = data.Rows[i]["WKSP_CODE"].ToString();
+                    rout.name = data.Rows[i]["WKSP_NAME"].ToString();
+                    rout.type = data.Rows[i]["TYPE"].ToString();
+                    rout.flag = data.Rows[i]["FLAG"].ToString();
+                    rout.children = new List<StandEqpCn>();
+                    sql = @"select *  from(
+                            select AA.code,AA.name,'E' as type,(case when BB.eqpchkmain_code is null then 'N' else 'Y' end) flag,(case when AA.eqpchkmain_code  is null then 'N' else 'Y' end) flage1
+                            from(
+                            select A.code,A.name,'' as eqpchkmain_code
+                            from TEqpInfo A
+                            where A.torg_code=@wkspcode 
+                            ) as AA
+                            left join (
+                             select A.code,A.name,B.eqpchkmain_code
+                             from TEqpInfo A
+                             inner join TEqpchk_Eqp B on A.code=B.eqp_code
+                             where A.torg_code=@wkspcode and B.eqpchkmain_code=@checkstand_code 
+                            ) as BB on AA.code=BB.code
+                            ) as CC ";
+                    dynamicParams.Add("@checkstand_code", checkstand_code);
+                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
+                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                    for (int j = 0; j < data0.Rows.Count; j++)
+                    {
+                        StandEqpCn cn = new StandEqpCn();
+                        cn.code = data0.Rows[j]["CODE"].ToString();//璁惧缂栫爜
+                        cn.name = data0.Rows[j]["NAME"].ToString();//璁惧鍚嶇О
+                        cn.type = data0.Rows[j]["TYPE"].ToString();//宸ヤ綔绔欑被鍨�(E:璁惧 W:澶栧崗渚涙柟)
+                        cn.flag = data0.Rows[j]["FLAG"].ToString();//鍏宠仈鏍囪瘑
+                        rout.children.Add(cn);
+                    }
+                    list.Add(rout);
+                }
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = list;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region [璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        public static ToMessage SaveDeviceCheckStanedAssociationEqp(User us, string checkstand_code, List<ObjectData> json)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                list.Clear();
+                //娓呴櫎璁惧鐐规鏍囧噯鍏宠仈璁惧琛ㄦ暟鎹�
+                sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
+                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
+                //寰幆鍐欏叆璁惧鐐规鏍囧噯鍏宠仈璁惧琛�
+                for (int i = 0; i < json.Count; i++)
+                {
+                    sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date,torg_code) values(@checkstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            eqp_code = json[i].code,
+                            checkstand_code = checkstand_code,
+                            lm_user = us.usercode,
+                            lm_date = DateTime.Now.ToString(),
+                            torg_code = json[i].flag
+                        }
+                    });
+                }
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ]
+        public static ToMessage DeviceRepairStandArdSearch(User us, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (repairstandcode != "" && repairstandcode != null)
+                {
+                    search += "and A.code like '%'+@repairstandcode+'%' ";
+                    dynamicParams.Add("@repairstandcode", repairstandcode);
+                }
+                if (repairstandname != "" && repairstandname != null)
+                {
+                    search += "and A.name like '%'+@repairstandname+'%' ";
+                    dynamicParams.Add("@repairstandname", repairstandname);
+                }
+                if (repairstanddescr != "" && repairstanddescr != null)
+                {
+                    search += "and A.description like '%'+@repairstanddescr+'%' ";
+                    dynamicParams.Add("@repairstanddescr", repairstanddescr);
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.code,A.name,A.description,
+                            (case when isnull(M.eapmai_code,'')='' then 'N' else 'Y' end) as is_repaireqp,
+                            A.main_cycle,U.username as lm_user,A.lm_date 
+                            from TEqpmai_Main A
+                            left join TUser U on A.lm_user=U.usercode
+                            left join (
+                            select distinct eapmai_code from TEqpmai_Eqp M
+                            )  M on A.code=M.eapmai_code where A.is_delete<>'1' " + 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 DeviceRepairItemSelect()
+        {
+            string sql = "";
+            try
+            {
+                //鑾峰彇璁惧淇濆吇椤圭洰鏁版嵁
+                sql = @"select code,name,description from TEqpmai_Item 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[璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁]
+        public static ToMessage ViewDeviceRepairStanedSearch(string repairstand_code)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鑾峰彇璁惧淇濆吇鏍囧噯淇℃伅
+                sql = @"select code,name,description,main_cycle
+                        from TEqpmai_Main
+                        where code=@repairstand_code and is_delete<>'1'";
+                dynamicParams.Add("@repairstand_code", repairstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                EqpRepair rout = new EqpRepair();
+                if (data.Rows.Count > 0)
+                {
+                    rout.code = data.Rows[0]["CODE"].ToString();
+                    rout.name = data.Rows[0]["NAME"].ToString();
+                    rout.repaircycle = data.Rows[0]["MAIN_CYCLE"].ToString();
+                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鏃犱繚鍏绘爣鍑嗕俊鎭�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鏍规嵁璁惧淇濆吇鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勪繚鍏婚」鐩俊鎭�
+                sql = @"select B.code,B.name,A.chk_desc,A.isscan,A.cycle  from TEqpmai_Deta A
+                        left join TEqpmai_Item  B on A.code=B.code
+                        where  A.eapmai_code=@repairstand_code order by A.seq asc";
+                dynamicParams.Add("@repairstand_code", rout.code);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                rout.Data = data0;
+
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = rout;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鏂板缂栬緫]
+        public static ToMessage AddUpdateDeviceRepairStandArd(string opertype, EqpRepair json, User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                if (opertype == "Add")
+                {
+                    //鏂板璁惧淇濆吇鏍囧噯涓昏〃
+                    sql = @"insert into TEqpmai_Main(code,name,description,main_cycle,lm_user,lm_date) values(@code,@name,@descr,@main_cycle,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, main_cycle = json.repaircycle, lm_user = us.usercode, lm_date = DateTime.Now.ToString() } });
+                    for (int i = 0; i < json.Data.Rows.Count; i++)
+                    {
+                        //鏂板璁惧淇濆吇鏍囧噯鍏宠仈淇濆吇椤瑰瓙琛�
+                        sql = @"insert TEqpmai_Deta (seq,code,name,eapmai_code,chk_desc,isscan,lm_user,lm_date) 
+                                values(@repairitem_seq,@repairitem_code,@repairitem_name,@code,@repairdesc,@isscan,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repairitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
+                                repairitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
+                                repairitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
+                                code = json.code,
+                                repairdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
+                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                if (opertype == "Update")
+                {
+                    //鍒犻櫎淇濆吇鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
+                    sql = @"delete from TEqpmai_Deta where eapmai_code=@repairstaned_code";
+                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code } });
+                    //淇敼淇濆吇鏍囧噯涓昏〃
+                    sql = @"update  TEqpmai_Main set name=@repairstaned_name,description=@repairstaned_desc,main_cycle=@main_cycle where code=@repairstaned_code";
+                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code, repairstaned_name = json.name, repairstaned_desc = json.description, main_cycle = json.repaircycle } });
+                    //鏂板鐐规鏍囧噯鍏宠仈鐐规椤圭洰瀛愯〃
+                    for (int i = 0; i < json.Data.Rows.Count; i++)
+                    {
+                        sql = @"insert TEqpmai_Deta (seq,code,name,eapmai_code,chk_desc,isscan,lm_user,lm_date) 
+                                values(@repairitem_seq,@repairitem_code,@repairitem_name,@code,@repairdesc,@isscan,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repairitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
+                                repairitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
+                                repairitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
+                                code = json.code,
+                                repairdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
+                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍒犻櫎]
+        public static ToMessage DeleteDeviceRepairStaned(string repairstand_code)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select * from  TEqpmaint_Proc_Main  where eqpmaint_code=@repairstand_code";
+                dynamicParams.Add("@repairstand_code", repairstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "褰撳墠淇濆吇鏍囧噯宸茬敓鎴愪繚鍏昏褰�,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鍒犻櫎璁惧淇濆吇鏍囧噯涓昏〃
+                sql = @"delete TEqpmai_Main  where code=@repairstand_code";
+                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
+                //鍒犻櫎璁惧淇濆吇鏍囧噯鍏宠仈淇濆吇椤圭洰瀛愯〃
+                sql = @"delete TEqpmai_Deta  where eapmai_code=@repairstand_code";
+                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
+                //鍒犻櫎璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛�
+                sql = @"delete TEqpmai_Eqp  where eapmai_code=@repairstand_code";
+                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "璁惧淇濆吇鏍囧噯鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "璁惧淇濆吇鏍囧噯鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇
+        public static ToMessage DeviceRepairStanedAssociationEqp(User us, string repairstand_code)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<StandEqp> list = new List<StandEqp>();
+            try
+            {
+                //鑾峰彇宸ヤ綔绔欓泦鍚�(杞﹂棿,鍖呭惈宸茬粦瀹氬伐浣滅珯鏍囪瘑)
+                sql = @"select distinct E.torg_code,T.torg_name as wksp_name,'E' as type,(case when B.wksp_code is null then 'N' else 'Y' end) flag 
+                        from TEqpInfo E
+                        left join  TOrganization T on E.torg_code=T.torg_code
+                        left join(
+                        select distinct B.torg_code as wksp_code  from TEqpmai_Eqp A 
+                        inner join TEqpInfo B on A.eqp_code=B.code 
+                        where A.eapmai_code=@repairstand_code 
+                        ) B on T.torg_code=B.wksp_code ";
+
+                dynamicParams.Add("@repairstand_code", repairstand_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                for (int i = 0; i < data.Rows.Count; i++)
+                {
+                    StandEqp rout = new StandEqp();
+                    rout.code = data.Rows[i]["WKSP_CODE"].ToString();
+                    rout.name = data.Rows[i]["WKSP_NAME"].ToString();
+                    rout.type = data.Rows[i]["TYPE"].ToString();
+                    rout.flag = data.Rows[i]["FLAG"].ToString();
+                    rout.children = new List<StandEqpCn>();
+                    //鏍规嵁杞﹂棿缂栫爜鏌ユ壘璁惧(鍖呭惈宸插叧鑱旀爣璇�)
+                    sql = @"select *  from(
+                            select AA.code,AA.name,'E' as type,(case when BB.eapmai_code is null then 'N' else 'Y' end) flag,(case when AA.eapmai_code  is null then 'N' else 'Y' end) flage1
+                            from(
+                            select A.code,A.name,'' as eapmai_code
+                            from TEqpInfo A
+                            where A.torg_code=@wkspcode 
+                            ) as AA
+                            left join (
+                             select A.code,A.name,B.eapmai_code
+                             from TEqpInfo A
+                             inner join TEqpmai_Eqp B on A.code=B.eqp_code
+                             where A.torg_code=@wkspcode and B.eapmai_code=@repairstand_code
+                            ) as BB on AA.code=BB.code
+                            ) as CC";
+                    dynamicParams.Add("@repairstand_code", repairstand_code);
+                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
+                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                    for (int j = 0; j < data0.Rows.Count; j++)
+                    {
+                        StandEqpCn cn = new StandEqpCn();
+                        cn.code = data0.Rows[j]["CODE"].ToString();//璁惧缂栫爜
+                        cn.name = data0.Rows[j]["NAME"].ToString();//璁惧鍚嶇О
+                        cn.type = data0.Rows[j]["TYPE"].ToString();//宸ヤ綔绔欑被鍨�(E:璁惧 W:澶栧崗渚涙柟)
+                        cn.flag = data0.Rows[j]["FLAG"].ToString();//鍏宠仈鏍囪瘑
+                        rout.children.Add(cn);
+                    }
+                    list.Add(rout);
+                }
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = list;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region [璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜
+        public static ToMessage SaveDeviceRepairStanedAssociationEqp(User us, string repairstand_code, List<ObjectData> json)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            try
+            {
+                list.Clear();
+                sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
+                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
+                //寰幆鍐欏叆璁惧淇濆吇鏍囧噯鍏宠仈璁惧琛�
+                for (int i = 0; i < json.Count; i++)
+                {
+                    sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date,torg_code) values(@repairstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            eqp_code = json[i].code,
+                            repairstand_code = repairstand_code,
+                            lm_user = us.usercode,
+                            lm_date = DateTime.Now.ToString(),
+                            torg_code = json[i].flag
+                        }
+                    });
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+
+        #region[璁惧鐐规璁板綍鏌ヨ]
+        public static ToMessage DeviceCheckTakeSearch(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.torg_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (checkuser != "" && checkuser != null)
+                {
+                    search += "and A.chk_user like '%'+@checkuser+'%' ";
+                    dynamicParams.Add("@checkuser", checkuser);
+                }
+                if (checkopendate != "" && checkopendate != null)
+                {
+                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
+                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
+                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.djwo,T.torg_code,T.torg_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,
+                            A.chk_user,A.chk_result,A.chk_date
+                            from TEqpchk_Proc_Main A
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
+                            left join TOrganization T on E.torg_code=T.torg_code
+                            where 1=1 " + 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 DeviceCheckSubTakeSearch(string djwo)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.chk_value,A.remark
+                        from TEqpchk_Proc_Deta A
+                        left join TEqpchk_Item T on A.eqpchkdeta_code=T.code
+                        where A.djwo=@djwo";
+                dynamicParams.Add("@djwo", djwo);
+                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
+
+        #region[璁惧鐐规璁板綍瀵煎嚭]
+        public static ToMessage DeviceCheckTakeOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.torg_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (checkuser != "" && checkuser != null)
+                {
+                    search += "and A.chk_user like '%'+@checkuser+'%' ";
+                    dynamicParams.Add("@checkuser", checkuser);
+                }
+                if (checkopendate != "" && checkopendate != null)
+                {
+                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
+                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
+                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.eqpchkdeta_code) = 1 THEN A.djwo
+                            ELSE ''END AS '鐐规鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY E.torg_code ORDER BY B.eqpchkdeta_code) = 1 THEN T.torg_name
+                            ELSE ''END AS '鐢熶骇杞﹂棿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqp_code
+                            ELSE ''END AS '璁惧缂栧彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN E.name
+                            ELSE ''END AS '璁惧鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqpchkmain_code
+                            ELSE ''END AS '鐐规鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN M.name
+                            ELSE ''END AS '鐐规鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_user ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_user
+                            ELSE ''END AS '妫�楠屼汉鍛�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_result ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_result
+                            ELSE ''END AS '妫�楠岀粨鏋�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.chk_date ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_date
+                            END AS '妫�楠屾椂闂�',
+                            B.seq as '鐐规閮ㄤ綅搴忓彿',H.code '鐐规閮ㄤ綅缂栫爜',H.name '鐐规閮ㄤ綅鍚嶇О',B.result '鐐规缁撴灉',B.chk_value '鏁板��',B.remark '澶囨敞'
+                            from TEqpchk_Proc_Main A
+                            left join TEqpchk_Proc_Deta B on A.djwo=B.djwo
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
+                            left join TOrganization T on E.torg_code=T.torg_code
+                            left join TEqpchk_Item H on B.eqpchkdeta_code=H.code
+                            where 1=1 " + 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
+
+
+
+        #region[璁惧淇濆吇璁板綍鏌ヨ]
+        public static ToMessage DeviceCheckTakeSearch(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.torg_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.maint_user like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.maint_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (repairresult != "" && repairresult != null)
+                {
+                    search += "and A.maint_result=@repairresult ";
+                    dynamicParams.Add("@repairresult", repairresult);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.bywo,T.torg_code,T.torg_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,A.maint_cyc,
+                            A.maint_user,A.maint_result,A.maint_date
+                            from TEqpmaint_Proc_Main A
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
+                            left join TOrganization T on E.torg_code=T.torg_code
+                            where 1=1 " + 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 DeviceRepairSubTakeSearch(string bywo)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.maint_value,A.remark
+                        from TEqpmaint_Proc_Deta A
+                        left join TEqpmai_Item T on A.eqpmaideta_code=T.code
+                        where A.bywo=@bywo";
+                dynamicParams.Add("@bywo", bywo);
+                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
+
+        #region[璁惧淇濆吇璁板綍瀵煎嚭]
+        public static ToMessage DeviceRepairTakeOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and T.torg_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.maint_user like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.chk_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (repairresult != "" && repairresult != null)
+                {
+                    search += "and A.maint_result=@repairresult ";
+                    dynamicParams.Add("@repairresult", repairresult);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.eqpmaideta_code) = 1 THEN A.bywo
+                            ELSE ''END AS '淇濆吇鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY E.torg_code ORDER BY B.eqpmaideta_code) = 1 THEN T.torg_name
+                            ELSE ''END AS '鐢熶骇杞﹂棿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqp_code
+                            ELSE ''END AS '璁惧缂栧彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN E.name
+                            ELSE ''END AS '璁惧鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqpmaint_code
+                            ELSE ''END AS '淇濆吇鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN M.name
+                            ELSE ''END AS '淇濆吇鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_cyc ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_cyc
+                            ELSE ''END AS '淇濆吇鍛ㄦ湡',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_user ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_user
+                            ELSE ''END AS '淇濆吇浜哄憳',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_result ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_result
+                            ELSE ''END AS '淇濆吇缁撴灉',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_date
+                            END AS '淇濆吇鏃堕棿',
+                            B.seq as '淇濆吇閮ㄤ綅搴忓彿',H.code '淇濆吇閮ㄤ綅缂栫爜',H.name '淇濆吇閮ㄤ綅鍚嶇О',B.result '淇濆吇缁撴灉',B.maint_value '鏁板��',B.remark '澶囨敞'
+                            from TEqpmaint_Proc_Main A
+                            left join TEqpmaint_Proc_Deta B on A.bywo=B.bywo
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
+                            left join TOrganization T on E.torg_code=T.torg_code 
+                            left join TEqpmai_Item H on B.eqpmaideta_code=H.code
+                            where 1=1 " + 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
+
+
+
+        #region[璁惧缁翠慨璁板綍鏌ヨ]
+        public static ToMessage DeviceUpdateSearch(User us, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and A.wksp_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (reportuser != "" && reportuser != null)
+                {
+                    search += "and B.request_person like '%'+@reportuser+'%' ";
+                    dynamicParams.Add("@reportuser", reportuser);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.repair_person like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (vrifcatuser != "" && vrifcatuser != null)
+                {
+                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
+                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and B.request_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (vrifcatopendate != "" && vrifcatopendate != null)
+                {
+                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
+                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
+                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.repair_code,A.wksp_code,T.torg_name as wksp_name,A.eqp_code,E.name as eqp_name,B.request_person,B.request_date,
+                            A.repair_person,A.repair_date,CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as cycleDate,
+                            A.verify_person,A.verify_date,(case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end)as verify_result 
+                            from TEqp_Repair A
+                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code 
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TOrganization T on A.wksp_code=T.torg_code
+                            where 1=1 " + 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 DeviceUpdateSubSearch(string repair_code)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            Dictionary<object, object> Dict = new Dictionary<object, object>();
+            try
+            {
+                //鑾峰彇璁惧鎶ヤ慨鐢宠鏁版嵁
+                sql = @"select B.docu_code,
+                        (
+                        case when B.source='A' then '璁惧鐐规'
+                        when B.source='B' then '璁惧淇濆吇'
+                        when B.source='C' then '瀹夌伅鍛煎彨'
+                        when B.source='C' then '鎵嬪伐鍒涘缓' end
+                        ) as source,B.failure_descript from TEqp_Repair A
+                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
+                        where A.repair_code=@repair_code";
+                dynamicParams.Add("@repair_code", repair_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                DeviceReport report = new DeviceReport();
+                report.faultsource = data.Rows[0]["source"].ToString();
+                report.faultdescr = data.Rows[0]["failure_descript"].ToString();
+                //鑾峰彇璁惧鎶ヤ慨鐢宠鍥剧墖鏁版嵁
+                sql = @"select M.img1url from TEqp_Repair A
+                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
+                        left join TEqp_RepairImage M on B.docu_code=M.source_wo
+                        where A.repair_code=@repair_code and M.wo_type='REPA'";
+                dynamicParams.Add("@repair_code", repair_code);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                report.faultimage = data0;
+                Dict.Add("data1", report);
+
+                //鑾峰彇璁惧缁翠慨鏁版嵁
+                sql = @"select A.failure_descript,A.is_shutdown,A.repair_content,A.repair_part from TEqp_Repair A
+                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
+                        where A.repair_code=@repair_code";
+                dynamicParams.Add("@repair_code", repair_code);
+                var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                DeviceRepair repair = new DeviceRepair();
+                repair.faultdescr = data1.Rows[0]["failure_descript"].ToString();
+                repair.isstoprepair = data1.Rows[0]["is_shutdown"].ToString();
+                repair.repaircontent = data1.Rows[0]["repair_content"].ToString();
+                repair.repairpart = data1.Rows[0]["repair_part"].ToString();
+                //鑾峰彇璁惧缁翠慨鍥剧墖鏁版嵁
+                sql = @"select M.img1url,M.img2url from TEqp_Repair A
+                        left join TEqp_RepairImage M on A.repair_code=M.source_wo
+                        where A.repair_code=@repair_code and M.wo_type='COMP'";
+                dynamicParams.Add("@repair_code", repair_code);
+                var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                repair.repairimage = data3;
+                Dict.Add("data2", repair);
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = Dict;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁惧缁翠慨璁板綍瀵煎嚭]
+        public static ToMessage DeviceUpdateOutExcel(User us, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and A.wksp_code=@wkshopcode ";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                }
+                if (eqpcode != "" && eqpcode != null)
+                {
+                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
+                    dynamicParams.Add("@eqpcode", eqpcode);
+                }
+                if (eqpname != "" && eqpname != null)
+                {
+                    search += "and E.name like '%'+@eqpname+'%' ";
+                    dynamicParams.Add("@eqpname", eqpname);
+                }
+                if (reportuser != "" && reportuser != null)
+                {
+                    search += "and B.request_person like '%'+@reportuser+'%' ";
+                    dynamicParams.Add("@reportuser", reportuser);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and A.repair_person like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (vrifcatuser != "" && vrifcatuser != null)
+                {
+                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
+                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and B.request_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+                if (vrifcatopendate != "" && vrifcatopendate != null)
+                {
+                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
+                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
+                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            A.repair_code as '缁翠慨鍗曞彿',
+                            T.torg_name as '鎵�灞炶溅闂�',
+                            A.eqp_code as '璁惧缂栫爜',
+                            E.name as '璁惧鍚嶇О',
+                            B.request_person as '鎶ヤ慨浜哄憳',
+                            B.request_date as '鎶ヤ慨鏃堕棿',
+                            A.repair_person as '缁翠慨浜哄憳',
+                            A.repair_date as '缁翠慨鏃堕棿', 
+                            CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1))  as '缁翠慨鏃堕暱(灏忔椂)',
+                            A.verify_person as '楠岃瘉浜哄憳',
+                            A.verify_date as '楠岃瘉鏃堕棿',
+                            (case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end)as '楠岃瘉缁撴灉' 
+                            from TEqp_Repair A
+                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code 
+                            left join TEqpInfo E on A.eqp_code=E.code
+                            left join TOrganization T on A.wksp_code=T.torg_code
+                            where 1=1 " + 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
     }
 }
diff --git a/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
index 5b8bb51..662e98d 100644
--- a/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
@@ -784,6 +784,31 @@
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
+                    //0.鍒ゆ柇褰撳墠鏉$爜宸ュ簭浠诲姟涓嶅瓨鍦�
+                    sql = @"select *   from TK_Wrk_Step where wo_code=@ordercode and step_code=@step_code";
+                    dynamicParams.Add("@ordercode", ordercode);
+                    dynamicParams.Add("@step_code", stepcode);
+                    var da1 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (da1.Rows.Count <= 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "褰撳墠鏉$爜,宸ュ簭浠诲姟涓嶅瓨鍦�,璇疯仈绯荤鐞嗗憳!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+                    sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode  and status='CLOSED'";
+                    dynamicParams.Add("@ordercode", ordercode);
+                    var da0 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (da0.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁告楠屾搷浣�!";
+                        mes.data = null;
+                        return mes;
+                    }                 
                     //閫氳繃鎵弿浜岀淮鐮佷俊鎭煡鎵句换鍔′俊鎭�
                     sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.idinventoryclass as stocktype_code,S.stepcode,S.stepname  
                             from TK_Wrk_Step A
diff --git a/VueWebCoreApi/Tools/TOrganizationRecursion.cs b/VueWebCoreApi/Tools/TOrganizationRecursion.cs
index c5d7706..b805175 100644
--- a/VueWebCoreApi/Tools/TOrganizationRecursion.cs
+++ b/VueWebCoreApi/Tools/TOrganizationRecursion.cs
@@ -10,9 +10,9 @@
     {
         public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
 
-        #region [鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩)]
+        #region [鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩,甯﹀崟寮曞彿)]
         /// <summary>
-        /// 鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩)
+        /// 鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩,甯﹀崟寮曞彿)
         /// </summary>
         /// <param name="torg_code">缁勭粐缂栫爜</param>
         /// <returns></returns>
@@ -60,5 +60,56 @@
             return mes;
         }
         #endregion
+
+        #region [鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩,涓嶅甫鍗曞紩鍙�)]
+        /// <summary>
+        /// 鏍规嵁褰撳墠缁勭粐缂栫爜鑾峰彇鎵�鏈夊瓙鑺傜偣缁勭粐(鍖呭惈鑷韩,涓嶅甫鍗曞紩鍙�)
+        /// </summary>
+        /// <param name="torg_code">缁勭粐缂栫爜</param>
+        /// <returns></returns>
+        public static ToMessage TOrgCodeSeachNo(string torg_code)
+        {
+            string sql;
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @" WITH RecursiveCTE AS (
+                      SELECT id, parent_id, torg_code, torg_name, status, leve, torg_seq 
+                      FROM TOrganization 
+                      WHERE torg_code = @torg_code
+                      UNION ALL 
+                      SELECT o.id, o.parent_id, o.torg_code, o.torg_name, o.status, o.leve, o.torg_seq 
+                      FROM TOrganization o 
+                      INNER JOIN RecursiveCTE r ON r.torg_code = o.parent_id 
+                  ) 
+                  SELECT STUFF((SELECT ',' + torg_code FROM RecursiveCTE 
+                  FOR XML PATH('')), 1, 1, '') AS torg_codelist";
+                dynamicParams.Add("@torg_code", torg_code);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0 && data.Rows[0]["torg_codelist"].ToString() != null)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鏌ヨ鎴愬姛!";
+                    mes.data = data.Rows[0]["torg_codelist"].ToString();
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "褰撳墠鐢ㄦ埛鎵�灞炵粍缁囩紪鐮併��" + torg_code + "銆戜笉瀛樺湪!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_2_5.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_2_5.png
new file mode 100644
index 0000000..fb631b6
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_2_5.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4.png
new file mode 100644
index 0000000..b6cce43
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4_1.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_1.png
new file mode 100644
index 0000000..bad5496
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_1.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4_2.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_2.png
new file mode 100644
index 0000000..2db937a
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_2.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4_3.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_3.png
new file mode 100644
index 0000000..35e7ffa
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_3.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4_4.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_4.png
new file mode 100644
index 0000000..a22f8b1
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_4.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_4_5.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_5.png
new file mode 100644
index 0000000..c639232
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_4_5.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6.png
new file mode 100644
index 0000000..4d40ea4
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_1.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_1.png
new file mode 100644
index 0000000..d05f494
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_1.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_10.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_10.png
new file mode 100644
index 0000000..91bc400
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_10.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_11.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_11.png
new file mode 100644
index 0000000..1ebb6f4
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_11.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_12.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_12.png
new file mode 100644
index 0000000..ba94d5c
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_12.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_13.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_13.png
new file mode 100644
index 0000000..a4ab53b
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_13.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_14.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_14.png
new file mode 100644
index 0000000..6c2981e
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_14.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_2.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_2.png
new file mode 100644
index 0000000..d512935
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_2.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_3.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_3.png
new file mode 100644
index 0000000..a9431b2
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_3.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_4.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_4.png
new file mode 100644
index 0000000..2d2d722
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_4.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_5.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_5.png
new file mode 100644
index 0000000..8bcaccc
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_5.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_6.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_6.png
new file mode 100644
index 0000000..2353e4d
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_6.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_7.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_7.png
new file mode 100644
index 0000000..23f5f22
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_7.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_8.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_8.png
new file mode 100644
index 0000000..d3397cd
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_8.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_6_9.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_9.png
new file mode 100644
index 0000000..6542617
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_6_9.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_8.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_8.png
new file mode 100644
index 0000000..3bb319a
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_8.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_8_1.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_8_1.png
new file mode 100644
index 0000000..795daa7
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_8_1.png
Binary files differ
diff --git a/VueWebCoreApi/wwwroot/AppMenuImage/app_8_2.png b/VueWebCoreApi/wwwroot/AppMenuImage/app_8_2.png
new file mode 100644
index 0000000..cee7be0
--- /dev/null
+++ b/VueWebCoreApi/wwwroot/AppMenuImage/app_8_2.png
Binary files differ

--
Gitblit v1.9.3