From 0cc1531f55cfa7927abec8624ddce3db45201ee7 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 24 十月 2023 17:24:43 +0800
Subject: [PATCH] 1.班组工资报表功能接口、人员工资明细报表功能接口 2.委外报表功能接口、不良明细报表功能接口、维修明细报表功能接口 3.模具清单查看履历接口、模具上机过滤已上模设备接口 4.模具点检记录报表功能接口、模具保养记录报表功能接口 5.模具维修记录报表功能接口

---
 VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs            |   82 +
 VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs             |   80 +
 VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs            | 1024 ++++++++++++++++++++++
 VueWebCoreApi/Controllers/MouldManagerController.cs  |  319 +++++++
 VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs             |  799 +++++++++++++++++
 VueWebCoreApi/Controllers/ReportManagerController.cs |  350 +++++++
 6 files changed, 2,638 insertions(+), 16 deletions(-)

diff --git a/VueWebCoreApi/Controllers/MouldManagerController.cs b/VueWebCoreApi/Controllers/MouldManagerController.cs
index 32bcae9..beb8e42 100644
--- a/VueWebCoreApi/Controllers/MouldManagerController.cs
+++ b/VueWebCoreApi/Controllers/MouldManagerController.cs
@@ -44,10 +44,10 @@
         {
             string opendate = "";     //寮�濮嬫椂闂�
             string closedate = "";    //缁撴潫鏃堕棿
-            if (createuser != "" && createuser != null)
+            if (createdate != "" && createdate != null)
             {
-                opendate = createuser.Split('~')[0].ToString();
-                closedate = createuser.Split('~')[1].ToString();
+                opendate = createdate.Split('~')[0].ToString();
+                closedate = createdate.Split('~')[1].ToString();
             }
             int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
             int endNum = rows * page;   //缁撴潫璁板綍 rowNum
@@ -77,6 +77,35 @@
             string mouldpart = obj["mouldpart"].ToString(); //鍏宠仈浜у搧
             string opertype = obj["opertype"].ToString();  //鎿嶄綔绫诲瀷
             mes = MouldManagerBLL.AddUpdateMouldManger(mouldcode, mouldname, mouldspec, surplife, resilife, status, mouldpart, opertype, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿娓呭崟鏌ョ湅灞ュ巻]
+        /// <summary>
+        /// 妯″叿娓呭崟鏌ョ湅灞ュ巻
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="createdate">鎿嶄綔鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "MoldResumeSearch")]
+        [HttpGet]
+        public JsonResult MoldResumeSearch(string mouldcode, string createdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            string opendate = "";     //寮�濮嬫椂闂�
+            string closedate = "";    //缁撴潫鏃堕棿
+            if (createdate != "" && createdate != null)
+            {
+                opendate = createdate.Split('~')[0].ToString();
+                closedate = createdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = MouldManagerBLL.MoldResumeSearch(mouldcode,opendate, closedate, startNum, endNum, prop, order);
             return Json(mes);
         }
         #endregion
@@ -745,6 +774,20 @@
         }
         #endregion
 
+        #region[妯″叿涓婃満,閫夋嫨鏈笂妯¤澶嘳
+        /// <summary>
+        /// 妯″叿涓婃満,閫夋嫨鏈笂妯¤澶�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "MouldEqpPermissions")]
+        [HttpGet]
+        public JsonResult MouldEqpPermissions()
+        {
+            mes = MouldManagerBLL.MouldEqpPermissions();
+            return Json(mes);
+        }
+        #endregion
+
         #region[妯″叿涓婃満鎻愪氦]
         /// <summary>
         /// 妯″叿涓婃満鎻愪氦
@@ -943,5 +986,275 @@
             return Json(mes);
         }
         #endregion
