From 810525d873ae032b9e8d0335e90c93b791bfbbde Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期三, 25 二月 2026 13:59:41 +0800
Subject: [PATCH] 成本分配类型增加子表

---
 WebAPI/Controllers/LMESController.cs |  255 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 216 insertions(+), 39 deletions(-)

diff --git a/WebAPI/Controllers/LMESController.cs b/WebAPI/Controllers/LMESController.cs
index a633d9e..e175fac 100644
--- a/WebAPI/Controllers/LMESController.cs
+++ b/WebAPI/Controllers/LMESController.cs
@@ -12,6 +12,8 @@
 using WebAPI.Models;
 using System.Web;
 using System.IO;
+using WebAPI.Controllers.SCGL;
+
 namespace WebAPI.Controllers
 {
     public class LMESController : ApiController
@@ -26,12 +28,7 @@
         private static char[] lNCode = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
         string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
 
-
-        /// <summary>
-        /// 杩斿洖杩涚珯鎵弿鍒楄〃|宸ュ簭杩涚珯鎺ユ敹鍗曞垪琛� 
-        ///鍙傛暟锛歴tring sql銆�
-        ///杩斿洖鍊硷細object銆�    
-        /// </summary>
+        #region 杩斿洖杩涚珯鎵弿鍒楄〃|宸ュ簭杩涚珯鎺ユ敹鍗曞垪琛� 
         [Route("LEMS/MES_StationInBillList_Json")]
         [HttpGet]
         public object MES_StationInBillList_Json(string sWhere)
@@ -58,15 +55,12 @@
             }
             return GetObjectJson(ds);
         }
+        #endregion
 
-        /// <summary>
-        /// 杩斿洖宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ富琛�
-        ///鍙傛暟锛歴tring sql銆�
-        ///杩斿洖鍊硷細object銆�
-        /// </summary>
+        #region  杩斿洖宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ富琛�
         [Route("LEMS/MES_Sc_ProcessExchangeBillQuery_Json")]
         [HttpGet]
-        public object MES_Sc_ProcessExchangeBillList_Json(string sWhere, string user,string HBillSubType)
+        public object MES_Sc_ProcessExchangeBillList_Json(string sWhere, string user, string HBillSubType)
         {
             DataSet ds;
             try
@@ -84,7 +78,8 @@
                         return objJsonResult;
                     }
                 }
-                else {
+                else
+                {
 
                     //鍒ゆ柇鏄惁鏈夋煡璇㈡潈闄�
                     if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Query", 1, false, user))
@@ -107,7 +102,7 @@
                         //鑾峰彇闇�瑕佹嫾鎺ョ殑瀛楃涓�
                         string sql_splice = DBUtility.ClsPub.SpliceSQL(user, "宸ュ簭娲惧伐鍗曞垪琛�");
 
-                        sWhere += sql_splice;                       
+                        sWhere += sql_splice;
                     }
                 }
 
@@ -124,7 +119,7 @@
                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
                 }
-                
+
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "Sucess锛�";
@@ -141,6 +136,8 @@
                 return objJsonResult;
             }
         }
+        #endregion
+
 
         #region 宸ュ簭娴佽浆鍗$淮鎶�-鏌ヨ
         /// <summary>
@@ -499,15 +496,10 @@
         #endregion
 
 
-        /// <summary>
-        /// 宸ュ簭娴佽浆鍗″彧鏄剧ず宸ュ簭鏌撳巶鐨勬暟鎹�
-        /// </summary>
-        /// <param name="sWhere"></param>
-        /// <param name="user"></param>
-        /// <returns></returns>
+        #region 宸ュ簭娴佽浆鍗″彧鏄剧ず宸ュ簭鏌撳巶鐨勬暟鎹�
         [Route("LEMS/MES_ProcessExchangeBillList_Json")]
         [HttpGet]
