From 981ea6f779477b4b729c6796cfc42ee933c781b0 Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期二, 17 三月 2026 18:43:09 +0800
Subject: [PATCH] 优化自动产生工作联系单方法

---
 WebAPI/Controllers/WebAPIController.cs |  411 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 403 insertions(+), 8 deletions(-)

diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 3bfaf2f..8b17da6 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -1511,13 +1511,67 @@
             }
         }
 
+        #region 鑾峰彇鑱屽憳鍒楄〃 (娣诲姞杞﹂棿绛涢��)
+        [Route("Web/GetEmployeeList_Json")]
+        [HttpGet]
+        public object GetEmployeeList_Json3(string Employee, Int64 HGroupID, Int64 HDeptID = -1)
+        {
+            // 缁欓儴闂�(杞﹂棿)ID璁剧疆榛樿鍊硷紝褰撴病鏈変紶鍏ュ�兼垨鑰呭�间负0鐨勬椂鍊欙紝璧版棫鏈夌殑鍑芥暟锛屽惁鍒欒蛋鏂扮殑閫昏緫
+            if(HDeptID == -1 || HDeptID == 0)
+            {
+                return GetEmployeeList_Json2(Employee, HGroupID);
+            }else
+            {
+                sWhere = $" Where HStopFlag=0  and HEndFlag=1  and HDeptID=${HDeptID}";
+                
+                if(Employee != "")
+                {
+                    sWhere += " and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' )";
+                }
+                if(HGroupID != 0)
+                {
+                    sWhere += " and HGroupID=" + HGroupID.ToString();
+                }
+
+                try
+                {
+                    string sql = $"Select * from h_v_IF_Emp {sWhere} Order by HNumber";
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_Emp");
+                    if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                    {
+                        // 濡傛灉 閫掑叆 閮ㄩ棬娌℃湁缁存姢浜哄憳鍒楄〃 鍒欓檷绾т娇鐢ㄨ�佹柟妗�
+                        return GetEmployeeList_Json2(Employee, HGroupID);
+                    }
+                    else
+                    {
+                        objjson.code = "0";
+                        objjson.count = 1;
+                        objjson.Message = "鑾峰彇鎴愬姛!";
+                        objjson.data = ds.Tables[0];
+                        return objjson;
+                    }
+                }
+                catch (Exception ex)
+                {
+
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                    objjson.data = null;
+                    return objjson;
+                }
+
+            }
+        }
+        #endregion
+
 
         /// <summary>
         /// 鑾峰彇鑱屽憳鍒楄〃
         /// </summary>
         /// <returns></returns>