+
+
+        #region[妯″叿鐐规璁板綍鏌ヨ]
+        /// <summary>
+        /// 妯″叿鐐规璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stanedcode">鐐规鏍囧噯缂栫爜</param>
+        /// <param name="stanedname">鐐规鏍囧噯鍚嶇О</param>
+        /// <param name="checkuser">鐐规浜哄憳</param>
+        /// <param name="checkdate">鐐规鏃堕棿</param>
+        /// <param name="checkrequest">鐐规缁撴灉</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "MouldCheckTakeSearch")]
+        [HttpGet]
+        public JsonResult MouldCheckTakeSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null,string stanedname=null, string checkuser = null, string checkdate = null,string checkrequest=null)
+        {
+            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 = MouldManagerBLL.MouldCheckTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿鐐规璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 妯″叿鐐规璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="id">鐐规璁板綍涓籭d</param>
+        /// <returns></returns>
+        [Route(template: "MouldCheckSubTakeSearch")]
+        [HttpGet]
+        public JsonResult MouldCheckSubTakeSearch(string id)
+        {
+            mes = MouldManagerBLL.MouldCheckSubTakeSearch(id);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿鐐规璁板綍瀵煎嚭]
+        /// <summary>
+        /// 妯″叿鐐规璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stanedcode">鐐规鏍囧噯缂栫爜</param>
+        /// <param name="stanedname">鐐规鏍囧噯鍚嶇О</param>
+        /// <param name="checkuser">鐐规浜哄憳</param>
+        /// <param name="checkdate">鐐规鏃堕棿</param>
+        /// <param name="checkrequest">鐐规缁撴灉</param>
+        /// <returns></returns>
+        [Route(template: "MouldCheckTakeOutExcel")]
+        [HttpGet]
+        public JsonResult MouldCheckTakeOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null, string stanedname = null, string checkuser = null, string checkdate = null,string checkrequest=null)
+        {
+            string checkopendate = "";  //鐐规寮�濮嬫椂闂�
+            string checkclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (checkdate != "" && checkdate != null)
+            {
+                checkopendate = checkdate.Split('~')[0].ToString();
+                checkclosedate = checkdate.Split('~')[1].ToString();
+            }
+            mes = MouldManagerBLL.MouldCheckTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[妯″叿淇濆吇璁板綍鏌ヨ]
+        /// <summary>
+        /// 妯″叿淇濆吇璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stanedcode">淇濆吇鏍囧噯缂栫爜</param>
+        /// <param name="stanedname">淇濆吇鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "MouldRepairTakeSearch")]
+        [HttpGet]
+        public JsonResult MouldRepairTakeSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null,string stanedcode=null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
+        {
+            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 = MouldManagerBLL.MouldRepairTakeSearch(mouldcode, mouldname, mouldspec, stanedcode,stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿淇濆吇璁板綍鏄庣粏鏌ヨ]
+        /// <summary>
+        /// 妯″叿淇濆吇璁板綍鏄庣粏鏌ヨ
+        /// </summary>
+        /// <param name="id">淇濆吇璁板綍涓昏〃id</param>
+        /// <returns></returns>
+        [Route(template: "MouldRepairSubTakeSearch")]
+        [HttpGet]
+        public JsonResult MouldRepairSubTakeSearch(string id)
+        {
+            mes = MouldManagerBLL.MouldRepairSubTakeSearch(id);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿淇濆吇璁板綍瀵煎嚭]
+        /// <summary>
+        /// 妯″叿淇濆吇璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stanedcode">淇濆吇鏍囧噯缂栫爜</param>
+        /// <param name="stanedname">淇濆吇鏍囧噯鍚嶇О</param>
+        /// <param name="repairuser">淇濆吇浜哄憳</param>
+        /// <param name="repairdate">淇濆吇鏃堕棿</param>
+        /// <param name="repairresult">淇濆吇缁撴灉</param>
+        /// <returns></returns>
+        [Route(template: "MouldRepairTakeOutExcel")]
+        [HttpGet]
+        public JsonResult MouldRepairTakeOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
+        {
+            string repairopendate = "";  //鐐规寮�濮嬫椂闂�
+            string repairclosedate = "";    //鐐规缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            mes = MouldManagerBLL.MouldRepairTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[妯″叿缁翠慨璁板綍鏌ヨ]
+        /// <summary>
+        /// 妯″叿缁翠慨璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="reportuser">鎶ヤ慨浜哄憳</param>
+        /// <param name="reportdate">鎶ヤ慨鏃堕棿</param>
+        /// <param name="repairuser">缁翠慨浜哄憳</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <param name="vrifcatuser">楠岃瘉浜哄憳</param>
+        /// <param name="vrifcatdate">楠岃瘉鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "MouldUpdateSearch")]
+        [HttpGet]
+        public JsonResult MouldUpdateSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null, string reportuser = null, string reportdate = null, string repairuser = null, string repairdate = null, string vrifcatuser = null, string vrifcatdate = null)
+        {
+            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 = MouldManagerBLL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, 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: "MouldUpdateSubSearch")]
+        [HttpGet]
+        public JsonResult MouldUpdateSubSearch(string repair_code)
+        {
+            mes = MouldManagerBLL.MouldUpdateSubSearch(repair_code);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[妯″叿缁翠慨璁板綍瀵煎嚭]
+        /// <summary>
+        /// 妯″叿缁翠慨璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="mouldcode">妯″叿缂栫爜</param>
+        /// <param name="mouldname">妯″叿鍚嶇О</param>
+        /// <param name="mouldspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="reportuser">鎶ヤ慨浜哄憳</param>
+        /// <param name="reportdate">鎶ヤ慨鏃堕棿</param>
+        /// <param name="repairuser">缁翠慨浜哄憳</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <param name="vrifcatuser">楠岃瘉浜哄憳</param>
+        /// <param name="vrifcatdate">楠岃瘉鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "MouldUpdateOutExcel")]
+        [HttpGet]
+        public JsonResult MouldUpdateOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string reportuser = null, string reportdate = null, string repairuser = null, string repairdate = null, string vrifcatuser = null, string vrifcatdate = null)
+        {
+            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 = MouldManagerBLL.MouldUpdateOutExcel(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
+            return Json(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/Controllers/ReportManagerController.cs b/VueWebCoreApi/Controllers/ReportManagerController.cs
index 12653d6..39b3c80 100644
--- a/VueWebCoreApi/Controllers/ReportManagerController.cs
+++ b/VueWebCoreApi/Controllers/ReportManagerController.cs
@@ -12,7 +12,7 @@
     [ApiExplorerSettings(GroupName = "缁熻鎶ヨ〃")]
     [ApiController]
     [Route("api/[controller]")]
-    //[ChannelActionFilter]
+    [ChannelActionFilter]
     public class ReportManagerController : Controller
     {
         //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
@@ -82,5 +82,353 @@
             return Json(mes);
         }
         #endregion
+
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ]
+        /// <summary>
+        /// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="compute">璁$畻鏂瑰紡(閫愰亾/鏈亾)</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="groupcode">鐢熶骇鐝粍</param>
+        /// <param name="username">鎿嶄綔浜哄憳</param>
+        /// <param name="operdate">鎿嶄綔鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "GroupSalaryReportSearch")]
+        [HttpGet]
+        public JsonResult GroupSalaryReportSearch(int page, int rows, string prop, string order, string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string groupcode = null, string username = null, string operdate = null)
+        {
+            string operopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string operclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (operdate != "" && operdate != null)
+            {
+                operopendate = operdate.Split('~')[0].ToString();
+                operclosedate = operdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ReportManagerBLL.GroupSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ョ湅鎶ュ伐浜哄憳]
+        /// <summary>
+        /// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ョ湅鎶ュ伐浜哄憳
+        /// </summary>
+        /// <param name="id">鎶ュ伐璁板綍涓昏〃id</param>
+        /// <returns></returns>
+        [Route(template: "GroupSalaryReportSearchUser")]
+        [HttpGet]
+        public JsonResult GroupSalaryReportSearchUser(string id)
+        {
+            mes = ReportManagerBLL.GroupSalaryReportSearchUser(id);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍瀵煎嚭]
+        /// <summary>
+        /// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="compute">璁$畻鏂瑰紡(閫愰亾/鏈亾)</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="groupcode">鐢熶骇鐝粍</param>
+        /// <param name="username">鎿嶄綔浜哄憳</param>
+        /// <param name="operdate">鎿嶄綔鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "GroupSalaryReportExcelSearch")]
+        [HttpGet]
+        public JsonResult GroupSalaryReportExcelSearch(string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string groupcode = null, string username = null, string operdate = null)
+        {
+            string operopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string operclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (operdate != "" && operdate != null)
+            {
+                operopendate = operdate.Split('~')[0].ToString();
+                operclosedate = operdate.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.GroupSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃]
+        /// <summary>
+        /// 浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃
+        /// </summary>
+        /// <param name="compute">璁$畻鏂瑰紡(閫愰亾/鏈亾)</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepcode">宸ュ簭缂栧彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="reportname">鎶ュ伐浜哄憳</param>
+        /// <param name="reportdate">鎶ュ伐鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "PeopleSalaryReportSearch")]
+        [HttpGet]
+        public JsonResult PeopleSalaryReportSearch(int page, int rows, string prop, string order, string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null,string stepcode=null, string stepname = null, string reportname = null, string reportdate = null)
+        {
+            string reportopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string reportclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ReportManagerBLL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃瀵煎嚭]
+        /// <summary>
+        /// 浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃瀵煎嚭
+        /// </summary>
+        /// <param name="compute">璁$畻鏂瑰紡(閫愰亾/鏈亾)</param>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepcode">宸ュ簭缂栧彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="reportname">鎶ュ伐浜哄憳</param>
+        /// <param name="reportdate">鎶ュ伐鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "PeopleSalaryReportExcelSearch")]
+        [HttpGet]
+        public JsonResult PeopleSalaryReportExcelSearch(string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null,string stepcode=null, string stepname = null, string reportname = null, string reportdate = null)
+        {
+            string reportopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string reportclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.PeopleSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec,stepcode,stepname, reportname, reportopendate, reportclosedate);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[濮斿鎶ヨ〃璁板綍鏌ヨ]
+        /// <summary>
+        /// 濮斿鎶ヨ〃璁板綍鏌ヨ
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="suppername">渚涙柟鍚嶇О</param>
+        /// <param name="type">鎿嶄綔绫诲瀷</param>
+        /// <param name="receivdate">鏀舵枡鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "OutSourceReportSearch")]
+        [HttpGet]
+        public JsonResult OutSourceReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string suppername = null, string type = null, string receivdate = null)
+        {
+            string receivopendate = "";  //鏀舵枡寮�濮嬫椂闂�
+            string receivclosedate = "";    //鏀舵枡缁撴潫鏃堕棿
+            if (receivdate != "" && receivdate != null)
+            {
+                receivopendate = receivdate.Split('~')[0].ToString();
+                receivclosedate = receivdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ReportManagerBLL.OutSourceReportSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[濮斿鎶ヨ〃璁板綍瀵煎嚭]
+        /// <summary>
+        /// 濮斿鎶ヨ〃璁板綍瀵煎嚭
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="suppername">渚涙柟鍚嶇О</param>
+        /// <param name="type">鎿嶄綔绫诲瀷</param>
+        /// <param name="receivdate">鏀舵枡鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "OutSourceReportExcelSearch")]
+        [HttpGet]
+        public JsonResult OutSourceReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string suppername = null, string type = null, string receivdate = null)
+        {
+            string receivopendate = "";  //鏀舵枡寮�濮嬫椂闂�
+            string receivclosedate = "";    //鏀舵枡缁撴潫鏃堕棿
+            if (receivdate != "" && receivdate != null)
+            {
+                receivopendate = receivdate.Split('~')[0].ToString();
+                receivclosedate = receivdate.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.OutSourceReportExcelSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃]
+        /// <summary>
+        /// 涓嶈壇鏄庣粏鎶ヨ〃 
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="defectcode">缂洪櫡浠g爜</param>
+        /// <param name="defectname">缂洪櫡鍚嶇О</param>
+        /// <param name="reportname">鎶ュ伐浜哄憳</param>
+        /// <param name="reportdate">鎶ュ伐鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DefectDetailsReportSearch")]
+        [HttpGet]
+        public JsonResult DefectDetailsReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string defectcode = null, string defectname = null, string reportname = null, string reportdate = null)
+        {
+            string reportopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string reportclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ReportManagerBLL.DefectDetailsReportSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃瀵煎嚭]
+        /// <summary>
+        /// 涓嶈壇鏄庣粏鎶ヨ〃瀵煎嚭 
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="defectcode">缂洪櫡浠g爜</param>
+        /// <param name="defectname">缂洪櫡鍚嶇О</param>
+        /// <param name="reportname">鎶ュ伐浜哄憳</param>
+        /// <param name="reportdate">鎶ュ伐鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "DefectDetailsReportExcelSearch")]
+        [HttpGet]
+        public JsonResult DefectDetailsReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string defectcode = null, string defectname = null, string reportname = null, string reportdate = null)
+        {
+            string reportopendate = "";  //鎶ュ伐寮�濮嬫椂闂�
+            string reportclosedate = "";    //鎶ュ伐缁撴潫鏃堕棿
+            if (reportdate != "" && reportdate != null)
+            {
+                reportopendate = reportdate.Split('~')[0].ToString();
+                reportclosedate = reportdate.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.DefectDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃]
+        /// <summary>
+        /// 缁翠慨鏄庣粏鎶ヨ〃 
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="style">鎿嶄綔绫诲瀷</param>
+        /// <param name="defectname">缂洪櫡鍚嶇О</param>
+        /// <param name="repairname">缁翠慨浜哄憳</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "MaintenanceDetailsReportSearch")]
+        [HttpGet]
+        public JsonResult MaintenanceDetailsReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string style = null, string defectname = null, string repairname = null, string repairdate = null)
+        {
+            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 = ReportManagerBLL.MaintenanceDetailsReportSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃瀵煎嚭]
+        /// <summary>
+        /// 缁翠慨鏄庣粏鎶ヨ〃瀵煎嚭 
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
+        /// <param name="stepname">宸ュ簭鍚嶇О</param>
+        /// <param name="style">鎿嶄綔绫诲瀷</param>
+        /// <param name="defectname">缂洪櫡鍚嶇О</param>
+        /// <param name="repairname">缁翠慨浜哄憳</param>
+        /// <param name="repairdate">缁翠慨鏃堕棿</param>
+        /// <returns></returns>
+        [Route(template: "MaintenanceDetailsReportExcelSearch")]
+        [HttpGet]
+        public JsonResult MaintenanceDetailsReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string style = null, string defectname = null, string repairname = null, string repairdate = null)
+        {
+            string repairopendate = "";  //缁翠慨寮�濮嬫椂闂�
+            string repairclosedate = "";    //缁翠慨缁撴潫鏃堕棿
+            if (repairdate != "" && repairdate != null)
+            {
+                repairopendate = repairdate.Split('~')[0].ToString();
+                repairclosedate = repairdate.Split('~')[1].ToString();
+            }
+            mes = ReportManagerBLL.MaintenanceDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
+            return Json(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs b/VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs
index 2611e96..aca0636 100644
--- a/VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs
@@ -25,6 +25,13 @@
         }
         #endregion
 
+        #region[妯″叿娓呭崟鏌ョ湅灞ュ巻]
+        public static ToMessage MoldResumeSearch(string mouldcode, string opendate, string closedate, int startNum, int endNum, string prop, string order)
+        {
+            return MouldManagerDAL.MoldResumeSearch(mouldcode,opendate, closedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
         #region[妯″叿娓呭崟鍒犻櫎]
         public static ToMessage DeleteMouldManger(string mouldcode, User us)
         {
@@ -295,6 +302,13 @@
         }
         #endregion
 
+        #region[妯″叿涓婃満,閫夋嫨鏈笂妯¤澶嘳
+        public static ToMessage MouldEqpPermissions()
+        {
+            return MouldManagerDAL.MouldEqpPermissions();
+        }
+        #endregion
+
         #region[妯″叿涓婃満鎻愪氦]
         public static ToMessage MouldUpSave(string mouldcode, string eqp_code, string description, User us)
         {
@@ -376,5 +390,71 @@
             return MouldManagerDAL.MouldOutWareHouseSave(mouldcode, warehousecode, description, us);
         }
         #endregion
+
+
+        #region[妯″叿鐐规璁板綍鏌ヨ]
+        public static ToMessage MouldCheckTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest, int startNum, int endNum, string prop, string order)
+        {
+            return MouldManagerDAL.MouldCheckTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[妯″叿鐐规璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage MouldCheckSubTakeSearch(string id)
+        {
+            return MouldManagerDAL.MouldCheckSubTakeSearch(id);
+        }
+        #endregion
+
+        #region[妯″叿鐐规璁板綍瀵煎嚭]
+        public static ToMessage MouldCheckTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest)
+        {
+            return MouldManagerDAL.MouldCheckTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest);
+        }
+        #endregion
+
+
+        #region[妯″叿淇濆吇璁板綍鏌ヨ]
+        public static ToMessage MouldRepairTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
+        {
+            return MouldManagerDAL.MouldRepairTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[妯″叿淇濆吇璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage MouldRepairSubTakeSearch(string id)
+        {
+            return MouldManagerDAL.MouldRepairSubTakeSearch(id);
+        }
+        #endregion
+
+        #region[妯″叿淇濆吇璁板綍瀵煎嚭]
+        public static ToMessage MouldRepairTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            return MouldManagerDAL.MouldRepairTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
+        }
+        #endregion
+
+
+        #region[妯″叿缁翠慨璁板綍鏌ヨ]
+        public static ToMessage MouldUpdateSearch(string mouldcode, string mouldname, string mouldspec, 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 MouldManagerDAL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[妯″叿缁翠慨璁板綍鏄庣粏鏌ヨ]
+        public static ToMessage MouldUpdateSubSearch(string repair_code)
+        {
+            return MouldManagerDAL.MouldUpdateSubSearch(repair_code);
+        }
+        #endregion
+
+        #region[妯″叿缁翠慨璁板綍瀵煎嚭]
+        public static ToMessage MouldUpdateOutExcel(string mouldcode, string mouldname, string mouldspec, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
+        {
+            return MouldManagerDAL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs b/VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
index 887c602..2f5db86 100644
--- a/VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
@@ -22,5 +22,87 @@
             return ReportManagerDAL.ProductionScheduleReportExcelSearch(status, wocode, wkshopcode, wkshopname, partcode, partname, partspec, opendate, closedate);
         }
         #endregion
+
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ]
+        public static ToMessage GroupSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.GroupSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ョ湅鎶ュ伐浜哄憳]
+        public static ToMessage GroupSalaryReportSearchUser(string id)
+        {
+            return ReportManagerDAL.GroupSalaryReportSearchUser(id);
+        }
+        #endregion
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍瀵煎嚭]
+        public static ToMessage GroupSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
+        {
+           return ReportManagerDAL.GroupSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate);
+        }
+        #endregion
+
+
+        #region[浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃]
+        public static ToMessage PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec,string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage PeopleSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
+        {
+            return ReportManagerDAL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate);
+        }
+        #endregion
+
+
+        #region[濮斿鎶ヨ〃璁板綍鏌ヨ]
+        public static ToMessage OutSourceReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.OutSourceReportSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[濮斿鎶ヨ〃璁板綍瀵煎嚭]
+        public static ToMessage OutSourceReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate)
+        {
+            return ReportManagerDAL.OutSourceReportExcelSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate);
+        }
+        #endregion
+
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃]
+        public static ToMessage DefectDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.DefectDetailsReportSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage DefectDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate)
+        {
+            return ReportManagerDAL.DefectDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate);
+        }
+        #endregion
+
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃]
+        public static ToMessage MaintenanceDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate, int startNum, int endNum, string prop, string order)
+        {
+            return ReportManagerDAL.MaintenanceDetailsReportSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage MaintenanceDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate)
+        {
+            return ReportManagerDAL.MaintenanceDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs b/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
index a7085be..148d517 100644
--- a/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
@@ -66,10 +66,6 @@
                     dynamicParams.Add("@opendate", opendate + " 00:00:00");
                     dynamicParams.Add("@closedate", closedate + " 23:59:59");
                 }