-        public object MES_ProcessExchangeBillList_Json(string sWhere, string user,int OperationType)
+        public object MES_ProcessExchangeBillList_Json(string sWhere, string user, int OperationType)
         {
             DataSet ds;
             try
@@ -523,7 +515,8 @@
                     return objJsonResult;
                 }
 
-                if (OperationType == 1) {
+                if (OperationType == 1)
+                {
                     //鑾峰彇绯荤粺鍙傛暟
                     string Ret = "";
                     if (oSystemParameter.ShowBill(ref Ret))
@@ -534,7 +527,8 @@
                             sWhere += " and 宸ュ簭='鏌撳巶' ";
 
                         }
-                        else {
+                        else
+                        {
                             sWhere += " and 宸ュ簭='绮楃(' ";
                         }
                     }
@@ -542,7 +536,7 @@
                     SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                     ds = oCN.RunProcReturn("select top 1000 * from h_v_Sc_ProcessExchangeBillList where 1 = 1 " + sWhere + " order by hmainid desc ", "h_v_Sc_ProcessExchangeBillList");
                 }
-                else 
+                else
                 {
                     //鑾峰彇绯荤粺鍙傛暟
                     string Ret = "";
@@ -551,13 +545,13 @@
                         //鍒ゆ柇瀹㈡埛涓洪緳灞辨苯閰�
                         if (oSystemParameter.omodel.WMS_CampanyName == "涔斾竴")
                         {
-                          
+
 
                         }
                     }
 
                     SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
-                    ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeArrangementList where 1 = 1 " + sWhere , "h_v_Sc_ProcessExch_v_Sc_ProcessExchangeArrangementListhangeBillList");
+                    ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeArrangementList where 1 = 1 " + sWhere, "h_v_Sc_ProcessExch_v_Sc_ProcessExchangeArrangementListhangeBillList");
                 }
 
                 //娣诲姞鍒楀悕
@@ -584,6 +578,7 @@
                 return objJsonResult;
             }
         }
+        #endregion
 
         #region 宸ュ簭娴佽浆鍗″彧鏄剧ず宸ュ簭鏁版嵁
         [Route("LEMS/MES_ProcessExchangeBillList_PG")]
@@ -729,7 +724,17 @@
                     oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=" + HSourceID + " where HInterID=" + HInterID + " and HEntryID=" + HEntryID);
 
                     oCN.RunProc("exec h_p_Sc_ICMOBillStatus_Tmp_PG " + HInterID + "," + HEntryID);
-                  
+                    string sReturn = "";
+                    if (oSystemParameter.ShowBill(ref sReturn) == true)
+                    {
+                        if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+                        {
+                            oCN.RunProc("update Sc_ProcessExchangeBillMain set HMakeDate = GETDATE(),HMaker='"+ user + "' where HInterID = " + HInterID );
+                            
+                            //鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�
+                            oCN.RunProc("exec h_p_OA_WorkLinkBill_Create " + HInterID + "," + 3772);
+                        }
+                    }                    
                     oCN.Commit();
                 }
 
@@ -833,6 +838,181 @@
             }
         }
         #endregion
