From 9f5f3f3309827ce6ad816482d1a60b8cea29761e Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期一, 01 七月 2024 17:23:14 +0800
Subject: [PATCH] 报工台点击异常跳转获取,物料,代码,数量,规格型号,登录人的上级,不良采集增加批量保存方法

---
 WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs |  306 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 295 insertions(+), 11 deletions(-)

diff --git a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
index 66a1b09..dc7028a 100644
--- a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
@@ -1,4 +1,6 @@
-锘縰sing DBUtility;
+锘縰sing DAL;
+using DBUtility;
+using DLL;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using System;
@@ -7,8 +9,11 @@
 using System.Linq;
 using System.Net;
 using System.Net.Http;
+using System.Timers;
+using System.Threading.Tasks;
 using System.Web.Http;
 using WebAPI.Models;
+using System.Threading;
 
 namespace WebAPI.Controllers.SCGL
 {
@@ -43,7 +48,7 @@
         /// <returns></returns>
         [Route("Sc_MESTransFerWorkBill/SaveGetMESTransFerWorkFrom")]
         [HttpPost]
-        public object SaveGetMESTransFerWorkFrom([FromBody] JObject msg)
+        public object SaveGetMESTransFerWorkFromAsync([FromBody] JObject msg)
         {
 
             var _value = msg["msg"].ToString();
@@ -151,10 +156,19 @@
                         objJsonResult.data = 1;
                         return objJsonResult;
                     }
-                    
+
                     //string[] arrStr = oItem.HSendMan.Split(','); //鍙戦�佷汉
                     //arrStr = oItem.HReceiveMan.Split(',');  //鎺ユ敹浜�
-                    string[] arrStr = oItem.HCopyMan.Split(',');  //鎶勯�佷汉
+                    string[] arrStr;
+
+                    if (string.IsNullOrEmpty(oItem.HCopyMan))
+                    {
+                        arrStr = new string[0];  // 濡傛灉 oItem.HCopyMan 涓虹┖锛屽垯璧嬪�间负绌烘暟缁�
+                    }
+                    else
+                    {
+                        arrStr = oItem.HCopyMan.Split(',');  // 鍚﹀垯锛屼娇鐢� Split(',') 鏂规硶鎷嗗垎瀛楃涓�
+                    }
                     List<string> b = new List<string>(arrStr);
                     b.Add(oItem.HSendMan);
                     b.Add(oItem.HReceiveMan);
@@ -165,12 +179,13 @@
                         Models.ClsOA_ErrMsgBackBillSub2 sb = new Models.ClsOA_ErrMsgBackBillSub2();
                         sb.HEntryID = i;
                         sb.HReceiveMan = arrStr[i - 1];
-                        if (arrStr[i-1].ToString() == oItem.HSendMan)
+                        if (arrStr[i - 1].ToString() == oItem.HSendMan)
                         {
                             sb.HReadFlag = true;
                         }
                         oBill.DetailColl2.Add(sb);
                     }
+
                     oBill.omodel = oItem;
                 }
                
@@ -180,7 +195,7 @@
                 bool bResult;
                 if (refSav == "Add")
                 {
-                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);                  
                     if (bResult)
                     {
                         objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //杩斿洖涓籌D
@@ -196,8 +211,8 @@
                             {
                                 objJsonResult.Verify = "N";
                             }
-                        }
-                    }
+                        }                       
+                    }                    
 
                 }
                 else
@@ -516,14 +531,15 @@
                                         A.HQty,A.HSendType,
                                         A.HDeptID,D.HName HDeptName, A.HSendMan, 
                                         A.HReceiveMan,A.HCopyMan,A.HHasten,
-                                        A.HLevel,A.HMaterName,A.HMaterModel,
+                                        A.HLevel,A.HMaterNumber,A.HMaterName,A.HMaterModel,
                                         B.HReadFlag, A.HMaker,A.HMakeDate,A.HUpDater,A.HUpDateDate,A.HChecker,A.HCheckDate,A.HCloseMan,A.HCloseDate,A.HDeleteMan,A.HDeleteDate,
                                         A.HSourceInterID,A.HSourceEntryID,A.HSourceBillNo,A.HSourceBillType,
