From 513e8065bad645072ba16f23bd7799bb0de059c3 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期三, 11 十月 2023 20:51:54 +0800
Subject: [PATCH] 1.质量管理-->工序检验项目接口 2.质量管理-->工序质检方案接口 3.质量管理-->工序检验接口 4.质量管理-->工序检验记录接口

---
 VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs            |   99 ++++
 VueWebCoreApi/Controllers/QualityManagementController.cs |  282 +++++++++++
 VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs            | 1037 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1,403 insertions(+), 15 deletions(-)

diff --git a/VueWebCoreApi/Controllers/QualityManagementController.cs b/VueWebCoreApi/Controllers/QualityManagementController.cs
index d977b65..501a7ab 100644
--- a/VueWebCoreApi/Controllers/QualityManagementController.cs
+++ b/VueWebCoreApi/Controllers/QualityManagementController.cs
@@ -74,7 +74,287 @@
         [HttpPost]
         public JsonResult DeleteDedect(string defectcode)
         {
-            mes = QualityManagementBLL.DeleteDedect(defectcode);
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = QualityManagementBLL.DeleteDedect(defectcode,us);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠岄」鐩垪琛ㄦ煡璇
+        /// <summary>
+        /// 宸ュ簭妫�楠岄」鐩垪琛ㄦ煡璇�
+        /// </summary>
+        /// <param name="itemcode">妫�楠岄」鐩紪鐮�</param>
+        /// <param name="itemname">妫�楠岄」鐩悕绉�</param>
+        /// <param name="itemdescr">妫�楠岄」鐩弿杩�</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckItemSearch")]
+        [HttpGet]
+        public JsonResult StepCheckItemSearch(string itemcode = null, string itemname = null, string itemdescr = null, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = QualityManagementBLL.StepCheckItemSearch(itemcode, itemname, itemdescr, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岄」鐩柊澧炪�佺紪杈戞彁浜
+        /// <summary>
+        /// 宸ュ簭妫�楠岄」鐩柊澧炪�佺紪杈戞彁浜�
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateStepCheckItem")]
+        [HttpPost]
+        public JsonResult AddUpdateStepCheckItem([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string checkitemcode = obj["checkitemcode"].ToString();    //宸ュ簭妫�楠岄」鐩唬鐮�
+            string checkitemname = obj["checkitemname"].ToString(); //宸ュ簭妫�楠岄」鐩悕绉�
+            string checkitemdescr = obj["checkitemdescr"].ToString(); //宸ュ簭妫�楠岄」鐩弿杩�
+            string opertype = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
+            mes = QualityManagementBLL.AddUpdateStepCheckItem(checkitemcode, checkitemname, checkitemdescr, opertype, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岄」鐩垹闄
+        /// <summary>
+        /// 宸ュ簭妫�楠岄」鐩垹闄�
+        /// </summary>
+        /// <param name="checkitemcode">妫�楠岄」鐩唬鐮�</param>
+        /// <returns></returns>
+        [Route(template: "DeleteStepCheckItem")]
+        [HttpPost]
+        public JsonResult DeleteStepCheckItem(string checkitemcode)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = QualityManagementBLL.DeleteStepCheckItem(checkitemcode, us);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[宸ュ簭璐ㄦ鏂规鍒楄〃鏌ヨ]
+        /// <summary>
+        /// 宸ュ簭璐ㄦ鏂规鍒楄〃鏌ヨ
+        /// </summary>
+        /// <param name="qualityinsptcode">璐ㄦ鏂规缂栫爜</param>
+        /// <param name="qualityinsptname">璐ㄦ鏂规鍚嶇О</param>
+        /// <param name="status">鏈夋晥鐘舵��</param>
+        /// <param name="checktype">璐ㄦ绫诲瀷</param>
+        /// <param name="sampltype">鎶芥牱鏂瑰紡</param>
+        /// <param name="suitobject">閫傜敤瀵硅薄</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "QualityInspectionSearch")]
+        [HttpGet]
+        public JsonResult QualityInspectionSearch(string qualityinsptcode = null, string qualityinsptname = null, string status = null, string checktype = null, string sampltype = null, string suitobject = null, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = QualityManagementBLL.QualityInspectionSearch(qualityinsptcode, qualityinsptname, status, checktype, sampltype, suitobject, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鏌ョ湅缂栬緫]
+        /// <summary>
+        /// 宸ュ簭璐ㄦ鏂规鏌ョ湅缂栬緫
+        /// </summary>
+        /// <param name="qualityinsptcode">璐ㄦ鏂规缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "QualityInspectionSeeEdit")]
+        [HttpGet]
+        public JsonResult QualityInspectionSeeEdit(string qualityinsptcode)
+        {
+            mes = QualityManagementBLL.QualityInspectionSeeEdit(qualityinsptcode);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鏂板/缂栬緫鎻愪氦]
+        /// <summary>
+        /// 宸ュ簭璐ㄦ鏂规鏂板/缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "QualityInspectionAddEditSave")]
+        [HttpPost]
+        public JsonResult QualityInspectionAddEditSave([FromBody] JObject obj)
+        {
+            string qualityinsptcode = obj["qualityinsptcode"].ToString(); //璐ㄦ鏂规缂栫爜
+            string qualityinsptname = obj["qualityinsptname"].ToString(); //璐ㄦ鏂规鍚嶇О
+            string status = obj["status"].ToString(); //鏈夋晥鐘舵��
+            string checktype = obj["checktype"].ToString(); //妫�楠岀被鍨�
+            string sampmethod = obj["sampmethod"].ToString(); //鎶芥鏂瑰紡
+            string sampscare = obj["sampscare"].ToString(); //鍥哄畾鎶芥(鏍锋湰鏁�)   姣斾緥鎶芥(鐧惧垎姣�)
+            string suitobject = obj["suitobject"].ToString(); //閫傜敤瀵硅薄
+            string suitpart = obj["suitpart"].ToString();  //閫傜敤鐗╂枡(缂栫爜)鎴栬�呯墿鏂欑被鍨�(缂栫爜)
+            string descr = obj["descr"].ToString(); //妫�楠屾柟妗堟弿杩�
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜(棣栨銆佸贰妫�銆佸畬宸ユ楠�)
+            string checkitem = obj["checkitem"].ToString(); //璐ㄦ鍒楄〃
+            string type = obj["type"].ToString(); //鎿嶄綔绫诲瀷
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = QualityManagementBLL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, stepcode, checkitem, type, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鍒犻櫎]
+        /// <summary>
+        /// 宸ュ簭璐ㄦ鏂规鍒犻櫎
+        /// </summary>
+        /// <param name="qualityinsptcode">璐ㄦ鏂规缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "QualityInspectionDelete")]
+        [HttpPost]
+        public JsonResult QualityInspectionDelete(string qualityinsptcode)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = QualityManagementBLL.QualityInspectionDelete(qualityinsptcode, us);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        /// <summary>
+        /// 宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+        /// </summary>
+        /// <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+        /// <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderStepCheckSearch")]
+        [HttpGet]
+        public JsonResult MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
+        {
+            mes = QualityManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
+        /// <summary>
+        /// 鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
+        /// </summary>
+        /// <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderStepCheckItemList")]
+        [HttpGet]
+        public JsonResult MesOrderStepCheckItemList(string checkstandcode)
+        {
+            mes = QualityManagementBLL.MesOrderStepCheckItemList(checkstandcode);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        /// <summary>
+        /// 宸ュ簭妫�楠�,鎻愪氦
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SaveMesOrderStepCheckItem")]
+        [HttpPost]
+        public JsonResult SaveMesOrderStepCheckItem([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string wocode = obj["wocode"].ToString(); //宸ュ崟缂栧彿
+            string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
+            string checkstandcode = obj["checkstandcode"].ToString(); //璐ㄦ鏂规缂栫爜
+            string check_type = obj["check_type"].ToString(); //妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�)
+            string sampmethod = obj["sampmethod"].ToString(); //鎶芥鏂瑰紡锛氬浐瀹氭娊妫�(FIXED) 姣斾緥鎶芥(SCARE)
+            string qualitystatus = obj["qualitystatus"].ToString(); //璐ㄩ噺鐘舵��(鍚堟牸銆佷笉鍚堟牸)
+            string labqty = obj["good_qty"].ToString(); //宸ュ簭浠诲姟鍚堟牸鏁伴噺
+            string sampleqty = obj["sampleqty"].ToString(); //鏍锋湰鏁伴噺
+            string goodqty = obj["goodqty"].ToString(); //鍚堟牸鏁伴噺
+            string ngqty = obj["ngqty"].ToString();//涓嶅悎鏍兼暟閲�
+            string checkitemcont = obj["checkitemcont"].ToString(); //妫�楠岄」鐩暟鎹�
+            mes = QualityManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, us);
+            return Json(mes);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇
+        /// <summary>
+        /// 宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇�
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partapec">浜у搧鍚嶇О</param>
+        /// <param name="stepname">浜у搧鍚嶇О</param>
+        /// <param name="standname">浜у搧鍚嶇О</param>
+        /// <param name="checktype">妫�楠岀被鍨嬬紪鐮�</param>
+        /// <param name="checkresult">妫�楠岀粨鏋�</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckTableSearch")]
+        [HttpGet]
+        public JsonResult StepCheckTableSearch(string wocode = null, string partcode = null, string partname = null, string partapec = null, string stepname = null, string standname = null, string checktype = null, string checkresult = null, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = QualityManagementBLL.StepCheckTableSearch(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岃褰曞垪琛ㄦ槑缁嗘煡璇
+        /// <summary>
+        /// 宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇�
+        /// </summary>
+        /// <param name="id">涓昏〃id</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckTableSubSearch")]
+        [HttpGet]
+        public JsonResult StepCheckTableSubSearch(string id)
+        {
+            mes = QualityManagementBLL.StepCheckTableSubSearch(id);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岃褰曞鍑篯
+        /// <summary>
+        /// 宸ュ簭妫�楠岃褰曞鍑�
+        /// </summary>
+        /// <param name="wocode">宸ュ崟缂栧彿</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partapec">浜у搧鍚嶇О</param>
+        /// <param name="stepname">浜у搧鍚嶇О</param>
+        /// <param name="standname">浜у搧鍚嶇О</param>
+        /// <param name="checktype">妫�楠岀被鍨嬬紪鐮�</param>
+        /// <param name="checkresult">妫�楠岀粨鏋�</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "StepCheckTableOutExcel")]
+        [HttpGet]
+        public JsonResult StepCheckTableOutExcel(string wocode = null, string partcode = null, string partname = null, string partapec = null, string stepname = null, string standname = null, string checktype = null, string checkresult = null, string prop = null, string order = null)
+        {
+            mes = QualityManagementBLL.StepCheckTableOutExcel(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
             return Json(mes);
         }
         #endregion
diff --git a/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs b/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs
index 03c3cb6..5d335f1 100644
--- a/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs
@@ -25,9 +25,104 @@
         #endregion
 
         #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄
-        public static ToMessage DeleteDedect(string defectcode)
+        public static ToMessage DeleteDedect(string defectcode, User us)
         {
-            return QualityManagementDAL.DeleteDedect(defectcode);
+            return QualityManagementDAL.DeleteDedect(defectcode,us);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠岄」鐩垪琛ㄦ煡璇
+        public static ToMessage StepCheckItemSearch(string itemcode, string itemname, string itemdescr, int startNum, int endNum, string prop, string order)
+        {
+            return QualityManagementDAL.StepCheckItemSearch(itemcode, itemname, itemdescr, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岄」鐩柊澧炪�佺紪杈戞彁浜
+        public static ToMessage AddUpdateStepCheckItem(string checkitemcode, string checkitemname, string checkitemdescr, string opertype, User us)
+        {
+            return QualityManagementDAL.AddUpdateStepCheckItem(checkitemcode, checkitemname, checkitemdescr, opertype, us);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岄」鐩垹闄
+        public static ToMessage DeleteStepCheckItem(string checkitemcode, User us)
+        {
+            return QualityManagementDAL.DeleteStepCheckItem(checkitemcode,us);
+        }
+        #endregion
+
+
+        #region[宸ュ簭璐ㄦ鏂规鍒楄〃鏌ヨ]
+        public static ToMessage QualityInspectionSearch(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampltype, string suitobject, int startNum, int endNum, string prop, string order)
+        {
+            return QualityManagementDAL.QualityInspectionSearch(qualityinsptcode, qualityinsptname, status, checktype, sampltype, suitobject, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鏌ョ湅缂栬緫]
+        public static ToMessage QualityInspectionSeeEdit(string qualityinsptcode)
+        {
+            return QualityManagementDAL.QualityInspectionSeeEdit(qualityinsptcode);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鏂板/缂栬緫鎻愪氦]
+        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string stepcode, string checkitem, string type, User us)
+        {
+            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, stepcode, checkitem, type, us);
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鍒犻櫎]
+        public static ToMessage QualityInspectionDelete(string qualityinsptcode, User us)
+        {
+            return QualityManagementDAL.QualityInspectionDelete(qualityinsptcode, us);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
+        {
+            return QualityManagementDAL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
+        public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
+        {
+            return QualityManagementDAL.MesOrderStepCheckItemList(checkstandcode);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, User us)
+        {
+            return QualityManagementDAL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, us);
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇
+        public static ToMessage StepCheckTableSearch(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, int startNum, int endNum, string prop, string order)
+        {
+            return QualityManagementDAL.StepCheckTableSearch(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岃褰曞垪琛ㄦ槑缁嗘煡璇
+        public static ToMessage StepCheckTableSubSearch(string id)
+        {
+            return QualityManagementDAL.StepCheckTableSubSearch(id);
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岃褰曞鍑篯
+        public static ToMessage StepCheckTableOutExcel(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, string prop, string order)
+        {
+            return QualityManagementDAL.StepCheckTableOutExcel(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
         }
         #endregion
     }
diff --git a/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
index 7c79485..070cb4c 100644
--- a/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
@@ -1,4 +1,5 @@
 锘縰sing Dapper;
+using Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -95,6 +96,8 @@
                     bool aa = DapperHelper.DoTransaction(list);
                     if (aa)
                     {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "鏂板", "缂洪櫡缂栫爜:" + defectcode + "缂洪櫡鍚嶇О:" + defectname, us.usertype);
                         mes.code = "200";
                         mes.count = 0;
                         mes.Message = "缂洪櫡瀹氫箟鏂板鎴愬姛!";
@@ -126,6 +129,8 @@
                     bool aa = DapperHelper.DoTransaction(list);
                     if (aa)
                     {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "淇敼", "缂洪櫡缂栫爜:" + defectcode + "缂洪櫡鍚嶇О:" + defectname, us.usertype);
                         mes.code = "200";
                         mes.count = 0;
                         mes.Message = "缂洪櫡瀹氫箟淇敼鎴愬姛!";
@@ -152,24 +157,24 @@
         #endregion
 
         #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄
-        public static ToMessage DeleteDedect(string defectcode)
+        public static ToMessage DeleteDedect(string defectcode, User us)
         {
             var sql = "";
             List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
             try
             {
-                //sql = @"select * from  CSR_WorkRecord_Defect  where defect_code=@defectcode";
-                //dynamicParams.Add("@defectcode", defectcode);
-                //var data = DapperHelper.selectdata(sql, dynamicParams);
-                //if (data.Rows.Count > 0)
-                //{
-                //    mes.code = "300";
-                //    mes.count = 0;
-                //    mes.Message = "褰撳墠缂洪櫡椤瑰凡鐢熸垚鎶ュ伐缂洪櫡璁板綍,涓嶅厑璁稿垹闄�!";
-                //    mes.data = null;
-                //    return mes;
-                //}
+                sql = @"select * from  CSR_WorkRecord_Defect  where defect_code=@defectcode";
+                dynamicParams.Add("@defectcode", defectcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠缂洪櫡椤瑰凡鐢熸垚鎶ュ伐缂洪櫡璁板綍,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
 
                 sql = @"delete TDefect  where code=@defectcode";
                 list.Add(new { str = sql, parm = new { defectcode = defectcode } });
@@ -177,6 +182,8 @@
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
                 {
+                    //鍐欏叆鎿嶄綔璁板綍琛�
+                    LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "缂洪櫡缂栫爜:" + defectcode, us.usertype);
                     mes.code = "200";
                     mes.count = 0;
                     mes.Message = "缂洪櫡鍒犻櫎鎴愬姛!";
@@ -200,5 +207,1011 @@
             return mes;
         }
         #endregion
+
+
+        #region[宸ュ簭妫�楠岄」鐩垪琛ㄦ煡璇
+        public static ToMessage StepCheckItemSearch(string itemcode, string itemname, string itemdescr, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (itemcode != "" && itemcode != null)
+                {
+                    search += "and A.code like '%'+@itemcode+'%' ";
+                    dynamicParams.Add("@itemcode", itemcode);
+                }
+                if (itemname != "" && itemname != null)
+                {
+                    search += "and A.name like '%'+@itemname+'%' ";
+                    dynamicParams.Add("@itemname", itemname);
+                }
+                if (itemdescr != "" && itemdescr != null)
+                {
+                    search += "and A.descr like '%'+@itemdescr+'%' ";
+                    dynamicParams.Add("@itemdescr", itemdescr);
+                }
+
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.code,A.name,A.descr,U.username as lm_user,A.lm_date  from TStepCheckItem A
+                            left join TUser U on A.lm_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 AddUpdateStepCheckItem(string checkitemcode, string checkitemname, string checkitemdescr, string opertype, User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                if (opertype == "Add")
+                {
+                    //鍐欏叆缂洪櫡瀹氫箟瀹氫箟琛�
+                    sql = @"insert into TStepCheckItem(code,name,descr,lm_user,lm_date)
+                                values(@checkitemcode,@checkitemname,@checkitemdescr,@username,@CreateDate)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            checkitemcode = checkitemcode,
+                            checkitemname = checkitemname,
+                            checkitemdescr = checkitemdescr,
+                            username = us.usercode,
+                            CreateDate = DateTime.Now.ToString()
+                        }
+                    });
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "鏂板", "宸ュ簭妫�楠岄」鐩�:" + checkitemcode, us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "宸ュ簭妫�楠岄」鐩柊澧炴垚鍔�!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "宸ュ簭妫�楠岄」鐩柊澧炲け璐�!";
+                        mes.data = null;
+                    }
+                }
+                if (opertype == "Update")
+                {
+                    sql = @"update TStepCheckItem set name=@checkitemname,descr=@checkitemdescr,lm_user=@username,lm_date=@CreateDate where code=@checkitemcode";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            checkitemcode = checkitemcode,
+                            checkitemname = checkitemname,
+                            checkitemdescr = checkitemdescr,
+                            username = us.usercode,
+                            CreateDate = DateTime.Now.ToString()
+                        }
+                    });
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "淇敼", "宸ュ簭妫�楠岄」鐩�:" + checkitemcode, us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "宸ュ簭妫�楠岄」鐩慨鏀规垚鍔�!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "宸ュ簭妫�楠岄」鐩慨鏀瑰け璐�!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岄」鐩垹闄
+        public static ToMessage DeleteStepCheckItem(string checkitemcode, User us)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select * from  TStepCheckRecordSub  where checkitem_code=@checkitemcode";
+                dynamicParams.Add("@checkitemcode", checkitemcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠妫�楠岄」椤瑰凡鐢熸垚妫�楠岃褰�,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+
+                sql = @"delete TStepCheckItem   where code=@checkitemcode";
+                list.Add(new { str = sql, parm = new { checkitemcode = checkitemcode } });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    //鍐欏叆鎿嶄綔璁板綍琛�
+                    LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "宸ュ簭妫�楠岄」鐩�:" + checkitemcode, us.usertype);
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "宸ュ簭妫�楠屽垹闄ゆ垚鍔�!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "宸ュ簭妫�楠屽垹闄ゅけ璐�!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[宸ュ簭璐ㄦ鏂规鍒楄〃鏌ヨ]
+        public static ToMessage QualityInspectionSearch(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampltype, string suitobject, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (qualityinsptcode != "" && qualityinsptcode != null)
+                {
+                    search += "and AA.code like '%'+@qualityinsptcode+'%' ";
+                    dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
+                }
+                if (qualityinsptname != "" && qualityinsptname != null)
+                {
+                    search += "and AA.name like '%'+@qualityinsptname+'%' ";
+                    dynamicParams.Add("@qualityinsptname", qualityinsptname);
+                }
+                if (status != "" && status != null)
+                {
+                    search += "and AA.status=@status ";
+                    dynamicParams.Add("@status", status);
+                }
+                if (checktype != "" && checktype != null)
+                {
+                    search += "and AA.checktype=@checktype ";
+                    dynamicParams.Add("@checktype", checktype);
+                }
+                if (sampltype != "" && sampltype != null)
+                {
+                    search += "and AA.sampmethod=@sampltype ";
+                    dynamicParams.Add("@sampltype", sampltype);
+                }
+                if (suitobject != "" && suitobject != null)
+                {
+                    search += "and AA.suitobject=@suitobject ";
+                    dynamicParams.Add("@suitobject", suitobject);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select *  from(
+                            select A.code,A.name,A.status,A.checktype,A.sampmethod,A.sampscare,A.suitobject,A.stepcode,S.stepname,A.descr,A.suitpart,A.lm_date,U.username,
+                            case when A.suitobject='P' then
+                            STUFF(( SELECT ';' + partname
+                            FROM TMateriel_Info
+                            where   PATINDEX('%;' + RTRIM(TMateriel_Info.partcode) + ';%',';' + A.suitpart + ';')>0    
+                            FOR XML PATH('')), 1, 1,'')  
+                            when A.suitobject='PY' 
+                            then 
+                            STUFF(( SELECT ';' + name
+                            FROM T_Dict
+                            where   PATINDEX('%;' + RTRIM(T_Dict.code) + ';%',';' + A.suitpart + ';')>0    
+                            FOR XML PATH('')), 1, 1,'')
+                            end as suitpartname
+                            from TStepCheckStandard A
+                            left join TUser U on  A.lm_user=U.usercode
+                            left join TStep S on A.stepcode=S.stepcode
+                            ) as AA 
+                            where " + search;
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                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 QualityInspectionSeeEdit(string qualityinsptcode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select A.stepcheckitem_seq,A.stepcheckitem_code,B.name as stepcheckitem_name,A.required,
+                        A.numberjudge,A.unit,A.decimalnum,A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc  
+                        from TStepCheckStandardSub A
+                        inner join TStepCheckItem B on A.stepcheckitem_code=B.code
+                        where A.stepstaned_code=@qualityinsptcode";
+                dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
+                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 QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string stepcode, string checkitem, string type, User us)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                //鑾峰彇璐ㄦ鍒楄〃妫�楠岄」鐩暟鎹�
+                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitem);
+                list.Clear();
+                switch (type)
+                {
+                    case "Add": //鏂板
+                        //鍐欏叆璐ㄦ鏂规涓昏〃
+                        sql = @"insert into  TStepCheckStandard(code,name,status,checktype,sampmethod,sampscare,suitobject,suitpart,stepcode,descr,lm_user,lm_date) 
+                                values(@code,@name,@status,@checktype,@sampmethod,@sampscare,@suitobject,@suitpart,@stepcode,@descr,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = qualityinsptcode,
+                                name = qualityinsptname,
+                                status = status,
+                                checktype = checktype,
+                                sampmethod = sampmethod,
+                                sampscare = sampscare,
+                                suitobject = suitobject,
+                                suitpart = suitpart,
+                                stepcode = stepcode,
+                                descr = descr,
+                                lm_user = us.usercode,
+                                lm_date = date
+                            }
+                        });
+                        //鍐欏叆璐ㄦ鏂规瀛愯〃
+                        for (int i = 0; i < arra.Count; i++)
+                        {
+                            sql = @"insert into  TStepCheckStandardSub(stepstaned_code,stepcheckitem_seq,stepcheckitem_code,required,numberjudge,unit,decimalnum,standvalue,uppervalue,lowervalue,stepcheckitem_desc,lm_user,lm_date) 
+                                values(@stepstaned_code,@stepcheckitem_seq,@stepcheckitem_code,@required,@numberjudge,@unit,@decimalnum,@standvalue,@uppervalue,@lowervalue,@stepcheckitem_desc,@lm_user,@lm_date)";
+                            list.Add(new
+                            {
+                                str = sql,
+                                parm = new
+                                {
+                                    stepstaned_code = qualityinsptcode,
+                                    stepcheckitem_seq = Convert.ToInt32(arra[i]["stepcheckitem_seq"].ToString()),
+                                    stepcheckitem_code = arra[i]["stepcheckitem_code"].ToString(),
+                                    required = arra[i]["required"].ToString(),
+                                    numberjudge = arra[i]["numberjudge"].ToString(),
+                                    unit = arra[i]["unit"].ToString(),
+                                    decimalnum = arra[i]["decimalnum"].ToString(),
+                                    standvalue = arra[i]["standvalue"].ToString(),
+                                    uppervalue = arra[i]["uppervalue"].ToString(),
+                                    lowervalue = arra[i]["lowervalue"].ToString(),
+                                    stepcheckitem_desc = arra[i]["stepcheckitem_desc"].ToString(),
+                                    lm_user = us.usercode,
+                                    lm_date = date
+                                }
+                            });
+                        }
+                        break;
+                    case "Update"://淇敼
+                        //鍒ゆ柇鏄惁鐢熸垚妫�楠岃褰�(鍏ュ巶妫�楠�(InCheck)  鍑哄巶妫�楠�(OutCheck)  FirstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�))
+                        sql = @"select *  from TStepCheckRecord where checkstaned_code=@qualityinsptcode and check_type=@checktype";
+                        dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
+                        dynamicParams.Add("@checktype", checktype);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        if (data.Rows.Count > 0)
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "淇敼澶辫触,褰撳墠璐ㄦ鏂规宸茬敓鎴愬搴旀楠岃褰�!";
+                            mes.data = null;
+                            return mes;
+                        }
+                        //鍒犻櫎璐ㄦ鏂规瀛愯〃
+                        sql = @"delete from TStepCheckStandardSub where stepstaned_code=@code";
+                        list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
+                        //淇敼璐ㄦ鏂规涓昏〃
+                        sql = @"update TStepCheckStandard set name=@name,status=@status,checktype=@checktype,sampmethod=@sampmethod,sampscare=@sampscare,
+                                suitobject=@suitobject,suitpart=@suitpart,stepcode=@stepcode,descr=@descr
+                                where code=@code";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = qualityinsptcode,
+                                name = qualityinsptname,
+                                status = status,
+                                checktype = checktype,
+                                sampmethod = sampmethod,
+                                sampscare = sampscare,
+                                suitobject = suitobject,
+                                suitpart = suitpart,
+                                stepcode = stepcode,
+                                descr = descr,
+                            }
+                        });
+                        //鏂板璐ㄦ鏂规瀛愯〃
+                        for (int i = 0; i < arra.Count; i++)
+                        {
+                            sql = @"insert into  TStepCheckStandardSub(stepstaned_code,stepcheckitem_seq,stepcheckitem_code,required,numberjudge,unit,decimalnum,standvalue,uppervalue,lowervalue,stepcheckitem_desc,lm_user,lm_date) 
+                                values(@stepstaned_code,@stepcheckitem_seq,@stepcheckitem_code,@required,@numberjudge,@unit,@decimalnum,@standvalue,@uppervalue,@lowervalue,@stepcheckitem_desc,@lm_user,@lm_date)";
+                            list.Add(new
+                            {
+                                str = sql,
+                                parm = new
+                                {
+                                    stepstaned_code = qualityinsptcode,
+                                    stepcheckitem_seq = Convert.ToInt32(arra[i]["stepcheckitem_seq"].ToString()),
+                                    stepcheckitem_code = arra[i]["stepcheckitem_code"].ToString(),
+                                    required = arra[i]["required"].ToString(),
+                                    numberjudge = arra[i]["numberjudge"].ToString(),
+                                    unit = arra[i]["unit"].ToString(),
+                                    decimalnum = arra[i]["decimalnum"].ToString(),
+                                    standvalue = arra[i]["standvalue"].ToString(),
+                                    uppervalue = arra[i]["uppervalue"].ToString(),
+                                    lowervalue = arra[i]["lowervalue"].ToString(),
+                                    stepcheckitem_desc = arra[i]["stepcheckitem_desc"].ToString(),
+                                    lm_user = us.usercode,
+                                    lm_date = date
+                                }
+                            });
+                        }
+                        break;
+                    default:
+                        break;
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    switch (type)
+                    {
+                        case "Add": //鏂板
+                            //鍐欏叆鎿嶄綔璁板綍琛�
+                            LogHelper.DbOperateLog(us.usercode, "鏂板", "宸ュ簭璐ㄦ鏂规:" + qualityinsptcode, us.usertype);
+                            break;
+                        case "Update": //淇敼
+                            //鍐欏叆鎿嶄綔璁板綍琛�
+                            LogHelper.DbOperateLog(us.usercode, "淇敼", "宸ュ簭璐ㄦ鏂规:" + qualityinsptcode, us.usertype);
+                            break;
+                        default:
+                            break;
+                    }
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[宸ュ簭璐ㄦ鏂规鍒犻櫎]
+        public static ToMessage QualityInspectionDelete(string qualityinsptcode, User us)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鍒ゆ柇鏄惁鐢熸垚妫�楠岃褰�(鍏ュ巶妫�楠�(InCheck)  鍑哄巶妫�楠�(OutCheck)  FirstCheck锛堥妫�锛� PatroCheck(宸℃)  EndCheck(瀹屽伐妫�))
+                sql = @"select *  from TStepCheckRecord where checkstaned_code=@qualityinsptcode";
+                dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍒犻櫎澶辫触,褰撳墠璐ㄦ鏂规宸茬敓鎴愬搴旀楠岃褰�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鍒犻櫎璐ㄦ鏂规涓昏〃
+                sql = @"delete TStepCheckStandard  where code=@code";
+                list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
+                //鍒犻櫎璐ㄦ鏂规瀛愯〃
+                sql = @"delete TStepCheckStandardSub  where stepstaned_code=@code";
+                list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    //鍐欏叆鎿嶄綔璁板綍琛�
+                    LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "璐ㄦ鏂规:" + qualityinsptcode, us.usertype);
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "璐ㄦ鏂规鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "璐ㄦ鏂规鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
+        {
+            var sql = "";
+            string ordercode = "";
+            string stepcode = "";
+            var dynamicParams = new DynamicParameters();
+            Dictionary<string, object> list = new Dictionary<string, object>();
+            try
+            {
+                if (orderstepqrcode != "" && orderstepqrcode != null)
+                {
+                    string[] arra = orderstepqrcode.Split(';');
+                    if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璇锋壂鎻忓伐搴忔潯鐮�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
+                    {
+                        ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                        stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+                    }
+                    //閫氳繃鎵弿浜岀淮鐮佷俊鎭煡鎵句换鍔′俊鎭�
+                    sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.stocktype_code,S.stepcode,S.stepname  
+                            from TK_Wrk_Step A
+                            inner join TK_Wrk_Man P on A.wo_code=P.wo_code
+                            left join TMateriel_Info M on P.materiel_code=M.partcode
+                            left join TStep S on A.step_code=S.stepcode
+                            where A.wo_code=@wo_code and A.step_code=@stepcode";
+                    dynamicParams.Add("@wo_code", ordercode);
+                    dynamicParams.Add("@stepcode", stepcode);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        if (decimal.Parse(data.Rows[0]["good_qty"].ToString()) > 0)
+                        {
+                            //鑾峰彇缁戝畾鐨勮川妫�鏂规銆佹娊鏍锋柟寮忋�佹牱鏈暟
+                            sql = @"select code as checkstandcode,name as checkstandname,sampmethod,sampscare   
+                            from TStepCheckStandard
+                            where (PATINDEX('%,' + RTRIM(@partcode) + ',%',',' + suitpart + ',')>0 or PATINDEX('%,' + RTRIM(@stocktype_code) + ',%',',' + suitpart + ',')>0)
+                            and checktype=@checktype and stepcode=@stepcode ";
+                            dynamicParams.Add("@partcode", data.Rows[0]["partcode"].ToString());//鐗╂枡缂栫爜
+                            dynamicParams.Add("@stepcode", stepcode);//宸ュ簭缂栫爜
+                            dynamicParams.Add("@stocktype_code", data.Rows[0]["stocktype_code"].ToString());//瀛樿揣绫诲瀷缂栫爜
+                            dynamicParams.Add("@checktype", checktype);//妫�楠岀被鍨�
+                            var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                            if (data1.Rows.Count > 0)
+                            {
+                                list.Add("labcont", data);
+                                list.Add("chekstand", data1);
+                                mes.code = "200";
+                                mes.count = 0;
+                                mes.Message = "鏌ヨ鎴愬姛!";
+                                mes.data = list;
+                            }
+                            else
+                            {
+                                mes.code = "300";
+                                mes.count = 0;
+                                mes.Message = "褰撳墠浜у搧銆�" + data.Rows[0]["partname"].ToString() + "銆�,瀵瑰簲宸ュ簭銆�" + data.Rows[0]["stepname"].ToString() + "銆戯紝鏈寚瀹氳川妫�鏂规!";
+                                mes.data = null;
+                                return mes;
+                            }
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "褰撳墠宸ュ簭浠诲姟鏃犳姤宸ヤ骇鍑�!";
+                            mes.data = null;
+                            return mes;
+                        }
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鐢熶骇浠诲姟涓嶅瓨鍦�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
+                    mes.data = null;
+                    return mes;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
+        public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //璐ㄦ鏂规缂栫爜鑾峰彇妫�楠岄」
+                sql = @"select A.stepcheckitem_seq, B.code,B.name,A.required,A.numberjudge,A.unit,A.decimalnum,
+                        A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc   
+                        from TStepCheckStandardSub A
+                        left join TStepCheckItem B on A.stepcheckitem_code=B.code
+                        where A.stepstaned_code=@checkstandcode
+                        order by A.stepcheckitem_seq";
+                dynamicParams.Add("@checkstandcode", checkstandcode);//璐ㄦ鏂规缂栫爜
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鏌ヨ鎴愬姛!";
+                    mes.data = data;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠璐ㄦ鏂规鏃犳楠岄」!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠�,鎻愪氦]
+        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, User us)
+        {
+            var sql = "";
+            string checktypename = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string datetime = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                //鑾峰彇妫�楠岄」鐩俊鎭�
+                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitemcont);
+                list.Clear();
+
+                //鍐欏叆妫�楠岃褰曚富琛�
+                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date) 
+                                values(@wo_code,@partcode,@step_code,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
+                switch (check_type)
+                {
+                    case "FirstCheck":
+                        checktypename = "棣栨";
+                        break;
+                    case "PatroCheck":
+                        checktypename = "宸℃";
+                        break;
+                    case "EndCheck":
+                        checktypename = "瀹屽伐妫�楠�";
+                        break;
+                    default:
+                        break;
+                }
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        wo_code = wocode,
+                        partcode = partcode,
+                        step_code = stepcode,
+                        checkstaned_code = checkstandcode,
+                        check_user = us.usercode,
+                        check_type = check_type,
+                        check_typename = checktypename,
+                        sampmethod = sampmethod,
+                        check_result = qualitystatus,
+                        check_qty = decimal.Parse(sampleqty),
+                        good_qty = decimal.Parse(goodqty),
+                        ng_qty = decimal.Parse(ngqty),
+                        lm_user = us.usercode,
+                        lm_date = datetime
+                    }
+                });
+                //鍐欏叆妫�楠岃褰曞瓙琛�
+                for (int j = 0; j < arra.Count; j++)
+                {
+                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date) 
+                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            checknum = arra[j]["checknum"].ToString(),
+                            checkiem_seq = arra[j]["checkiem_seq"].ToString(),
+                            checkitem_code = arra[j]["checkitem_code"].ToString(),
+                            checkitem_name = arra[j]["checkitem_name"].ToString(),
+                            checkitem_descr = arra[j]["checkitem_descr"].ToString(),
+                            check_value = arra[j]["check_value"].ToString(),
+                            check_result = arra[j]["check_result"].ToString(),
+                            lm_user = us.usercode,
+                            lm_date = datetime
+                        }
+                    });
+                }
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇
+        public static ToMessage StepCheckTableSearch(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, 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 A.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and B.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partapec != "" && partapec != null)
+                {
+                    search += "and B.partspec like '%'+@partapec+'%' ";
+                    dynamicParams.Add("@partapec", partapec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and S.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (standname != "" && standname != null)
+                {
+                    search += "and T.name like '%'+@standname+'%' ";
+                    dynamicParams.Add("@standname", standname);
+                }
+                if (checktype != "" && checktype != null)
+                {
+                    search += "and A.check_type=@checktype ";
+                    dynamicParams.Add("@checktype", checktype);
+                }
+                if (checkresult != "" && checkresult != null)
+                {
+                    search += "and A.check_result=@checkresult ";
+                    dynamicParams.Add("@checkresult", checkresult);
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�(棣栨銆佸贰妫�銆佸畬宸ユ楠�)
+                var sql = @"select A.id,A.wo_code,A.partcode,B.partname,B.partspec,A.step_code,S.stepname,A.checkstaned_code,T.name as checkstaned_name,A.check_user,
+                            A.check_type,A.check_result,A.check_descr,A.check_qty,U.username as lm_user,A.lm_date   
+                            from TStepCheckRecord A
+                            left join TMateriel_Info B on A.partcode=B.partcode
+                            left join TStep S on A.step_code=S.stepcode
+                            left join TStepCheckStandard T on A.checkstaned_code=T.code
+                            left join TUser U on A.check_user=U.usercode 
+                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + 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 StepCheckTableSubSearch(string id)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_WuLiuCheckSubSelect";
+                dynamicParams.Add("@checkid", id);
+                DataTable dt = DapperHelper.selectProcedure(sql, dynamicParams);
+                if (dt.Rows.Count > 0)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鏌ヨ鎴愬姛!";
+                    mes.data = dt;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鏃犳楠屾槑缁嗘暟鎹�!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[宸ュ簭妫�楠岃褰曞鍑篯
+        public static ToMessage StepCheckTableOutExcel(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, 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 A.partcode like '%'+@stanedname+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and B.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partapec != "" && partapec != null)
+                {
+                    search += "and B.partspec like '%'+@partapec+'%' ";
+                    dynamicParams.Add("@partapec", partapec);
+                }
+                if (stepname != "" && stepname != null)
+                {
+                    search += "and S.stepname like '%'+@stepname+'%' ";
+                    dynamicParams.Add("@stepname", stepname);
+                }
+                if (standname != "" && standname != null)
+                {
+                    search += "and T.name like '%'+@standname+'%' ";
+                    dynamicParams.Add("@standname", standname);
+                }
+                if (checktype != "" && checktype != null)
+                {
+                    search += "and A.check_type=@checktype ";
+                    dynamicParams.Add("@checktype", checktype);
+                }
+                if (checkresult != "" && checkresult != null)
+                {
+                    search += "and A.check_result=@checkresult ";
+                    dynamicParams.Add("@checkresult", checkresult);
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select 
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.wo_code
+                            ELSE ''END AS '宸ュ崟鍙�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partcode
+                            ELSE ''END AS '浜у搧缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partname
+                            ELSE ''END AS '浜у搧鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partspec
+                            ELSE ''END AS '瑙勬牸鍨嬪彿',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN S.stepname
+                            ELSE ''END AS '宸ュ簭鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.checkstaned_code
+                            ELSE ''END AS '鏍囧噯缂栫爜',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN T.name
+                            ELSE ''END AS '鏍囧噯鍚嶇О',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN U.username
+                            ELSE ''END AS '妫�楠屼汉鍛�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_typename
+                            ELSE ''END AS '妫�楠岀被鍨�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_result
+                            ELSE ''END AS '妫�楠岀粨鏋�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_descr
+                            ELSE ''END AS '妫�楠屾弿杩�',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_qty
+                            END AS '鏍锋湰鏁伴噺',
+                            CASE WHEN
+                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.lm_date
+                            END AS '妫�楠屾椂闂�',
+                            B.checknum as 妫�楠屼欢娆�,B.checkitem_seq as '妫�楠岄」鐩簭鍙�',B.checkitem_code '妫�楠岄」鐩紪鐮�',B.checkitem_name '妫�楠岄」鐩悕绉�',B.checkitem_descr '妫�楠岄」鐩弿杩�',B.check_result '妫�楠岄」鐩粨鏋�',
+                            C.standvalue as '鏍囧噯鍊�',C.uppervalue as '涓婇檺鍊�',C.lowervalue as '涓嬮檺鍊�',B.check_value as '瀹炴祴鍊�'
+                            from TStepCheckRecord A
+                            left join TStepCheckRecordSub B on A.id=B.m_id
+                            left join TMateriel_Info M on A.partcode=M.partcode
+                            left join TStep S on A.step_code=S.stepcode
+                            left join TStepCheckStandard T on A.checkstaned_code=T.code
+                            left  join TStepCheckStandardSub C on A.checkstaned_code=C.stepstaned_code and B.checkitem_code=C.stepcheckitem_code
+                            left join TUser U on A.check_user=U.usercode  
+                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + 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