+
+        #region 宸ュ簭娴佽浆鍗℃壒閲忔淳宸ワ紙鍗庤垷锛�
+        [Route("LEMS/ProcessExchangeArrangement_Add_PGPL")]
+        [HttpPost]
+        public object ProcessExchangeArrangement_Add_PGPL([FromBody] JObject msg)
+        {
+            var _value = msg["msg"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string msg3 = sArray[1].ToString(); //瀛愯〃
+            string refSav = sArray[2].ToString();//鎿嶄綔鏂瑰紡鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗
+            string msg4 = sArray[3].ToString();//鐢ㄦ埛鍚�
+
+            try
+            {
+                // 鍙嶅簭鍒楀寲瀛愯〃鏁版嵁
+                var detailList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(msg3);
+
+                foreach (var row in detailList)
+                {
+                    // 3. 寮�濮嬩簨鍔�
+                    oCN.BeginTran();
+                    DataSet ds2 = null;
+                    // 鑾峰彇瀛愯〃瀛楁鍊�
+                    string hSourceID = row.ContainsKey("HSourceID") ? row["HSourceID"] : "0";
+                    string hMoldID = row.ContainsKey("HMoldID") ? row["HMoldID"] : "0";
+                    string hSourceInterID = row.ContainsKey("HSourceInterID") ? row["HSourceInterID"] : "0";
+                    string hSourceEntryID = row.ContainsKey("HSourceEntryID") ? row["HSourceEntryID"] : "0";
+
+                    if (hSourceID == "0" || hMoldID == "0")
+                    {
+                        continue;
+                    }
+                    string sReturn = "";
+                    if (oSystemParameter.ShowBill(ref sReturn) == true)
+                    {
+                         if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+                         {
+                            oCN.RunProc("update Sc_ProcessExchangeBillMain set HMakeDate = GETDATE(),HRemark3='宸叉淳宸�',HMaker='" + msg4 + "' where HInterID = " + hSourceInterID);
+                            LogService.Write("鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�...");
+
+                            //鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�
+                            ds2 = oCN.RunProcReturn("exec h_p_OA_WorkLinkBill_Create " + hSourceInterID + "," + 3772, "h_p_OA_WorkLinkBill_Create");
+  
+                         }
+                    }
+                    oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=" + hSourceID + " where HInterID=" + hSourceInterID + " and HEntryID=" + hSourceEntryID);
+                    // 鎻掑叆鐢熶骇鐘舵�佷复鏃惰〃
+                    string SQL = $"exec h_p_Sc_ICMOBillStatus_Tmp_PGPL {hSourceInterID},{hSourceEntryID},{hSourceID},{hMoldID}";
+                    oCN.RunProc(SQL);
+                    //鎻掑叆宸ュ簭娴佽浆鍗℃淳宸ュ崟
+                    string SQL1 = $"exec h_p_Sc_ProcExchSendWorkBill_PG {hSourceInterID},{hSourceEntryID},{hSourceID},{hMoldID}";
+                    oCN.RunProc(SQL1);
+
+                    // 7. 鎻愪氦浜嬪姟
+                    oCN.Commit();
+                    if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
+                    {
+                        int HInterID = int.Parse(ds2.Tables[0].Rows[0]["NewHInterID"].ToString());
+                        LogService.Write("鎵ц娑堟伅鎺ㄩ��..." + HInterID);
+
+                        // 瑙﹀彂娑堟伅鎺ㄩ��
+                        new Sc_MESTransFerWorkBillController().AuditOA_WorkLinkBill(HInterID, 0, msg4);
+                    }
+                }
+
+
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "娲惧伐淇℃伅淇濆瓨鎴愬姛锛�";
+
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.Message;
+            }
+
+            return objJsonResult;
+        }
+        #endregion
+
+        #region 鍙栨秷娲惧伐鍔熻兘(鍗庤垷)
+        [Route("LEMS/ProcessExchangeArrangementDel_PGHZ")]
+        [HttpGet]
+        public object ProcessExchangeArrangementDel_PGHZ(string HInterID_S, string user)
+        {
+            DataSet ds;
+            DataSet ds1;
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "娴佽浆鍗℃棤缂栬緫鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                var HNum = HInterID_S.Split(',');
+
+                oCN.BeginTran();
+
+                for (int j = 0; j < HNum.Length; j++)
+                {
+
+                    long HInterID = long.Parse(HNum[j].Split('|')[0]);
+                    long HEntryID = long.Parse(HNum[j].Split('|')[1]);
+                    long HSourceID = long.Parse(HNum[j].Split('|')[2]);
+                    ds = oCN.RunProcReturn(@"select a.HMaterID,b.HProcID,a.HBillNo from Sc_ProcessExchangeBillMain a inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID  where a.HInterID=" + HInterID + " and b.HEntryID=" + HEntryID, "Sc_ProcessExchangeBillMain");
+                    LogService.Write(1);
+                    if (ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏌ユ棤姝ゅ伐搴忔祦杞崱锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //鏍规嵁涓诲瓙ID+浜х嚎鏌ヨ鏄惁娲惧伐
+                    ds = oCN.RunProcReturn("select * from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID , "Sc_ICMOBillStatus_Tmp");
+                    LogService.Write(2);
+                    if (ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎶ュ伐鏌ユ棤鏁版嵁锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    LogService.Write(3);
+                    oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=0 where HInterID=" + HInterID + " and HEntryID=" + HEntryID);
+                    LogService.Write(4);
+                    //鏇存柊鎺夊凡娲惧伐瀛楁
+                    oCN.RunProc("update Sc_ProcessExchangeBillMain set HRemark3='' where HInterID=" + HInterID);
+                    LogService.Write(5);
+                    oCN.RunProc("delete from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + " and HSourceID=" + HSourceID);
+                    LogService.Write(6);
+                    //鏌ヨ鏄惁鏈夊嚭绔欏崟杩欎釜宸ュ崟杩欎釜浜х嚎
+                    ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HProcExchInterID=" + HInterID + " and HProcExchEntryID=" + HEntryID + " and HSourceID=" + HSourceID + "", "Sc_StationOutBillMain");
+                    LogService.Write(7);
+                    if (ds!=null && ds.Tables[0].Rows.Count == 0)
+                    {
+                        //娌℃湁鍑虹珯鍗曠殑杩涜鍒犻櫎宸ュ簭娴佽浆鍗℃淳宸ュ崟
+                        oCN.RunProc("delete from Sc_ProcExchSendWorkBillMain where HInterID=(select HInterID from Sc_ProcExchSendWorkBillSub where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID + " )");
+                        LogService.Write(8);
+                        oCN.RunProc("delete from Sc_ProcExchSendWorkBillSub where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID);
+                        LogService.Write(9);
+                    }
+                }
+
+                oCN.Commit();
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "宸插彇娑堟淳宸ワ紒";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
 
         #region 鎺掔几鍔熻兘
         [Route("LEMS/ProcessExchangeArrangement_Add")]
@@ -1046,11 +1226,8 @@
         }
         #endregion
 
-        /// <summary>
-        /// 杩斿洖宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ粠琛�
-        ///鍙傛暟锛歴tring sql銆�
-        ///杩斿洖鍊硷細object銆�
-        /// </summary>
+        #region 宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ粠琛�
+
         [Route("LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json")]
         [HttpGet]
         public object MES_Sc_ProcessExchangeBillSub_Json(string sWhere)
@@ -1073,12 +1250,10 @@
                 return objJsonResult;
             }
         }
+        #endregion
 
-        /// <summary>
-        /// 杩斿洖宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ粠琛�
-        ///鍙傛暟锛歴tring sql銆�
-        ///杩斿洖鍊硷細object銆�
-        /// </summary>
+
+        #region 杩斿洖宸ュ簭娴佽浆鍗$淮鎶ゅ垪琛ㄤ粠琛�
         [Route("LEMS/MES_Sc_ProcessExchangeBillQueryCheckRecordSub_Json")]
         [HttpGet]
         public object MES_Sc_ProcessExchangeBillQueryCheckRecordSub_Json(string sWhere, int selected)
@@ -1088,7 +1263,7 @@
             {
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                 string sql = "exec h_p_ProcessExchangeBillCheckRecordList_GetSubBillList " +
-                    "@sWhere = N'" + sWhere + "'" + 
+                    "@sWhere = N'" + sWhere + "'" +
                     ", @selected = N'" + selected + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_ProcessExchangeBillCheckRecordList_GetSubBillList");
                 return GetObjectJson(ds);
@@ -1102,6 +1277,8 @@
                 return objJsonResult;
             }
         }
+        #endregion
+
 
         #region 宸ュ簭娴佽浆鍗★紙涓嬭揪锛�
 

--
Gitblit v1.9.1