-                if (search == "")
-                {
-                    search = "and 1=1 ";
-                }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select A.status,A.usestatus,A.code,A.name,A.spec,A.warehousecode,S.name as warehousename,
@@ -234,6 +230,76 @@
                         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 MoldResumeSearch(string mouldcode, string opendate, string closedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (opendate != "" && opendate != null)
+                {
+                    search += "and AA.operdate between @opendate and @closedate ";
+                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
+                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select *  from (
+                            select '鐐规' as opertype,chk_user as operuser,chk_date as operdate,chk_result as operresult 
+                            from TMouldchk_Proc_Main where mould_code='001' 
+                            union all
+                            select '淇濆吇' as opertype,maint_user as operuser,maint_date as operdate,maint_result as operresult   
+                            from TMouldmaint_Proc_Main where mould_code='001' 
+                            union all
+                            select '寰呯淮淇�' as opertype,request_person as operuser,request_date as operdate,'缁翠慨鐢宠' as operresult   
+                            from TMould_RepairRequest where mould_code='001'
+                            union all
+                            select '宸茬淮淇�' as opertype,repair_person as operuser,repair_date as operdate,'缁翠慨瀹屾垚' as operresult    
+                            from TMould_RepairRequest A
+                            inner join TMould_Repair B on A.docu_code=B.source_wo
+                            where A.mould_code='001' and B.repair_person<>''
+                            union all
+                            select '宸查獙璇�' as opertype,verify_person as operuser,verify_date as operdate,B.verify_result as operresult   
+                            from TMould_RepairRequest A
+                            inner join TMould_Repair B on A.docu_code=B.source_wo
+                            where A.mould_code='001' and B.verify_person<>''
+                            union all
+                            select '宸蹭笂鏈�' as opertype,lm_user as operuser,lm_date as operdate,eqp_code as operresult   
+                            from TMould_UpDownReord  where mould_code='001' and type='UP'
+                            union all
+                            select '宸蹭笅鏈�' as opertype,lm_user as operuser,lm_date as operdate,eqp_code as operresult   
+                            from TMould_UpDownReord  where mould_code='001' and type='DOWN'
+                            union all
+                            select '宸插叆搴�' as opertype,lm_user as operuser,lm_date as operdate,warehouse_code as operresult   
+                            from TMould_InOutReord  where mould_code='001' and type='IN'
+                            union all
+                            select '宸插嚭搴�' as opertype,lm_user as operuser,lm_date as operdate,warehouse_code as operresult   
+                            from TMould_InOutReord  where mould_code='001' and type='OUT'
+                            union all
+                            select '宸插鍊�' as opertype,lm_user as operuser,lm_date as operdate,description as operresult   
+                            from TMould_LendOutReord  where mould_code='001' and type='OUT'
+                            union all
+                            select '宸插綊杩�' as opertype,lm_user as operuser,lm_date as operdate,description as operresult   
+                            from TMould_LendOutReord  where mould_code='001' and type='IN'
+                            ) as AA where 1=1 "+search+"  order by AA.operdate desc ";
+                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)
             {
@@ -2132,7 +2198,8 @@
                     {
                         IFormFile file = files[i];
                         string imgName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
-                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕
+                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻枃浠跺湴鍧�)
+                        string filePath1 = "MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻暟鎹〃鍦板潃)
 
                         // 鐢熸垚鏂囦欢鍚�
                         //var fileName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
@@ -2155,7 +2222,7 @@
                             {
                                 source_wo = sqwo,
                                 wo_type = "REPA",
-                                img1url = filePath
+                                img1url = filePath1
                             }
                         });
                     }
