From cd1c62ccfd8cf9c582686b6aec02d394a9f4528e Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期日, 29 六月 2025 19:00:15 +0800
Subject: [PATCH] 保存送货单方法外取消事务;生成送货单前校验完善实物回滚;验证采购订单方法添加防死锁;采购订单列表分页查询;物料标准包装模块;

---
 WebAPI/ListModels.cs                         |   13 +
 WebAPI/Controllers/POOrderController.cs      |   61 +++++++
 WebAPI/Controllers/WebAPIController.cs       |   48 ++++++
 WebAPI/DLL/DAL.dll                           |    0 
 WebAPI/Controllers/POInStockController.cs    |  100 ++++++------
 WebAPI/WebAPI.csproj                         |    1 
 WebAPI/Controllers/SupMaterPackController.cs |  240 ++++++++++++++++++++++++++++++
 WebAPI/DLL/Model.dll                         |    0 
 8 files changed, 414 insertions(+), 49 deletions(-)

diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs
index b07f51d..3e2bb42 100644
--- a/WebAPI/Controllers/POInStockController.cs
+++ b/WebAPI/Controllers/POInStockController.cs
@@ -457,7 +457,7 @@
                 //淇濆瓨瀹屾瘯鍚庡鐞�
                 bool bResult;
 
-                oCn.BeginTran(); //寮�濮嬩簨鐗�
+                //oCn.BeginTran(); //寮�濮嬩簨鐗�
 
                 if (HOpType.ToString() == "edit"/*oBill.omodel.HInterID != 0 && oBill.omodel.HInterID.ToString() != null && oBill.omodel.HInterID.ToString() != "undefined"*/)
                 {
@@ -469,7 +469,7 @@
                 }
                 if (bResult)
                 {
-                    oCn.Commit(); //鎻愪氦浜嬬墿
+                    //oCn.Commit(); //鎻愪氦浜嬬墿
 
                     objJsonResult.code = "0";
                     objJsonResult.count = 1;
@@ -480,7 +480,7 @@
                 }
                 else
                 {
-                    oCn.RollBack(); //鍥炴粴浜嬬墿
+                    //oCn.RollBack(); //鍥炴粴浜嬬墿
 
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -491,7 +491,7 @@
             }
             catch (Exception e)
             {
-                oCn.RollBack(); //鍥炴粴浜嬬墿
+                //oCn.RollBack(); //鍥炴粴浜嬬墿
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
@@ -1620,10 +1620,11 @@
         /// <returns></returns>
         public object TestSaverPOInStock(string ids, string entryids)
         {
-            List<string> mylist = new List<string>(ids.Split(','));//.Distinct()
-            List<string> entryList = new List<string>(entryids.Split(','));//.Distinct()
-            //List<string> mylist = new List<string>(ids.Split(',').Distinct());
-            //List<string> entryList = new List<string>(entryids.Split(',').Distinct());
+            //List<string> mylist = new List<string>(ids.Split(','));//.Distinct()
+            //List<string> entryList = new List<string>(entryids.Split(','));//.Distinct()
+
+            List<string> mylist = new List<string>(ids.Split(',').Distinct());
+            List<string> entryList = new List<string>(entryids.Split(',').Distinct());
             SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
             string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
             if (FCusName == "澶忓疂鐢靛櫒" && mylist.Count > 1)
@@ -1644,14 +1645,14 @@
                 if (objJsonResult.code == "0")
                     return objJsonResult;
 
-                if (mylist.Count != entryList.Count)
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
+                //if (mylist.Count != entryList.Count)
+                //{
+                //    objJsonResult.code = "0";
+                //    objJsonResult.count = 0;
+                //    objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
                 for (int i = 0;i < mylist.Count;i++)
                 {
                     //閲囪喘璁㈠崟涓嬫帹鐢熸垚閫佽揣鍗曞墠鎺у埗
@@ -1685,7 +1686,7 @@
 
                 var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName");
 
-                string sql2 = string.Format(@"select T1.hqty - T1.hrelationqty + q.FMRBQTY as hqty, q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺, T1.hrelationqty as 宸插彂璐ф暟閲�, T1.hqty as 璁㈠崟鏁伴噺, 鍗曟嵁鍙�, 鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList t1 left join {0}..T_PUR_POORDERENTRY_R q on q.FENTRYID = t1.HEntryID  where hentryid in ({1})", kdTbaleName, string.Join(", ", entryList));
+                string sql2 = string.Format(@"select T1.hqty - T1.hrelationqty + q.FMRBQTY as hqty, q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺, T1.hrelationqty as 宸插彂璐ф暟閲�, T1.hqty as 璁㈠崟鏁伴噺, 鍗曟嵁鍙�, 鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList_JY t1 left join {0}.T_PUR_POORDERENTRY_R q with(nolock) on q.FENTRYID = t1.HEntryID  where hentryid in ({1})", kdTbaleName, string.Join(", ", entryList));
 
                 DataSet ds = oCn.RunProcReturn(sql2, "H_v_SRM_POOrderBillList");
 
@@ -1695,6 +1696,7 @@
                     DataRow[] dr = dt.Select("hqty  <=" + 0);
                     if (dr.Count() > 0)
                     {
+                        oCn.RollBack();//鍥炴粴浜嬪姟
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
                         objJsonResult.Message = $"璇锋鏌ユ暟鎹紝鍗曟嵁鍙凤細{dr[0]["鍗曟嵁鍙�"]},鐗╂枡缂栫爜锛歿dr[0]["鐗╂枡缂栫爜"]},鍙互鍙戣揣鏁伴噺涓�0锛屽凡鍏ㄩ儴鐢熸垚閫佽揣鍗曪紒,璁㈠崟鏁伴噺锛歿Convert.ToDouble(dr[0]["璁㈠崟鏁伴噺"]).ToString("f2")},宸插彂璐ф暟閲忥細{Convert.ToDouble(dr[0]["宸插彂璐ф暟閲�"]).ToString("f2")},鍓╀綑鏀舵枡鏁伴噺锛歿Convert.ToDouble(dr[0]["鍓╀綑鏀舵枡鏁伴噺"]).ToString("f2")}";
@@ -1740,10 +1742,10 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName 
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    LEFT JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    FROM Cg_POOrderBillSub B with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    LEFT JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
                     WHERE ISNULL(C.FENTRYID,0) = 0
                     AND B.HEntryID in ({0})"
                             , entryids, kdTbaleName);
@@ -1752,10 +1754,10 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName 
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    LEFT JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    FROM Cg_POOrderBillSub B with(nolock) 
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    LEFT JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
                     WHERE ISNULL(C.FENTRYID,0) = 0
                     AND B.HEntryID in ({0})"
                             , entryids, kdTbaleName);
@@ -1777,12 +1779,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}.T_PUR_POCHANGEENTRY D ON C.FENTRYID = D.FOFENTRYID
-                    LEFT join {1}.T_PUR_POCHANGE F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}.T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID
+                    LEFT join {1}.T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID   
                     where b.HEntryID in ({0}) 
                     and F.FDOCUMENTSTATUS <> 'C'"
                             , entryids, kdTbaleName);
