From 78af839e2e3dbe15283db12a816d54d31acb79c9 Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期六, 13 九月 2025 22:15:45 +0800
Subject: [PATCH] 更新启用物料信息状态添加供应商过滤;新增送货物料信息物料id加组织过滤;条码档案数据信息处理;

---
 WebAPI/Controllers/MaterialHandingController.cs |  187 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 171 insertions(+), 16 deletions(-)

diff --git a/WebAPI/Controllers/MaterialHandingController.cs b/WebAPI/Controllers/MaterialHandingController.cs
index 3c4e922..044dc29 100644
--- a/WebAPI/Controllers/MaterialHandingController.cs
+++ b/WebAPI/Controllers/MaterialHandingController.cs
@@ -86,12 +86,12 @@
 
         [Route("MaterialHandingController/OpenMaterial")]
         [HttpGet]
-        public object OpenMaterial(int HInterID, int IsUse, string CurUserName)
+        public object OpenMaterial(int HInterID, int IsUse, string CurUserName,string HMaterID)
         {
             try
             {
-
                 var ds = oCN.RunProcReturn("select * from Gy_UserMaterRelation where HItemID=" + HInterID, "Gy_UserMaterRelation");
+                var ds_1 = oCN.RunProcReturn("select * from Gy_UserMaterRelation where HMaterID=" + HMaterID+ "order by HItemID desc", "Gy_UserMaterRelation");
                 if (ds.Tables[0].Rows.Count > 0)
                 {
                     IsUse = Convert.ToInt32(ds.Tables[0].Rows[0]["HUseFlag"]) ;
@@ -106,7 +106,19 @@
                             return objJsonResult;
                         }
                     }
+                    else
+                    {
+                        if (ds_1.Tables[0].Rows.Count > 1)
+                        {
+                            string sql = "update Gy_UserMaterRelation  set HUseFlag=0 where HMaterID= " + "'" + HMaterID + "'" + "and HItemID!=" + HInterID;
+                            oCN.BeginTran();
+                            oCN.RunProc(sql);
+                            oCN.Commit();
+                            
+                        }
+                    }
                 }
+                
                 else
                 {
                     objJsonResult.code = "0";
@@ -174,10 +186,14 @@
                     //================================================================================== 
 
 
-                    objJsonResult.code = "1";
-                    objJsonResult.count = 1;
-                    objJsonResult.Message = "鍚敤鎴愬姛";
-                    objJsonResult.data = null;
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍚敤鎴愬姛";
+                        objJsonResult.data = null;
+
+
+                   
                 }
                 //if (IsStop == 1) //鍙嶇鐢ㄥ垽鏂�
                 //{
@@ -257,12 +273,12 @@
         #region 鐗╂枡鏍¢獙
         [Route("MaterialHandingController/CheckMaterial")]
         [HttpGet]
