From 0910a653b936af52e97633c70f6d6dee3f3f5a2b Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期二, 21 十月 2025 16:55:55 +0800
Subject: [PATCH] 1

---
 WebAPI/Controllers/仓存管理/委外用料/WW_PPBomBillController.cs |  164 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 147 insertions(+), 17 deletions(-)

diff --git "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\345\247\224\345\244\226\347\224\250\346\226\231/WW_PPBomBillController.cs" "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\345\247\224\345\244\226\347\224\250\346\226\231/WW_PPBomBillController.cs"
index d10b1d1..aa432bb 100644
--- "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\345\247\224\345\244\226\347\224\250\346\226\231/WW_PPBomBillController.cs"
+++ "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\345\247\224\345\244\226\347\224\250\346\226\231/WW_PPBomBillController.cs"
@@ -1,4 +1,6 @@
-锘縰sing System;
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
@@ -26,6 +28,7 @@
         {
             try
             {
+                List<object> columnNameList = new List<object>();  //瀹氫箟澹版槑鍙橀噺 锛屾妸閫氳繃 new List<object>()鍒涘缓鐨� 瀹炰緥锛岃祴鍊肩粰鍙橀噺
                 //鍒ゆ柇鏄惁鏈夋煡璇㈡潈闄�
                 if (!DBUtility.ClsPub.Security_Log("WW_PPBomBill_Query", 1, false, user))
                 {
@@ -38,22 +41,30 @@
 
                 ds = WW_PPBomBillList(sWhere);
 
-                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
-                //{
-                objJsonResult.code = "1";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "Sucess锛�";
-                objJsonResult.data = ds.Tables[0];
-                return objJsonResult;
-                //}
-                //else
-                //{
-                //objJsonResult.code = "0";
-                //objJsonResult.count = 0;
-                //objJsonResult.Message = "鏃犳暟鎹�";
-                //objJsonResult.data = null;
-                //return objJsonResult;
-                //}
+            
+                if (ds.Tables[0].Rows.Count != 0 || ds != null)
+                {
+                    foreach (DataColumn col in ds.Tables[0].Columns)//閬嶅巻ds涓涓�涓〃锛圱ables[0]锛夌殑鎵�鏈夊垪锛圕olumns锛夋瘡娆″惊鐜腑锛宑ol鍙橀噺浼氭寔鏈夊綋鍓嶅垪鐨勫紩鐢�
+                    {
+                        Type dataType = col.DataType; //鑾峰彇褰撳墠鏁版嵁绫诲瀷浼犲叆 鑷畾涔夊彉閲廳atadataType
+                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //瀛楃涓叉嫾鎺�         // 灏嗗垪鍚嶅拰鏁版嵁绫诲瀷淇℃伅鎷兼帴鎴愪竴涓狫SON鏍煎紡鐨勫瓧绗︿覆
+                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                    }
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];//浠g爜灏嗙涓�涓狣ataTable锛堢储寮曚负0锛夎祴鍊肩粰objJsonResult鐨刣ata灞炴��
+                    objJsonResult.list = columnNameList;//灏哻olumnNameList璧嬪�肩粰objJsonResult鐨刲ist灞炴��
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳暟鎹�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
             }
             catch (Exception ex)
             {
@@ -77,8 +88,127 @@
                 string sql = sql1 + sWhere + " order by hmainid desc";
                 return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_WW_PPBomBillList");
             }
+
         }
 
+
+
+        #region 濮斿鐢ㄦ枡娓呭崟璁㈠崟 閲戣澏鍚屾
+        [Route("WW_PPBomBillController/SaveWW_PPBomBillApi")]
+        [HttpPost]
+        public object SaveWW_PPBomBillApi([FromBody] JObject sMainSub)
+        {
+            LogService.Write("寮�濮嬪悓姝�");
+            try
+            {
+                LogService.Write($"鎺ユ敹鍒扮殑瀹屾暣鏁版嵁: {sMainSub.ToString()}");
+                var model = sMainSub["model"].ToString();
+                var entry = sMainSub["model"]["HENTRY"].ToString();
+                model = "[" + model.ToString() + "]";
+                LogService.Write($"涓昏〃妯″瀷JSON: {model}");
+                LogService.Write($"瀛愯〃妯″瀷JSON: {entry}");
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                ListModels oListModels = new ListModels();
+                List<ClsWW_PPBomBill> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsWW_PPBomBill>>(model);
+                List<ClsWW_PPBomBillSubERP> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsWW_PPBomBillSubERP>>(entry);
+                // 娣诲姞绫诲瀷妫�鏌ユ棩蹇�
+                LogService.Write($"涓昏〃HInterID绫诲瀷: {mainList[0].HInterID.GetType()}");
+                LogService.Write($"涓昏〃HInterID鍊�: {mainList[0].HInterID}");
+                string sql = string.Empty;
+                LogService.Write($"涓绘ā鍨嬫暟鎹畕mainList}");
+                LogService.Write($"瀛愭ā鍨嬫暟鎹畕subList}");
+                //淇濆瓨
+                oCN.BeginTran();
+                int hInterID = mainList[0].HInterID;
+                LogService.Write($"寮�濮嬪鐞� HInterID: {hInterID}");
+              
+                string checkSql = $"SELECT COUNT(1) FROM WW_PPBomBillSub WHERE HInterID = {hInterID}";
+                LogService.Write($"妫�鏌ュ瓙琛ㄦ暟鎹槸鍚﹀瓨鍦�: {checkSql}");
+
+                // 2. 鍒犻櫎瀛愯〃鏁版嵁
+                string deleteSubSql = $"DELETE FROM WW_PPBomBillSub WHERE HInterID = {hInterID}";
+                LogService.Write($"鍒犻櫎瀛愯〃SQL: {deleteSubSql}");
+                oCN.RunProc(deleteSubSql, ref DBUtility.ClsPub.sExeReturnInfo);
+                LogService.Write("瀛愯〃鏁版嵁鍒犻櫎瀹屾垚");
+
+                // 3. 鍒犻櫎涓昏〃鏁版嵁
+                string deleteMainSql = $"DELETE FROM WW_PPBomBillMain WHERE HInterID = {hInterID}";
+                LogService.Write($"鍒犻櫎涓昏〃SQL: {deleteMainSql}");
+                oCN.RunProc(deleteMainSql, ref DBUtility.ClsPub.sExeReturnInfo);
+                LogService.Write("涓昏〃鏁版嵁鍒犻櫎瀹屾垚");
+               
+
+                oCN.RunProc($@"insert into WW_PPBomBillMain
+	            (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
+	            ,HBillNo,HBillStatus,HICMOInterID,HICMOEntryID,HSUBBILLNO,HSUBREQENTRYSEQ
+	            ,HMaterID,HUnitID,HQty,HSupID,HDEPTID,HPOOrderBillNo,HPOOrderSeq
+	            ,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate
+	            ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HSeOrderSEQ
+	            ,HPRDORGID,HENTRUSTORGID,HPARENTOWNERID,HPARENTOWNERTYPEID
+	            ,HERPInterID,HERPBillType,HSETTLEORGID,HREQSRC)
+                  values({mainList[0].HInterID},'{mainList[0].HYear}','{mainList[0].HPeriod}','{mainList[0].HBillType}','{mainList[0].HBillSubType}','{mainList[0].HDate}','{mainList[0].HBillNo}'
+           ,'{mainList[0].HBillStatus}','{mainList[0].HICMOInterID}','{mainList[0].HICMOEntryID}','{mainList[0].HSUBBILLNO}','{mainList[0].HSUBREQENTRYSEQ}','{mainList[0].HMaterID}',{mainList[0].HUnitID},'{mainList[0].HQty}','{mainList[0].HSupID}','{mainList[0].HDeptID}',
+            '{mainList[0].HPOOrderBillNo}','{mainList[0].HPOOrderSeq}','{mainList[0].HMaker}','{mainList[0].HMakeDate}','{mainList[0].HChecker}','{mainList[0].HCheckDate}','{mainList[0].HUpDater}','{mainList[0].HUpDateDate}','{mainList[0].HSeOrderBillNo}','{mainList[0].HSeOrderInterID}','{mainList[0].HSeOrderEntryID}','{mainList[0].HSeOrderSEQ}'
+            ,'{mainList[0].HPRDORGID}','{mainList[0].HENTRUSTORGID}','{mainList[0].HPARENTOWNERID}'
+            ,'{mainList[0].HPARENTOWNERTYPEID}','{mainList[0].HERPInterID}','{mainList[0].HERPBillType}','{mainList[0].HSETTLEORGID}','{mainList[0].HREQSRC}'
+             
+)", ref DBUtility.ClsPub.sExeReturnInfo);
+                LogService.Write("涓昏〃鎻掑叆鎴愬姛");
+
+                foreach (var oSub in subList)
+                {
+                    var count = subList.Count();
+                    LogService.Write($"瀛愯〃鏁版嵁鏉℃暟涓簕count}");
+                    //鏂板瀛愯〃锛�
+                    oCN.RunProc($@"	insert into WW_PPBomBillSub
+	                (HInterID,HEntryID,HMaterID,HUnitID,HQty,HQtyMust,HWHID,HRemark
+	                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
+	                ,HICMOInterID,HICMOEntryID,HICMOBillNo
+	                ,HCHILDSUPPLYORGID,HSUPPLYORGID,HENTRUSTPICKORGID,HSRCTRANSORGID,HGROUPBYOWNERID,HOWNERID,HOWNERTYPEID
+	                ,HRelationQty,HMoveStockQty,HAuxPropID,HBatchNO,HMTONo,HQtyScrap,HERPInterID,HERPEntryID
+	                ,HBackRelationQty
+	                ,HPROCESSID,HBASEUNITID,HPROJECTNO,HOPERID,HSEQ
+	                ,HSTOCKSTATUSID,HRESERVETYPE
+	                )
+                      values({oSub.HInterID},'{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}',{oSub.HQtyMust},'{oSub.HWHID}',
+                        '{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}',{oSub.HICMOInterID },'{oSub.HICMOEntryID}','{oSub.HICMOBillNo}','{oSub.HCHILDSUPPLYORGID}','{oSub.HSUPPLYORGID}'
+                        ,'{oSub.HENTRUSTPICKORGID}','{oSub.HSRCTRANSORGID}','{oSub.HGROUPBYOWNERID}','{oSub.HOWNERID}','{oSub.HOWNERTYPEID}','{oSub.HRelationQty}','{oSub.HMoveStockQty}','{oSub.HAuxPropID}','{oSub.HBatChNo}','{oSub.HMTONo}','{oSub.HQtyScrap}',
+                        {oSub.HERPInterID},'{oSub.HERPEntryID}','{oSub.HBackRelationQty}','{oSub.HPROCESSID}',{oSub.HBASEUNITID },'{oSub.HPROJECTNO}','{oSub.HOPERID}','{oSub.HSEQ}','{oSub.HSTOCKSTATUSID}','{oSub.HRESERVETYPE}'
+                        )", ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                LogService.Write("瀛愯〃鎻掑叆鎴愬姛");
+
+
+
+
+
+                oCN.Commit();
+
+
+
+
+
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                LogService.Write("寮傚父淇℃伅锛�" + e.ToString());
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
         #endregion
+
     }
+
+    #endregion
 }
+

--
Gitblit v1.9.1