@@ -1791,12 +1793,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}..T_PUR_POCHANGEENTRY D ON C.FENTRYID = D.FOFENTRYID
-                    LEFT join {1}..T_PUR_POCHANGE F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B with(nolock) 
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}..T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID
+                    LEFT join {1}..T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID   
                     where b.HEntryID in ({0}) 
                     and F.FDOCUMENTSTATUS <> 'C'"
                             , entryids, kdTbaleName);
@@ -1818,12 +1820,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}.T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}.t_PUR_XPOOrderENTRY D ON C.FENTRYID = D.FPKIDX
-                    LEFT join {1}.t_PUR_XPOOrder F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B  with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}.t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX
+                    LEFT join {1}.t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID   
                     where F.FDOCUMENTSTATUS <> 'C' and  b.HEntryID in ({0}) "
                            , entryids, kdTbaleName);
                 }
@@ -1831,12 +1833,12 @@
                 {
                     sql = string.Format(@"
                     select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO
-                    FROM Cg_POOrderBillSub B  
-                    JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID
-                    JOIN Gy_Material E ON B.HMaterID = E.HItemID
-                    JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
-                    LEFT join {1}..t_PUR_XPOOrderENTRY D ON C.FENTRYID = D.FPKIDX
-                    LEFT join {1}..t_PUR_XPOOrder F ON D.FID = F.FID   
+                    FROM Cg_POOrderBillSub B  with(nolock)
+                    JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID
+                    JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID
+                    JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID
+                    LEFT join {1}..t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX
+                    LEFT join {1}..t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID   
                     where F.FDOCUMENTSTATUS <> 'C' and  b.HEntryID in ({0}) "
                            , entryids, kdTbaleName);
                 }