-        public object CheckMaterial(string HMaterID, string user, int param,string OrganizationID)
+        public object CheckMaterial(string HMaterID, string user, int param,string OrganizationID,string SupID)
         {
             try
             {
                 //ds1鑾峰彇鐨剆ql鍚庢湡璁板緱鏀瑰洖渚涘簲鍟嗭紝淇敼浜�->渚涘簲鍟�
-                var ds1 = oCN.RunProcReturn("select * from h_v_Gy_UserMaterRelationEdit where 鐗╂枡浠g爜='" + HMaterID + "'" + "and 淇敼浜�='" + user + "'", "h_v_Gy_UserMaterRelationEdit");
+                var ds1 = oCN.RunProcReturn("select * from h_v_Gy_UserMaterRelationEdit where 鐗╂枡浠g爜='" + HMaterID + "'" + "and HSupID ='" + SupID + "'", "h_v_Gy_UserMaterRelationEdit");
                 var ds = oCN.RunProcReturn("select * from Gy_Material where HNumber='" + HMaterID+ "'"+ " and HUSEORGID="+"'"+ OrganizationID+"'", "Gy_Material");
                 if(ds.Tables[0].Rows.Count == 0)
                 {
@@ -283,7 +299,8 @@
                 else
                 {
                     oCN.BeginTran();
-                    string sqlUpd = "UPDATE Gy_UserMaterRelation set HUseFlag=0 where HMaterID="+ ds.Tables[0].Rows[0]["HItemID"];
+                    string sqlUpd = "UPDATE a set a.HUseFlag=0 from Gy_UserMaterRelation a with(nolock) left join Gy_Material m with(nolock) " +
+                        "on a.HMaterID = m.HItemID  where a.HSupID=" + SupID + " and m.HNumber = '" + HMaterID + "'";
                     oCN.RunProc(sqlUpd);
                     oCN.Commit();
 
@@ -358,19 +375,26 @@
         {
             try
             {
+                //var _value = msg["msg"].ToString();
+                //string msg3 = _value.ToString();
+                ////string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                ////string msg1 = sArray[0].ToString();
+                ////string msg2 = sArray[1].ToString();
+                //string msg2 = msg3.ToString();
+
                 var _value = msg["msg"].ToString();
-                string msg3 = _value.ToString();
-                //string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
-                //string msg1 = sArray[0].ToString();
-                //string msg2 = sArray[1].ToString();
-                string msg2 = msg3.ToString();
+                string msg1 = _value.ToString();
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                string msg2 = sArray[0].ToString();//
+                string OrganizationID = sArray[1].ToString();// 
 
                 //鍙嶅簭鍒楀寲
                 msg2 = "[" + msg2.ToString() + "]";
 
                 List<Model.Cls_MaterialHandingModel> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Cls_MaterialHandingModel>>(msg2);
-                var ds = oCN.RunProcReturn("select * from Gy_Material where HNumber='" + list[0].HMaterNumber + "'", "Gy_Material");
-
+                
+                var ds = oCN.RunProcReturn("select * from Gy_Material where HNumber='" + list[0].HMaterNumber + "' and HUSEORGID = " + OrganizationID, "Gy_Material");
+ 
                 int HItemID =Convert.ToInt32(list[0].HItemID);
                 string HMaterNumber = list[0].HMaterNumber;
                 int HMaterID =Convert.ToInt32(ds.Tables[0].Rows[0]["HItemID"]);
@@ -430,6 +454,7 @@
             }
             catch (Exception e)
             {
+                LogService.Write("閫佽揣鐗╂枡淇℃伅淇濆瓨寮傚父锛�" + e.Message);
                 oCN.RollBack();
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
@@ -579,7 +604,137 @@
 
         }
         //#endregion
+        #region 涓婚〉闈㈠惎鐢�
+        [Route("MaterialHandingController/CheckMaterialCount")]
+        [HttpGet]
+        public object CheckMaterialCount(string HMaterID, string HSupID, int HInterID)
+        {
+            try
+            {
+                //妫�鏌ュ悓渚涘簲鍟嗕笅鏄惁鏈夊叾浠栫墿鏂�
+                string sql = "SELECT COUNT(*) as Count FROM Gy_UserMaterRelation " +
+                             "WHERE HMaterID = '" + HMaterID + "' AND HSupID = " + HSupID +
+                             " AND HItemID != " + HInterID;
+                var ds = oCN.RunProcReturn(sql, "Gy_UserMaterRelation");
+                int count = Convert.ToInt32(ds.Tables[0].Rows[0]["Count"]);
 
+                objJsonResult.code = "1";
+                objJsonResult.count = count;
+                objJsonResult.Message = "鏌ヨ鎴愬姛";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏌ヨ澶辫触: " + e.Message;
+                return objJsonResult;
+            }
+        }
+
+        [Route("MaterialHandingController/OpenMaterial")]
+        [HttpGet]
+        public object OpenMaterial(int HInterID, int IsUse, string CurUserName, string HMaterID, string HSupID, int disableOthers)
+        {
+            try
+            {
+                var ds = oCN.RunProcReturn("SELECT * FROM Gy_UserMaterRelation WHERE HItemID=" + HInterID, "Gy_UserMaterRelation");
+
+                if (ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!";
+                    return objJsonResult;
+                }
+
+                int currentUseFlag = Convert.ToInt32(ds.Tables[0].Rows[0]["HUseFlag"]);
+
+                // 妫�鏌ユ槸鍚﹀凡鍚敤
+                if (currentUseFlag == 1)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁宸插惎鐢�!涓嶈兘鍐嶆鍚敤锛�";
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                // 濡傛灉鐢ㄦ埛閫夋嫨绂佺敤
+                if (disableOthers == 1)
+                {
+                    string disableSql = "UPDATE Gy_UserMaterRelation SET HUseFlag=0 " +
+                                       "WHERE HMaterID='" + HMaterID + "' AND HSupID=" + HSupID +
+                                       " AND HItemID!=" + HInterID;
+                    oCN.RunProc(disableSql);
+                }
+
+                // 鍚敤鍓嶆帶鍒�
+                string sql1 = "EXEC h_p_Gy_MaterPrice_BeforeStopCtrl " + HInterID + ",'" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_Gy_MaterPrice_BeforeStopCtrl");
+
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚敤澶辫触!鍘熷洜:鍚敤鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚敤澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                // 鍚敤褰撳墠璁板綍
+                oCN.RunProc("UPDATE Gy_UserMaterRelation SET HUpDater='" + CurUserName +
+                           "', HUpDateDate=GETDATE(), HUseFlag=1 WHERE HItemID=" + HInterID);
+
+                // 鍚敤鍚庢帶鍒�
+                string sql2 = "EXEC h_p_Gy_MaterPrice_AfterStopCtrl " + HInterID + ",'" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_Gy_MaterPrice_AfterStopCtrl");
+
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚敤澶辫触!鍘熷洜:鍚敤鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚敤澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍚敤鎴愬姛";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍚敤澶辫触!" + e.Message;
+                return objJsonResult;
+            }
+        }
+        #endregion
 
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1