@@ -2287,8 +2354,8 @@
                     {
                         IFormFile file = files[i];
                         string imgName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
-                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕
-
+                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻枃浠跺湴鍧�)
+                        string filePath1 = "MouldRecordImage/" + imgName + file.FileName;     //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻暟鎹〃鍦板潃)
                         // 鐢熸垚鏂囦欢鍚�
                         //var fileName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
 
@@ -2310,7 +2377,7 @@
                             {
                                 source_wo = wxwo,
                                 wo_type = "COMP",
-                                img1url = filePath
+                                img1url = filePath1
                             }
                         });
                     }
@@ -2381,7 +2448,7 @@
             var dynamicParams = new DynamicParameters();
             try
             {
-                if (mouldcode == "" || mouldcode == null)
+                if (mouldcode != "" && mouldcode != null)
                 {
                     search += "and B.code=@mouldcode ";
                     dynamicParams.Add("@mouldcode", mouldcode);
@@ -2430,7 +2497,7 @@
                 //鏍规嵁璁炬ā鍏风紪鐮佽幏鍙栫淮淇鎯�
                 sql = @"select repair_code,failure_descript,is_shutdown,repair_content,repair_part   
                         from TMould_Repair 
-                        where repair_code=@repair_code  and mould_code=mouldcode";
+                        where repair_code=@repair_code  and mould_code=@mouldcode";
                 dynamicParams.Add("@repair_code", repair_code);
                 dynamicParams.Add("@mouldcode", mouldcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
@@ -2629,6 +2696,33 @@
         }
         #endregion
 
+        #region[妯″叿涓婃満,閫夋嫨鏈笂妯¤澶嘳
+        public static ToMessage MouldEqpPermissions()
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select code,name   from TEqpInfo where  enable='Y' and code not in 
+                        (
+                          select distinct eqp_code   from TMould_UpDownReord where is_up='Y'
+                        )";
+                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 MouldUpSave(string mouldcode, string eqp_code, string description, User us)
         {
@@ -2767,7 +2861,7 @@
                 list.Clear();
                 //鍐欏叆涓婁笅鏈烘満璁板綍琛�(涓嬫満鎿嶄綔)
                 sql = @"insert into  TMould_UpDownReord(mould_code,type,usecount_life,eqp_code,description,is_up,lm_user,lm_date) 
-                        values(@mould_code,@type,@eqp_code,@description,@is_up,@lm_user,@lm_date)";
+                        values(@mould_code,@type,@usecount_life,@eqp_code,@description,@is_up,@lm_user,@lm_date)";
                 list.Add(new
                 {
                     str = sql,
@@ -3342,5 +3436,686 @@
             return mes;
         }
         #endregion
+
+
+        #region[妯″叿鐐规璁板綍鏌ヨ]
+        public static ToMessage MouldCheckTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (stanedcode != "" && stanedcode != null)
+                {
+                    search += "and M.code like '%'+@stanedcode+'%' ";
+                    dynamicParams.Add("@stanedcode", stanedcode);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (checkuser != "" && checkuser != null)
+                {
+                    search += "and U.username like '%'+@checkuser+'%' ";
+                    dynamicParams.Add("@checkuser", checkuser);
+                }
+                if (checkrequest != "" && checkrequest != null)
+                {
+                    search += "and A.chk_result=@checkrequest ";
+                    dynamicParams.Add("@checkrequest", checkrequest);
+                }
+                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");
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.djwo,A.mould_code,E.name as mould_name,E.spec as mould_spec,M.code as stanedcode,M.name as stanedname,
+                            U.username as chk_user,A.chk_result,A.chk_date
+                            from TMouldchk_Proc_Main A
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TMouldchk_Main M on A.mouldchkmain_code=M.code
+                            left join TUser U on A.chk_user=U.usercode 
+                            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 MouldCheckSubTakeSearch(string id)
+        {
+            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 TMouldchk_Proc_Deta A
+                        left join TMouldchk_Item T on A.mouldchkdeta_code=T.code
+                        where A.m_id=@id";
+                dynamicParams.Add("@id", id);
+                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 MouldCheckTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (stanedcode != "" && stanedcode != null)
+                {
+                    search += "and M.code like '%'+@stanedcode+'%' ";
+                    dynamicParams.Add("@stanedcode", stanedcode);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (checkuser != "" && checkuser != null)
+                {
+                    search += "and U.username like '%'+@checkuser+'%' ";
+                    dynamicParams.Add("@checkuser", checkuser);
+                }
+                if (checkrequest != "" && checkrequest != null)
+                {
+                    search += "and A.chk_result=@checkrequest ";
+                    dynamicParams.Add("@checkrequest", checkrequest);
+                }
+                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");
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.djwo
+                            ELSE ''END AS '鐐规鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.mould_code
+                            ELSE ''END AS '妯″叿缂栧彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN E.name
+                            ELSE ''END AS '妯″叿鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN E.spec
+                            ELSE ''END AS '瑙勬牸鍨嬪彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.mouldchkmain_code
+                            ELSE ''END AS '鐐规鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN M.name
+                            ELSE ''END AS '鐐规鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN U.username
+                            ELSE ''END AS '妫�楠屼汉鍛�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.chk_result
+                            ELSE ''END AS '妫�楠岀粨鏋�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.chk_date
+                            END AS '妫�楠屾椂闂�',
+                            B.seq as '鐐规閮ㄤ綅搴忓彿',H.code '鐐规閮ㄤ綅缂栫爜',H.name '鐐规閮ㄤ綅鍚嶇О',B.result '鐐规缁撴灉',B.chk_value '鏁板��',B.remark '澶囨敞'
+                            from TMouldchk_Proc_Main A
+                            left join TMouldchk_Proc_Deta B on A.id=B.m_id
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TMouldchk_Main M on A.mouldchkmain_code=M.code
+                            left join TMouldchk_Item H on B.mouldchkdeta_code=H.code
+                            left join TUser U on A.chk_user=U.usercode
+                            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 MouldRepairTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, 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 (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (stanedcode != "" && stanedcode != null)
+                {
+                    search += "and M.code like '%'+@stanedcode+'%' ";
+                    dynamicParams.Add("@stanedcode", stanedcode);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and U.username 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,A.mould_code,E.name as mould_name,E.spec as mould_spec,M.code as stanedcode,M.name as stanedname,
+                            U.username as maint_user,A.maint_result,A.maint_date
+                            from TMouldmaint_Proc_Main A
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TMouldmai_Main M on A.mouldmaint_code=M.code
+                            left join TUser U on A.maint_user=U.usercode
+                            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 MouldRepairSubTakeSearch(string id)
+        {
+            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 TMouldmaint_Proc_Deta A
+                        left join TMouldmai_Item T on A.mouldmaideta_code=T.code
+                        where A.m_id=@id";
+                dynamicParams.Add("@id", id);
+                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 MouldRepairTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (stanedcode != "" && stanedcode != null)
+                {
+                    search += "and M.code like '%'+@stanedcode+'%' ";
+                    dynamicParams.Add("@stanedcode", stanedcode);
+                }
+                if (stanedname != "" && stanedname != null)
+                {
+                    search += "and M.name like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@stanedname", stanedname);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and U.username 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 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.bywo
+                            ELSE ''END AS '淇濆吇鍗曞彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.mould_code
+                            ELSE ''END AS '妯″叿缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN E.name
+                            ELSE ''END AS '妯″叿鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN E.spec
+                            ELSE ''END AS '瑙勬牸鍨嬪彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.mouldmaint_code
+                            ELSE ''END AS '淇濆吇鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN M.name
+                            ELSE ''END AS '淇濆吇鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN U.username
+                            ELSE ''END AS '淇濆吇浜哄憳',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.maint_result
+                            ELSE ''END AS '淇濆吇缁撴灉',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.mouldmaideta_code) = 1 THEN A.maint_date
+                            END AS '淇濆吇鏃堕棿',
+                            B.seq as '淇濆吇閮ㄤ綅搴忓彿',H.code '淇濆吇閮ㄤ綅缂栫爜',H.name '淇濆吇閮ㄤ綅鍚嶇О',B.result '淇濆吇缁撴灉',B.maint_value '鏁板��',B.remark '澶囨敞'
+                            from TMouldmaint_Proc_Main A
+                            left join TMouldmaint_Proc_Deta B on A.id=B.m_id
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TMouldmai_Main M on A.mouldmaint_code=M.code
+                            left join TMouldmai_Item H on B.mouldmaideta_code=H.code
+                            left join TUser U on A.maint_user=U.usercode
+                            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 MouldUpdateSearch(string mouldcode, string mouldname, string mouldspec, 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 (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (reportuser != "" && reportuser != null)
+                {
+                    search += "and U.username like '%'+@reportuser+'%' ";
+                    dynamicParams.Add("@reportuser", reportuser);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and R.username like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (vrifcatuser != "" && vrifcatuser != null)
+                {
+                    search += "and V.username 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.mould_code,E.name as mould_name,E.spec as mould_spec,U.username as request_person,B.request_date,
+                            R.username as repair_person,A.repair_date,CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as cycleDate,
+                            V.username as verify_person,A.verify_date,(case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end)as verify_result 
+                            from TMould_Repair A
+                            left join TMould_RepairRequest B on A.source_wo=B.docu_code 
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TUser U on B.request_person=U.usercode
+                            left join TUser R on A.repair_person=R.usercode
+                            left join TUser V on A.verify_person=V.usercode
+                            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 MouldUpdateSubSearch(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 '鎵嬪伐'
+                       end
+                       ) as source,B.failure_descript 
+                       from TMould_Repair A
+                       left join TMould_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 TMould_Repair A
+                        left join TMould_RepairRequest B on A.source_wo=B.docu_code
+                        left join TMould_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 TMould_Repair A
+                        left join TMould_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 from TMould_Repair A
+                        left join TMould_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 MouldUpdateSearch(string mouldcode, string mouldname, string mouldspec, 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 (mouldcode != "" && mouldcode != null)
+                {
+                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
+                    dynamicParams.Add("@mouldcode", mouldcode);
+                }
+                if (mouldname != "" && mouldname != null)
+                {
+                    search += "and E.name like '%'+@mouldname+'%' ";
+                    dynamicParams.Add("@mouldname", mouldname);
+                }
+                if (mouldspec != "" && mouldspec != null)
+                {
+                    search += "and E.spec like '%'+@mouldspec+'%' ";
+                    dynamicParams.Add("@mouldspec", mouldspec);
+                }
+                if (reportuser != "" && reportuser != null)
+                {
+                    search += "and U.username like '%'+@reportuser+'%' ";
+                    dynamicParams.Add("@reportuser", reportuser);
+                }
+                if (repairuser != "" && repairuser != null)
+                {
+                    search += "and R.username like '%'+@repairuser+'%' ";
+                    dynamicParams.Add("@repairuser", repairuser);
+                }
+                if (vrifcatuser != "" && vrifcatuser != null)
+                {
+                    search += "and V.username 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 '缁翠慨鍗曞彿',A.mould_code as '妯″叿缂栫爜',E.name as '妯″叿鍚嶇О',E.spec as '瑙勬牸鍨嬪彿',
+                            U.username as '鎶ヤ慨浜哄憳',B.request_date as '鎶ヤ慨鏃堕棿',R.username as '缁翠慨浜哄憳',A.repair_date as '缁翠慨鏃堕棿',
+                            CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as '缁翠慨鏃堕暱',
+                            V.username as '楠岃瘉浜哄憳',A.verify_date as '楠岃瘉鏃堕棿',(case when A.verify_result='OK' then '閫氳繃' when  A.verify_result='NG' then '涓嶉�氳繃' end) as '楠岃瘉缁撴灉' 
+                            from TMould_Repair A
+                            left join TMould_RepairRequest B on A.source_wo=B.docu_code 
+                            left join TMouldInfo E on A.mould_code=E.code
+                            left join TUser U on B.request_person=U.usercode
+                            left join TUser R on A.repair_person=R.usercode
+                            left join TUser V on A.verify_person=V.usercode
+                            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/ReportManagerDAL.cs b/VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
index a961364..5872621 100644
--- a/VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
@@ -221,5 +221,1029 @@
             return mes;
         }
         #endregion
+
+
+        #region[鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ]
+        public static ToMessage GroupSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (compute == "last")  //鏈亾宸ュ簭
+                {
+                    search += "and P.isend=@isend ";
+                    dynamicParams.Add("@isend", "Y");
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and T.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (groupcode != "" && groupcode != null)
+                {
+                    search += "and G.usergroupcode=@groupcode ";
+                    dynamicParams.Add("@groupcode", groupcode);
+                }
+                if (username != "" && username != null)
+                {
+                    search += "and U.username like '%'+@username+'%' ";
+                    dynamicParams.Add("@username", username);
+                }
+                if (operopendate != "" && operopendate != null)
+                {
+                    search += "and B.report_date between @operopendate and @operclosedate ";
+                    dynamicParams.Add("@operopendate", operopendate + " 00:00:00");
+                    dynamicParams.Add("@operclosedate", operclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select distinct A.id,A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,A.task_qty,G.usergroupcode,G.usergroupname,A.good_qty,
+                            isnull(P.stepprice,0) as unprice,A.good_qty*isnull(P.stepprice,0) as usermoney,U.username as lm_user,A.lm_date,B.report_date   
+                            from TK_Wrk_Record A
+                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
+                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code 
+                            left  join TK_Wrk_Man K on A.wo_code=K.wo_code
+                            left  join TGroup G on B.usergroup_code=G.usergroupcode
+                            left  join TMateriel_Info M on A.materiel_code=M.partcode
+                            left  join TStep T on A.step_code=T.stepcode
+                            left  join TUser U on A.lm_user=U.usercode 
+                            where B.usergroup_code<>'' and A.style='B' " + 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 GroupSalaryReportSearchUser(string id)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鑾峰彇鎶ュ伐浜哄憳
+                sql = @"select S.report_person as usercode,
+                        STUFF((SELECT ',' + U.username
+                        FROM TUser U
+                        WHERE CHARINDEX(',' + U.usercode + ',', ',' + S.report_person + ',') > 0
+                        FOR XML PATH('')), 1, 1, '') AS username   
+                        from TK_Wrk_RecordSub S
+                        where m_id=@id";
+                dynamicParams.Add("@id", id);
+                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 GroupSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (compute == "last")  //鏈亾宸ュ簭
+                {
+                    search += "and P.isend=@isend ";
+                    dynamicParams.Add("@isend", "Y");
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and T.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (groupcode != "" && groupcode != null)
+                {
+                    search += "and G.usergroupcode=@groupcode ";
+                    dynamicParams.Add("@groupcode", groupcode);
+                }
+                if (username != "" && username != null)
+                {
+                    search += "and U.username like '%'+@username+'%' ";
+                    dynamicParams.Add("@username", username);
+                }
+                if (operopendate != "" && operopendate != null)
+                {
+                    search += "and B.report_date between @operopendate and @operclosedate ";
+                    dynamicParams.Add("@operopendate", operopendate + " 00:00:00");
+                    dynamicParams.Add("@operclosedate", operclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select distinct A.wo_code as 宸ュ崟缂栧彿,M.partcode as 浜у搧缂栫爜,M.partname as 浜у搧鍚嶇О,M.partspec as 浜у搧瑙勬牸,
+                            T.stepcode as 宸ュ簭缂栫爜,T.stepname as 宸ュ簭鍚嶇О,A.task_qty as 浠诲姟鏁伴噺,G.usergroupcode as 鐝粍缂栫爜,G.usergroupname as 鐝粍鍚嶇О,
+                            A.good_qty as 鎶ュ伐鏁伴噺,isnull(P.stepprice,0) as 宸ュ簭鍗曚环,A.good_qty*isnull(P.stepprice,0) as 璁′欢宸ヨ祫,U.username as 鎿嶄綔浜哄憳,A.lm_date as 鎿嶄綔鏃堕棿,B.report_date as 鎶ュ伐鏃堕棿 
+                            from TK_Wrk_Record A
+                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
+                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
+                            left  join TK_Wrk_Man K on A.wo_code=K.wo_code
+                            left  join TGroup G on B.usergroup_code=G.usergroupcode 
+                            left  join TMateriel_Info M on A.materiel_code=M.partcode
+                            left  join TStep T on A.step_code=T.stepcode
+                            left  join TUser U on A.lm_user=U.usercode 
+                            where B.usergroup_code<>'' and A.style='B' " + 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 PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec,string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (compute == "last")  //鏈亾宸ュ簭
+                {
+                    search += "and AA.isend=@isend ";
+                    dynamicParams.Add("@isend", "Y");
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepcode != "" && stepcode != null)
+                {
+                    search += "and AA.step_code like '%'+@stepcode+'%' ";
+                    dynamicParams.Add("@stepcode", stepcode);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (reportname != "" && reportname != null)
+                {
+                    search += "and AA.username like '%'+@reportname+'%' ";
+                    dynamicParams.Add("@reportname", reportname);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and AA.report_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select *  from(
+                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
+                            A.task_qty,B.report_qty,isnull(A.step_price,0) as step_price,(B.report_qty*isnull(A.step_price,0)) as moneys,
+                            B.report_person as usercode,
+                             STUFF((SELECT ',' + U.username
+                                    FROM TUser U
+                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.report_person + ',') > 0
+                                    FOR XML PATH('')), 1, 1, '') AS username,
+                            B.report_date
+                            from TK_Wrk_Record A
+                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
+                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
+                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
+                            left join TStep S on A.step_code=S.stepcode
+                            left join TMateriel_Info P on A.materiel_code=P.partcode
+                            where A.style='B' and B.style='B' and A.verify='Y' and B.usergroup_code=''
+                            union all
+                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
+                            M.plan_qty as task_qty,B.sqty as report_qty,isnull(A.step_price,0) as step_price,(B.sqty*isnull(A.step_price,0)) as moneys,
+                            B.in_person as usercode,
+                            STUFF((SELECT ',' + U.username
+                                    FROM TUser U
+                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.in_person + ',') > 0
+                                    FOR XML PATH('')), 1, 1, '') AS username,
+                            B.in_time as report_date
+                            from TK_Wrk_OutRecord A
+                            inner join TK_Wrk_OutRecordSub B on A.id = B.m_id
+                            left join TK_Wrk_Man M on A.wo_code = M.wo_code
+                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
+                            left join TStep S on A.step_code = S.stepcode
+                            left join TMateriel_Info P on A.materiel_code = P.partcode
+                            where A.style = 'S' and B.style = 'S'  and A.verify='Y'
+                            ) as AA
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (compute == "last")  //鏈亾宸ュ簭
+                {
+                    search += "and AA.isend=@isend ";
+                    dynamicParams.Add("@isend", "Y");
+                }
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepcode != "" && stepcode != null)
+                {
+                    search += "and AA.step_code like '%'+@stepcode+'%' ";
+                    dynamicParams.Add("@stepcode", stepcode);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (reportname != "" && reportname != null)
+                {
+                    search += "and AA.username like '%'+@reportname+'%' ";
+                    dynamicParams.Add("@reportname", reportname);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and AA.report_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select AA.wo_code as '宸ュ崟鍙�',AA.partcode as '浜у搧缂栫爜',AA.partname '浜у搧鍚嶇О',AA.partspec as '瑙勬牸鍨嬪彿',AA.step_seq as '宸ュ簭搴忓彿',
+                            AA.step_code as '宸ュ簭缂栫爜',AA.stepname as '宸ュ簭鍚嶇О',(case when AA.steptype='Z' then '鑷埗' else '澶栧崗' end) as '宸ュ簭绫诲瀷',AA.task_qty as '浠诲姟鏁伴噺',AA.report_qty as '鎶ュ伐鏁伴噺',
+                            AA.step_price as '宸ュ簭鍗曚环',AA.moneys as '璁′欢宸ヨ祫',AA.usercode as '鎶ュ伐浜哄憳缂栧彿',AA.username as '鎶ュ伐浜哄憳鍚嶇О',AA.report_date as '鎶ュ伐鏃堕棿'  
+                            from(
+                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
+                            A.task_qty,B.report_qty,isnull(A.step_price,0) as step_price,(B.report_qty*isnull(A.step_price,0)) as moneys,
+                            B.report_person as usercode,
+                             STUFF((SELECT ',' + U.username
+                                    FROM TUser U
+                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.report_person + ',') > 0
+                                    FOR XML PATH('')), 1, 1, '') AS username,
+                            B.report_date
+                            from TK_Wrk_Record A
+                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
+                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
+                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
+                            left join TStep S on A.step_code=S.stepcode
+                            left join TMateriel_Info P on A.materiel_code=P.partcode
+                            where A.style='B' and B.style='B' and A.verify='Y' and B.usergroup_code=''
+                            union all
+                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
+                            M.plan_qty as task_qty,B.sqty as report_qty,isnull(A.step_price,0) as step_price,(B.sqty*isnull(A.step_price,0)) as moneys,
+                            B.in_person as usercode,
+                            STUFF((SELECT ',' + U.username
+                                    FROM TUser U
+                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.in_person + ',') > 0
+                                    FOR XML PATH('')), 1, 1, '') AS username,
+                            B.in_time as report_date
+                            from TK_Wrk_OutRecord A
+                            inner join TK_Wrk_OutRecordSub B on A.id = B.m_id
+                            left join TK_Wrk_Man M on A.wo_code = M.wo_code
+                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
+                            left join TStep S on A.step_code = S.stepcode
+                            left join TMateriel_Info P on A.materiel_code = P.partcode
+                            where A.style = 'S' and B.style = 'S'  and A.verify='Y'
+                            ) as AA
+                            where " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[濮斿鎶ヨ〃璁板綍鏌ヨ]
+        public static ToMessage OutSourceReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and S.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (suppername != "" && suppername != null)
+                {
+                    search += "and C.name like '%'+@suppername+'%' ";
+                    dynamicParams.Add("@suppername", suppername);
+                }
+                if (type != "" && type != null)
+                {
+                    search += "and A.style=@type ";
+                    dynamicParams.Add("@type", type);
+                    switch (type)
+                    {
+                        case "F": //鍙戞枡
+                            if (receivopendate != "" && receivopendate != null)
+                            {
+                                search += "and B.out_time between @receivopendate and @receivclosedate ";
+                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
+                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
+                            }
+                            break;
+                        case "S": //鏀舵枡
+                            if (receivopendate != "" && receivopendate != null)
+                            {
+                                search += "and B.in_time between @receivopendate and @receivclosedate ";
+                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
+                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
+                            }
+                            break;
+                        default:
+                            break;
+                    }
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,C.code,C.name,(case when A.style='F' then '鍙戞枡' when A.style='S' then '鏀舵枡'  end) as style,
+                            A.fqty,A.sqty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,U.username as out_person,B.out_time,T.username as in_person,B.in_time   
+                            from TK_Wrk_OutRecord A
+                            inner join TK_Wrk_OutRecordSub B on A.id=B.m_id
+                            left  join TMateriel_Info M on A.materiel_code=M.partcode
+                            left  join TStep S on A.step_code=S.stepcode
+                            left  join TCustomer C on A.wx_code=C.code
+                            left  join TUser U on B.out_person=U.usercode
+                            left  join TUser T on B.in_person=T.usercode
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[濮斿鎶ヨ〃璁板綍瀵煎嚭]
+        public static ToMessage OutSourceReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and A.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and S.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (suppername != "" && suppername != null)
+                {
+                    search += "and C.name like '%'+@suppername+'%' ";
+                    dynamicParams.Add("@suppername", suppername);
+                }
+                if (type != "" && type != null)
+                {
+                    search += "and A.style=@type ";
+                    dynamicParams.Add("@type", type);
+                    switch (type)
+                    {
+                        case "F": //鍙戞枡
+                            if (receivopendate != "" && receivopendate != null)
+                            {
+                                search += "and B.out_time between @receivopendate and @receivclosedate ";
+                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
+                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
+                            }
+                            break;
+                        case "S": //鏀舵枡
+                            if (receivopendate != "" && receivopendate != null)
+                            {
+                                search += "and B.in_time between @receivopendate and @receivclosedate ";
+                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
+                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
+                            }
+                            break;
+                        default:
+                            break;
+                    }
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.wo_code as '宸ュ崟缂栧彿',M.partcode as '浜у搧缂栫爜',M.partname as '浜у搧鍚嶇О',M.partspec as '浜у搧瑙勬牸',S.stepcode as '宸ュ簭缂栫爜',S.stepname as '宸ュ簭鍚嶇О',
+                            C.code as '澶栧崗渚涙柟缂栫爜',C.name as '澶栧崗渚涙柟鍚嶇О',(case when A.style='F' then '鍙戞枡' when A.style='S' then '鏀舵枡'  end) as '鎿嶄綔绫诲瀷',
+                            A.fqty as '鍙戞枡鏁伴噺',A.sqty as '鏀舵枡鏁伴噺',A.ng_qty as '涓嶈壇鏁伴噺',A.laborbad_qty as '宸ュ簾鏁伴噺',A.materielbad_qty as '鏂欏簾鏁伴噺',U.username as '鍙戞枡浜哄憳',B.out_time as '鍙戞枡鏃堕棿',
+                            T.username as '鏀舵枡浜哄憳',B.in_time as '鏀舵枡鏃堕棿'  
+                            from TK_Wrk_OutRecord A
+                            inner join TK_Wrk_OutRecordSub B on A.id=B.m_id
+                            left  join TMateriel_Info M on A.materiel_code=M.partcode
+                            left  join TStep S on A.step_code=S.stepcode
+                            left  join TCustomer C on A.wx_code=C.code
+                            left  join TUser U on B.out_person=U.usercode
+                            left  join TUser T on B.in_person=T.usercode
+                            where " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "濮斿鎶ュ伐璁板綍鎶ヨ〃");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃]
+        public static ToMessage DefectDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (defectcode != "" && defectcode != null)
+                {
+                    search += "and AA.defect_code like '%'+@defectcode+'%' ";
+                    dynamicParams.Add("@defectcode", defectcode);
+                }
+                if (defectname != "" && defectname != null)
+                {
+                    search += "and AA.defect_name like '%'+@defectname+'%' ";
+                    dynamicParams.Add("@defectname", defectname);
+                }
+                if (reportname != "" && reportname != null)
+                {
+                    search += "and AA.lm_user like '%'+@reportname+'%' ";
+                    dynamicParams.Add("@reportname", reportname);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select *   from(
+                            select A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
+                            A.defect_code,
+                            STUFF((SELECT ',' + F.name
+                            FROM TDefect F
+                            WHERE CHARINDEX(',' + F.code + ',', ',' + A.defect_code + ',') > 0
+                            FOR XML PATH('')), 1, 1, '') AS defect_name,
+                            A.style,U.username as lm_user,A.lm_date   
+                            from CSR_WorkRecord_Defect A
+                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code 
+                            left  join TMateriel_Info M on A.partnumber=M.partcode
+                            left  join TStep T on A.step_code=T.stepcode
+                            left  join TUser U on A.lm_user=U.usercode
+                            ) as AA
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[涓嶈壇鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage DefectDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (defectcode != "" && defectcode != null)
+                {
+                    search += "and AA.defect_code like '%'+@defectcode+'%' ";
+                    dynamicParams.Add("@defectcode", defectcode);
+                }
+                if (defectname != "" && defectname != null)
+                {
+                    search += "and AA.defect_name like '%'+@defectname+'%' ";
+                    dynamicParams.Add("@defectname", defectname);
+                }
+                if (reportname != "" && reportname != null)
+                {
+                    search += "and AA.lm_user like '%'+@reportname+'%' ";
+                    dynamicParams.Add("@reportname", reportname);
+                }
+                if (reportopendate != "" && reportopendate != null)
+                {
+                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
+                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
+                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select AA.wo_code as 宸ュ崟缂栧彿,AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.stepcode as 宸ュ簭缂栫爜,
+                            AA.stepname as 宸ュ簭鍚嶇О,AA.plan_qty as 浠诲姟鏁伴噺,AA.defect_qty as 涓嶈壇鏁伴噺,AA.defect_code as 缂洪櫡浠g爜,AA.defect_name as 缂洪櫡鍚嶇О,
+                            (case when AA.style='B' then '鎶ュ伐' when AA.style='S' then '鏀舵枡'  end) as '鎿嶄綔绫诲瀷',AA.lm_user as 鎿嶄綔浜哄憳,AA.lm_date as 鎿嶄綔鏃堕棿
+                            from(
+                            select A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
+                            A.defect_code,
+                            STUFF((SELECT ',' + F.name
+                            FROM TDefect F
+                            WHERE CHARINDEX(',' + F.code + ',', ',' + A.defect_code + ',') > 0
+                            FOR XML PATH('')), 1, 1, '') AS defect_name,
+                            A.style,U.username as lm_user,A.lm_date   
+                            from CSR_WorkRecord_Defect A
+                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code 
+                            left  join TMateriel_Info M on A.partnumber=M.partcode
+                            left  join TStep T on A.step_code=T.stepcode
+                            left  join TUser U on A.lm_user=U.usercode
+                            ) as AA
+                            where " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "涓嶈壇鏄庣粏鎶ヨ〃");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃]
+        public static ToMessage MaintenanceDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (style != "" && style != null)
+                {
+                    search += "and AA.style=@style ";
+                    dynamicParams.Add("@style", style);
+                }
+                if (defectname != "" && defectname != null)
+                {
+                    search += "and AA.defect_name like '%'+@defectname+'%' ";
+                    dynamicParams.Add("@defectname", defectname);
+                }
+                if (repairname != "" && repairname != null)
+                {
+                    search += "and AA.lm_user like '%'+@repairname+'%' ";
+                    dynamicParams.Add("@repairname", repairname);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and AA.lm_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select AA.wo_code,AA.partcode,AA.partname,AA.partspec,AA.stepcode,AA.stepname,(case when AA.style='B' then '鎶ュ伐' when AA.style='S' then '鏀舵枡' end) as style,
+                            AA.plan_qty,AA.repair_qty,AA.laborbad_qty,AA.materielbad_qty,AA.defect_code,AA.defect_name,AA.lm_user,AA.lm_date
+                            from(
+                            select F.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,F.style,P.plan_qty,F.repair_qty,F.laborbad_qty,F.materielbad_qty,F.defect_code,
+                            defect_name = STUFF(( SELECT ',' + T.name
+                            FROM TDefect as T
+                            where PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')>0
+                            ORDER BY PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')
+                            FOR XML PATH('')), 1, 1,''),U.username as lm_user,F.lm_date
+                            from CSR_WorkRecord_DefectHandle as F
+                            inner join TK_Wrk_Step P on F.wo_code=P.wo_code and F.step_code=P.step_code 
+                            left  join TMateriel_Info M on F.partnumber=M.partcode
+                            left  join TStep S on F.step_code=S.stepcode
+                            left  join TUser U on F.lm_user=U.usercode
+                            ) as AA
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[缁翠慨鏄庣粏鎶ヨ〃瀵煎嚭]
+        public static ToMessage MaintenanceDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wocode != "" && wocode != null)
+                {
+                    search += "and AA.wo_code like '%'+@wocode+'%' ";
+                    dynamicParams.Add("@wocode", wocode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and AA.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and AA.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and AA.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and AA.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (style != "" && style != null)
+                {
+                    search += "and AA.style=@style ";
+                    dynamicParams.Add("@style", style);
+                }
+                if (defectname != "" && defectname != null)
+                {
+                    search += "and AA.defect_name like '%'+@defectname+'%' ";
+                    dynamicParams.Add("@defectname", defectname);
+                }
+                if (repairname != "" && repairname != null)
+                {
+                    search += "and AA.lm_user like '%'+@repairname+'%' ";
+                    dynamicParams.Add("@repairname", repairname);
+                }
+                if (repairopendate != "" && repairopendate != null)
+                {
+                    search += "and AA.lm_date between @repairopendate and @repairclosedate ";
+                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
+                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
+                }
+
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select AA.wo_code as 宸ュ崟缂栧彿,AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.stepcode as 宸ュ簭缂栫爜,AA.stepname as 宸ュ簭鍚嶇О,
+                            (case when AA.style='B' then '鎶ュ伐' when AA.style='S' then '鏀舵枡' end) as 鎿嶄綔绫诲瀷,
+                            AA.plan_qty as 浠诲姟鏁伴噺,AA.repair_qty as 缁翠慨鏁伴噺,AA.laborbad_qty as 宸ュ簾鏁伴噺,AA.materielbad_qty as 鏂欏簾鏁伴噺,AA.defect_name as 缂洪櫡鍚嶇О,AA.lm_user as 缁翠慨浜哄憳,AA.lm_date as 缁翠慨鏃堕棿
+                            from(
+                            select F.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,F.style,P.plan_qty,F.repair_qty,F.laborbad_qty,F.materielbad_qty,F.defect_code,
+                            defect_name = STUFF(( SELECT ',' + T.name
+                            FROM TDefect as T
+                            where PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')>0
+                            ORDER BY PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')
+                            FOR XML PATH('')), 1, 1,''),U.username as lm_user,F.lm_date
+                            from CSR_WorkRecord_DefectHandle as F
+                            inner join TK_Wrk_Step P on F.wo_code=P.wo_code and F.step_code=P.step_code 
+                            left  join TMateriel_Info M on F.partnumber=M.partcode
+                            left  join TStep S on F.step_code=S.stepcode
+                            left  join TUser U on F.lm_user=U.usercode
+                            ) as AA
+                            where " + search;
+                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
+                data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�
+                string msg = DownLoad.DataTableToExcel(data, "缁翠慨鏄庣粏鎶ヨ〃");
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = msg;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }

--
Gitblit v1.9.3