diff --git a/WebAPI/Controllers/POOrderController.cs b/WebAPI/Controllers/POOrderController.cs
index ca16749..dc131e7 100644
--- a/WebAPI/Controllers/POOrderController.cs
+++ b/WebAPI/Controllers/POOrderController.cs
@@ -86,6 +86,67 @@
             }
 
         }
+
+        #region
+
+        [Route("GetPOOrderBillList_byPage")]
+        [HttpPost]
+        //閲囪喘璁㈠崟鍒楄〃
+        public object GetPOOrderBillList_byPage([FromBody] JObject msg)
+        {
+            string HSupIDs = msg["HSupIDs"].ToString(); 
+            string sqlWhere = msg["sqlWhere"].ToString();
+            string page = msg["page"].ToString();
+            string size = msg["size"].ToString();
+            string Organization = msg["Organization"].ToString();
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                DataSet ds;
+                string sql = " Where hsupid in (" + HSupIDs.Trim() + ")" + sqlWhere;
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(sql, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "杞崲鐗规畩瀛楃澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+
+                sql = "exec h_p_SRM_POOrderBillListByPage " + page + "," + size + ",'" + Organization + "','" + PcWhere + "'";
+
+                ds = oCn.RunProcReturn(sql, "h_p_SRM_POOrderBillListByPage");
+                //娣诲姞鍒楀悕
+                List<object> columnNameList = new List<object>();
+                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鍒楀璞$殑鍒楀悕
+                }
+                objjson.code = "1";
+                objjson.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                objjson.Message = "鑾峰彇鎴愬姛";
+                objjson.data = ds.Tables[0];
+                objjson.list = columnNameList;
+                return objjson;
+
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        #endregion
+
         /// <summary>
         /// 閲囪喘璁㈠崟琛ㄥご淇℃伅
         /// </summary>
diff --git a/WebAPI/Controllers/SupMaterPackController.cs b/WebAPI/Controllers/SupMaterPackController.cs
new file mode 100644
index 0000000..a693748
--- /dev/null
+++ b/WebAPI/Controllers/SupMaterPackController.cs
@@ -0,0 +1,240 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    public class SupMaterPackController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+        DataSet ds;
+        //鑾峰彇绯荤粺鍙傛暟
+        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+
+        #region 鐗╂枡鏍囧噯鍖呰
+        [Route("SupMaterPackBill/List")]
+        [HttpGet]
+        public object List(string HSupIDs, string sqlWhere)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                string sql1 = "select * from h_v_SRM_SupMaterPackList where 1 = 1 and hsupid in ( " + HSupIDs.Trim() + ")";
+                string sql = sql1 + sqlWhere + " order by hmainid desc";
+                ds = oCn.RunProcReturn(sql, "h_v_SRM_SupMaterPackList");
+
+                //娣诲姞鍒楀悕
+                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.list = columnNameList;
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 淇濆瓨鏈�灏忓寘瑁�
+        [Route("SupMaterPackBill/Save")]
+        [HttpPost]
+        public object Save([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 msg4 = sArray[2].ToString();
+
+
+            string UserName = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                DAL.ClsSupMaterPackBill oBill = new DAL.ClsSupMaterPackBill();
+                List<Model.ClsSupMaterPackBillMain> lsmain = new List<Model.ClsSupMaterPackBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_ClsSupMaterPackBillMain(msg2);
+                foreach (Model.ClsSupMaterPackBillMain oItem in lsmain)
+                {
+                    //oItem.HMaker = "";
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "10001";
+                    oItem.HBillSubType = "10001";
+                    oItem.HBillStatus = 1;
+                    DBUtility.ClsPub.CurUserName = UserName;
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oBill.omodel = oItem;
+                }
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsSupMaterPackBillSub> ls = new List<Model.ClsSupMaterPackBillSub>();
+                ls = oListModels.getObjectByJson_ClsSupMaterPackBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsSupMaterPackBillSub oItemSub in ls)
+                {
+
+                    i++;
+                    oItemSub.HEntryID = i;
+
+                    oBill.DetailColl.Add(oItemSub);
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (Convert.ToInt32(msg4) == 1)
+                {
+                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                if (bResult)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鏍囧噯鍖呰缂栬緫鑾峰彇鏁版嵁
+        [Route("SupMaterPackBill/edit")]
+        [HttpGet]
+        public object SupMaterPackBill_Edit(long HInterID)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet ds;
+                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+
+                ds = oCn.RunProcReturn("select * from h_v_SRM_SupMaterPack_Edit where hmainid =" + HInterID, "h_v_SRM_SupMaterPack_Edit");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "false锛佹病鏈夎繑鍥炲寘瑁呭寘瑁呬俊鎭�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鑾峰彇鏍囧噯鍖呰淇℃伅寮傚父" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        [Route("SupMaterPackBill/delete")]
+        [HttpGet]
+        public object DeleteSupMaterPackBill(string HInterID, string HUserName)
+        {
+            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            try
+            {
+                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                if (objjson.code == "0")
+                    return objjson;
+
+                oCN.BeginTran();
+
+                oCN.RunProc($"Delete From SRM_SupMaterPackSub where cast(HMaterID as varchar(200))+cast(HInterID as varchar(200))+cast(HEntryID as varchar(200)) in ({HInterID})");
+
+                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 = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+    }
+}
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index a47aac9..9eb400c 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -1005,6 +1005,54 @@
             }
         }
 
+        /// <summary>
+        /// 鑾峰彇鍗曟嵁ID,缂栧彿
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("Web/GetMAXNum_New")]
+        [HttpGet]
+        public object GetMAXNum_New(string HBillType)
+        {
+            try
+            {
+                Int64 HInterID = 0;//鏄剧ず鐨勫瓧娈�
+                HInterID = CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                //----------鍒涘缓铏氳〃------------------------
+                DataTable dt_Main = new DataTable("Json");
+                dt_Main.Columns.Add("HInterID", typeof(int));
+                //---------鍒涘缓鏂拌------------------------
+                DataRow dr_main = dt_Main.NewRow();//鍒涘缓鏂拌 
+                dt_Main.Rows.Add(dr_main);//灏嗘柊琛屽姞鍏ュ埌琛ㄤ腑
+                dr_main["HInterID"] = DBUtility.ClsPub.isLong(HInterID);
+
+                if (HInterID == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = dt_Main;
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
         //寰楀埌鏈�澶INTERID
         public static Int64 CreateBillID(string BillCode, ref string sReturn)
         {
diff --git a/WebAPI/DLL/DAL.dll b/WebAPI/DLL/DAL.dll
index 8ce6e48..6930345 100644
--- a/WebAPI/DLL/DAL.dll
+++ b/WebAPI/DLL/DAL.dll
Binary files differ
diff --git a/WebAPI/DLL/Model.dll b/WebAPI/DLL/Model.dll
index 8009133..505035f 100644
--- a/WebAPI/DLL/Model.dll
+++ b/WebAPI/DLL/Model.dll
Binary files differ
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index 7d84437..34a10f7 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -106,5 +106,18 @@
             return list;
         }
 
+        public List<Model.ClsSupMaterPackBillMain> getObjectByJson_ClsSupMaterPackBillMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsSupMaterPackBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSupMaterPackBillMain>>(jsonString);
+            return list;
+        }
+        public List<Model.ClsSupMaterPackBillSub> getObjectByJson_ClsSupMaterPackBillSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsSupMaterPackBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSupMaterPackBillSub>>(jsonString);
+            return list;
+        }
+
     }
 }
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 5aa8a01..99907d7 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -227,6 +227,7 @@
     <Compile Include="Controllers\POOrderController.cs" />
     <Compile Include="Controllers\PublicPageMethodController.cs" />
     <Compile Include="Controllers\ReportController.cs" />
+    <Compile Include="Controllers\SupMaterPackController.cs" />
     <Compile Include="Controllers\Xt_grdAlignment_WMESController.cs" />
     <Compile Include="DLL\ClsCg_POInStockBills.cs" />
     <Compile Include="HttpClient.cs" />

--
Gitblit v1.9.1