-        [Route("Web/GetEmployeeList_Json")]
-        [HttpGet]
+        // [Route("Web/GetEmployeeList_Json")]
+        // [HttpGet]
         public object GetEmployeeList_Json2(string Employee, Int64 HGroupID)
         {
             sWhere = " Where HStopFlag=0  and HEndFlag=1";
@@ -20379,6 +20433,7 @@
             try
             {
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
                 string sql = "exec h_p_Gy_GetQCCheckItemByProject_Sec " + CheckProjectID + "," + HBatchQty + "," + HMaterID + ",'" + HBillType + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Gy_GetQCCheckItemByProject_Sec");
                 if (ds == null || ds.Tables[0].Rows.Count <= 0)
@@ -23241,12 +23296,6 @@
             oCN.BeginTran();
             try
             {
-                LogService.Write($@"exec h_p_SetGy_UserClientIdRelation 
-                @HUserbm=N'{msg["HUserbm"].ToString()}',
-	            @HUserName=N'{msg["HUserName"].ToString()}',
-	            @HClientID=N'{msg["HClientID"].ToString()}',
-                @HOnline={msg["HOnline"].ToString()}
-                ", "h_p_SetGy_UserClientIdRelation");
                 ds = oCN.RunProcReturn($@"exec h_p_SetGy_UserClientIdRelation 
                 @HUserbm=N'{msg["HUserbm"].ToString()}',
 	            @HUserName=N'{msg["HUserName"].ToString()}',
@@ -23283,5 +23332,351 @@
             }
         }
         #endregion
+
+        #region APP 鏍规嵁妯″潡鑾峰彇璇ユā鍧椾笅闇�瑕佹樉绀烘秷鎭爣璇嗙殑瀛愭ā鍧�
+        [Route("Web/getMessageIdentified")]
+        [HttpGet]
+        public object getMessageIdentified(string user, string moduleName)
+        {
+            DataSet oDs = oCN.RunProcReturn($"exec h_p_getMessageIdentifier_APP '{user}', '{moduleName}'", "h_p_getMessageIdentifier_APP");
+            if(oDs == null || oDs.Tables[0].Rows.Count == 0)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鑾峰彇娑堟伅鏍囪瘑澶辫触锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            else
+            {
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鑾峰彇娑堟伅鏍囪瘑鎴愬姛锛�";
+                objJsonResult.data = oDs.Tables[0];
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 妯″叿寰呬笂妯℃煡璇� 鑾峰彇
+        [Route("Web/getSc_MouldUpperAwaitQuery")]
+        [HttpGet]
+        public object getSc_MouldUpperAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
+        {
+            if(HBeginDate == "") // 榛樿7澶╅棿璺�
+            {
+                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
+            }
+
+            if(HEndDate == "")
+            {
+                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
+            }
+            List<object> columnNameList = new List<object>();
+            try
+            {
+                DataSet oDs = oCN.RunProcReturn($" exec h_p_Sc_MouldUpperAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Sc_MouldUpperAwaitQuery");
+                if(oDs == null || oDs.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.data = null;
+                    return objjson;
+                }else
+                {
+                    //娣诲姞鍒楀悕
+                    foreach (DataColumn col in oDs.Tables[0].Columns)
+                    {
+                        Type dataType = col.DataType;
+                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                    }
+
+                    objjson.code = "1";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = oDs.Tables[0];
+                    objjson.list = columnNameList;
+                    return objjson;
+                }
+
+            }catch(Exception ex)
+            {
+                LogService.Write(ex.ToString());
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.Message.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        #endregion
+
+        #region 寰呭紑宸ュ垪琛� 鑾峰彇
+        [Route("Web/getCj_StationInBillAwaitQuery")]
+        [HttpGet]
+        public object getCj_StationInBillAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
+        {
+            if (HBeginDate == "") // 榛樿7澶╅棿璺�
+            {
+                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
+            }
+
+            if (HEndDate == "")
+            {
+                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
+            }
+            List<object> columnNameList = new List<object>();
+            try
+            {
+                DataSet oDs = oCN.RunProcReturn($" exec h_p_Cj_StationInBillAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Cj_StationInBillAwaitQuery");
+                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    //娣诲姞鍒楀悕
+                    foreach (DataColumn col in oDs.Tables[0].Columns)
+                    {
+                        Type dataType = col.DataType;
+                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                    }
+
+                    objjson.code = "1";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = oDs.Tables[0];
+                    objjson.list = columnNameList;
+                    return objjson;
+                }
+
+            }
+            catch (Exception ex)
+            {
+                LogService.Write(ex.ToString());
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.Message.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        #endregion
+
+        #region 妯″叿寰呬笅妯℃煡璇� 鑾峰彇
+        [Route("Web/getSc_MouldLowerBillAwaitQuery")]
+        [HttpGet]
+        public object getSc_MouldLowerBillAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
+        {
+            if (HBeginDate == "") // 榛樿7澶╅棿璺�
+            {
+                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
+            }
+
+            if (HEndDate == "")
+            {
+                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
+            }
+            List<object> columnNameList = new List<object>();
+            try
+            {
+                DataSet oDs = oCN.RunProcReturn($" exec h_p_Sc_MouldLowerBillAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Sc_MouldLowerBillAwaitQuery");
+                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    //娣诲姞鍒楀悕
+                    foreach (DataColumn col in oDs.Tables[0].Columns)
+                    {
+                        Type dataType = col.DataType;
+                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                    }
+
+                    objjson.code = "1";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = oDs.Tables[0];
+                    objjson.list = columnNameList;
+                    return objjson;
+                }
+
+            }
+            catch (Exception ex)
+            {
+                LogService.Write(ex.ToString());
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.Message.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        #endregion
+
+        #region 鑾峰彇 璁惧缁戝畾鑱屽憳淇℃伅(甯﹀嚭妯″叿鑱屽憳淇℃伅) 鍗庤垷
+        [Route("Web/getEquipBindingEmp")]
+        [HttpGet]
+        public object getEquipBindingEmp(string HEquipNumber)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                ds = oCN.RunProcReturn($"exec h_p_getEquipBindingEmp_huazhou {HEquipNumber}", "h_p_getEquipBindingEmp_huazhou");
+                if (ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "褰撳墠璁惧娌℃湁涓婃ā淇℃伅";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region APP 鑾峰彇寮傚父鍙嶉鍗� 鑾峰彇 妫�楠屽崟鍐呭 閫氱敤鏂规硶
+        [Route("Web/getCheckBillStatus")]
+        [HttpGet]
+        public object getCheckBillStatus(Int64 HInterID, string HBillType)
+        {
+            try { 
+                string sql = "";
+                List<object> columnNameList = new List<object>();
+                if(HBillType == "7505")
+                {
+                    // 棣栨
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          FROM				  
+                          dbo.QC_FirstPieceCheckBillMain AS a INNER JOIN
+                          dbo.QC_FirstPieceCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_FirstPieceCheckBillMain");
+
+                }
+                else if (HBillType == "7520")
+                {
+                    // 宸℃
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          FROM				  
+                          dbo.QC_PatrolProcCheckOtherBillMain AS a INNER JOIN
+                          dbo.QC_PatrolProcCheckOtherBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_PatrolProcCheckOtherBillMain");
+                }
+                else if(HBillType == "7507")
+                {
+                    // 鏈
+                    sql = $@"SELECT
+                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 鏃ユ湡, a.HBillNo AS 鍗曟嵁鍙�, 
+                          a.HRemark AS 琛ㄥご澶囨敞,s.HName 鐢熶骇璧勬簮鍚嶇О,s.HNumber 鐢熶骇璧勬簮浠g爜, m.HNumber AS 浜у搧鍐呯爜, m.HName AS 浜у搧鍚嶇О, m.HModel AS 浜у搧鍨嬪彿,e.HNumber as 妫�楠屽憳浠g爜, e.HName as 妫�楠屽憳鍚嶇О,
+                          a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡, a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, 
+                          a.HUpDateDate AS 淇敼鏃ユ湡, a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡, 
+                          a.HBillType AS 鍗曟嵁绫诲瀷,b.HEntryID hsubid, a.HCheckQty 妫�楠屾暟閲�, a.HSourceID HSourceID,
+			       		  a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 宸ュ簭娴佽浆鍗″彿,
+			       		  a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 鐢熶骇璁㈠崟鍙�
+                          , HRemarkSN 鏉$爜                          
+                          FROM				  
+                          dbo.QC_ProcessCheckBillMain AS a INNER JOIN
+                          dbo.QC_ProcessCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
+			       		  dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
+			       		  dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
+                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
+                    sql += $" where a.HInterID = {HInterID}";
+
+                    ds = oCN.RunProcReturn(sql, "QC_ProcessCheckBillMain");
+                }
+                if(ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛屾棤妫�楠屽崟锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
     }
 }

--
Gitblit v1.9.1