-										A.HHandleEmpID,f.HName HHandleEmpName
+										A.HHandleEmpID,f.HName HHandleEmpName,A.HErrMsgBackTypeID,g.HName HErrMsgBackTypeName
                                         from OA_ErrMsgBackBillMain A 
                                         inner join  OA_ErrMsgBackBillSub2 B on A.HInterID=B.HInterID 
                                         left join Gy_Department D on A.HDeptID=D.HItemID
-										left join Gy_Employee f on A.HHandleEmpID=f.HItemID 
+										left join Gy_Employee f on A.HHandleEmpID=f.HItemID     
+                                        left join Gy_ErrMsgBackType g on A.HErrMsgBackTypeID=g.HItemID
                                         where A.HInterID='" + HID + "' and b.HEntryID='" + HEntryID + "'");
             var dataSet = oCN.RunProcReturn(sql, "OA_ErrMsgBackBillMain");
             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
@@ -1012,6 +1028,7 @@
                 {
 
                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    _ = SendDingDingAsync(oBill.omodel.HSendMan, oBill.omodel.HHandleEmpID,oBill.omodel.HDescription,"");
                 }
                 else if (refSav == "Update")
                 {
@@ -1986,6 +2003,7 @@
                 {
 
                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    _ = SendDingDingAsync(oBill.omodel.HSendMan, 1, oBill.omodel.HDescription, oBill.omodel.HReceiveMan);
                 }
                 else if (refSav == "Update")
                 {
@@ -2902,6 +2920,7 @@
                 {
 
                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    _ = SendDingDingAsync(oBill.omodel.HSendMan, 1, oBill.omodel.HDescription, oBill.omodel.HReceiveMan);
                 }
                 else if (refSav == "Update")
                 {
@@ -3815,6 +3834,7 @@
                 {
 
                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    _ = SendDingDingAsync(oBill.omodel.HReceiveMan, 0, oBill.omodel.HDescription, oBill.omodel.HCopyMan);
                 }
                 else if (refSav == "Update")
                 {
@@ -6590,5 +6610,269 @@
         #endregion
 
         #endregion
+
+
+        #region 寮傚父鍙嶉 鎺ユ敹,澶勭悊,楠屾敹鍗曚繚瀛樺彂閫佹秷鎭�
+        /// <summary>
+        /// 寮傚父鍙嶉 鎺ユ敹,澶勭悊,楠屾敹鍗曚繚瀛樺彂閫佹秷鎭�
+        /// </summary>
+        /// <param name="HSendMan"></param>
+        /// <param name="HHandleEmpID"></param>
+        /// <param name="HDescription"></param>
+        /// <param name="HCopyMan"></param>
+        /// <returns></returns>
+        public async Task<object> SendDingDingAsync(string HSendMan, int HHandleEmpID,string HDescription,string HCopyMan)
+        {
+            string concatenatedNames = "";
+            Cls_DDMsg msg = new Cls_DDMsg();
+            string appKey = "dingrsrzhdyn3mlaof95";
+            string appSecret = "RAqH6YtZnPLCpDbuqfaYQkKkVtVdS0wqfC8I26X6qiS-8eoCJCNrzx3fubGND4Sq";
+            if (HHandleEmpID==0) //寮傚父鍙嶉楠屾敹鍗曚繚瀛�  灏嗘秷鎭� 鍙戦�佺粰 鎺ユ敹浜猴紝鎸囨淳澶勭悊浜猴紝鍏ㄩ儴鎶勯�佷汉 
+            {
+                string HReceiveMan = HSendMan;
+                string[] names = HCopyMan.Split(',');
+                string sqlNames = "";
+                foreach (string name in names)
+                {                   
+                    sqlNames += "'" + name.Trim() + "',";
+                }
+                sqlNames = sqlNames.TrimEnd(',');
+                //鑾峰彇鎸囨淳澶勭悊浜�,鍙戦�佷汉鐨勯拤閽塱d
+                string sql1 = "select HDingDingUserID 閽夐拤id from Gy_Czygl where Czymc in ('" + HReceiveMan + "'," + sqlNames + ")";
+                ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
+                List<string> HNames = new List<string>();
+                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+                {
+                    string HName = ds.Tables[0].Rows[i]["閽夐拤id"].ToString();
+                    HNames.Add(HName);
+
+                }
+                concatenatedNames = string.Join(",", HNames);
+            }
+            else if (HHandleEmpID==1)//寮傚父鍙嶉绛惧埌鍗�,寮傚父鍙嶉澶勭悊鍗�  灏嗘秷鎭� 鍙戦�佺粰 鍙戦�佷汉锛屾帴鏀朵汉
+            {
+                //鑾峰彇鍙戦�佷汉  鎺ユ敹浜�
+                string HReceiveMan = HCopyMan;
+                string sql1 = "select HDingDingUserID 閽夐拤id from Gy_Czygl where Czymc in ('" + HSendMan + "','" + HReceiveMan + "')";
+                ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
+                List<string> HNames = new List<string>();
+                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+                {
+                    string HName = ds.Tables[0].Rows[i]["閽夐拤id"].ToString();
+                    HNames.Add(HName);
+
+                }
+                concatenatedNames = string.Join(",", HNames);
+            }
+            else
+            {
+                //鏌ヨ鎸囨淳澶勭悊浜�
+                string sql = "select HName from Gy_Employee where HItemID='" + HHandleEmpID + "'";
+                ds = oCN.RunProcReturn(sql, "Gy_Employee");
+                string HHandleEmpName = ds.Tables[0].Rows[0]["HName"].ToString();
+                //鑾峰彇鎸囨淳澶勭悊浜�,鍙戦�佷汉鐨勯拤閽塱d
+                string sql1 = "select HDingDingUserID 閽夐拤id from Gy_Czygl where Czymc in ('" + HSendMan + "','" + HHandleEmpName + "')";
+                ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
+                List<string> HNames = new List<string>();
+                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+                {
+                    string HName = ds.Tables[0].Rows[i]["閽夐拤id"].ToString();
+                    HNames.Add(HName);
+
+                }
+                concatenatedNames = string.Join(",", HNames);
+            }
+          
+            //鑾峰彇浼佷笟鐨刟ccess_token鐨勫��
+            string response = msg.GetAccessToken(appKey, appSecret);
+            JObject responseJson = JObject.Parse(response);
+            // 鑾峰彇access_token鐨勫��
+            string accessToken = responseJson["accessToken"].ToString();
+
+            //璋冪敤鏂规硶鍙戦�佹秷鎭�           
+            string agentId = "3118119317";//閽夐拤鍚庡彴寤虹珛鐨勫皬绋嬪簭id
+            string userIdList = concatenatedNames;//閽夐拤浜哄憳鐨刬d
+            string deptIdList = "0"; // 绌哄瓧绗︿覆琛ㄧず涓嶆寚瀹氶儴闂�
+            string toAllUser = "false";
+            string message = HDescription;
+            response = await msg.SendTextMessage(accessToken, agentId, userIdList, deptIdList, toAllUser, message);
+            Console.WriteLine(response);
+            return response;
+        }
+        #endregion
+
+        #region  寮傚父鍙嶉鍗曟煡璇紙鎺ユ敹鐨勶紝鍙戦�佺殑锛屾妱閫佺殑锛�
+
+        [Route("Sc_MESTransFerWorkBill/GetSc_MESTransFerWorkBillQuery")]
+        [HttpGet]
+        public object GetSc_MESTransFerWorkBillQuery(string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackSelfQuery " + user, "h_p_OA_ErrMsgBackSelfQuery");
+
+                if (ds.Tables[0].Rows.Count != 0 || ds != null)
+                {
+                    //娣诲姞鍒楀悕
+                    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;
+                    objJsonResult.list = columnNameList;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳暟鎹�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鎶ュ伐鍙拌烦杞紓甯稿弽棣堝崟 寮圭獥鑾峰彇鐢熶骇鐘舵�佷复鏃惰〃鐨� 鐗╂枡 鏁伴噺 淇℃伅 
+
+        [Route("Sc_MESTransFerWorkBill/Get_Sc_ICMOBillStatus")]
+        [HttpGet]
+        public object Get_Sc_ICMOBillStatus(string HSourceBill)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                string sql = "select a.HSourceBillNo 娴佽浆鍗″彿,a.HSourceBillType 娴佽浆鍗$被鍨�,a.HSourceInterID 娴佽浆鍗′富鍐呯爜,a.HSourceEntryID 娴佽浆鍗″瓙鍐呯爜,b.HNumber 鐗╂枡浠g爜,b.HName 鐗╂枡鍚嶇О,b.HModel 瑙勬牸鍨嬪彿,a.HPlanQty 璁″垝鏁伴噺 from Sc_ICMOBillStatus_Tmp a left join Gy_Material b on a.HMaterID=b.HItemID where HSourceBillNo='" + HSourceBill + "'";
+                ds = oCN.RunProcReturn(sql, "Sc_ICMOBillStatus_Tmp");
+
+                //娣诲姞鍒楀悕
+                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 鎶ュ伐鍙拌烦杞紓甯稿弽棣堝崟 寮圭獥鑾峰彇 寮傚父绫诲瀷
+
+        [Route("Sc_MESTransFerWorkBill/Get_ErrMsgBackType")]
+        [HttpGet]
+        public object Get_ErrMsgBackType(string TypeName)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                string sql = "select HItemID,HName from Gy_ErrMsgBackType where HName='" + TypeName + "'";
+                ds = oCN.RunProcReturn(sql, "Gy_ErrMsgBackType");
+
+                //娣诲姞鍒楀悕
+                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 鎶ュ伐鍙拌烦杞紓甯稿弽棣堝崟 寮圭獥鑾峰彇 褰撳墠浜虹殑涓婄骇
+
+        [Route("Sc_MESTransFerWorkBill/Get_UserSuperiors")]
+        [HttpGet]
+        public object Get_UserSuperiors(string HName)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鏍规嵁褰撳墠浜鸿幏鍙栬亴鍔�
+                string sql = "select a.Czymc 鐢ㄦ埛鍚嶇О,c.GroupName 鑱屽姟 from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId left join System_UserGroup c on b.GroupId = c.GroupID  where a.Czymc = '"+HName+"'";
+                ds = oCN.RunProcReturn(sql, "Gy_ErrMsgBackType");
+                string Job = ds.Tables[0].Rows[0]["鑱屽姟"].ToString();
+                //鏍规嵁鑱屽姟鎵惧埌浠栫殑涓婄骇
+                string sql1 = "select *  from Gy_Duty where HParentID=(select HParentID from Gy_Duty where HItemID =(select HParentID from Gy_Duty group by HParentID, HName having HName = '"+Job+"' and count(*) = 1))";
+                ds = oCN.RunProcReturn(sql1, "Gy_Duty");
+                string Job1= ds.Tables[0].Rows[0]["HName"].ToString(); 
+                //鐢ㄤ笂绾х殑鑱屽姟鎵惧埌鐢ㄦ埛
+                string sql2 = "select a.Czymc 鐢ㄦ埛鍚嶇О  from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId left join System_UserGroup c on b.GroupId = c.GroupID  where c.GroupName = '"+Job1+"'";
+                ds = oCN.RunProcReturn(sql2, "Gy_Czygl");
+                //娣诲姞鍒楀悕
+                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
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1