From faea7d8e2bf3222bb89b3b31039cdb274e8040c6 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 24 九月 2025 16:56:17 +0800
Subject: [PATCH] 新增 来料检验单 出厂检验单  产品入库检验单 Modal DAL Controller

---
 WebAPI/Controllers/QC_POStockInCheckBillController.cs |  727 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 680 insertions(+), 47 deletions(-)

diff --git a/WebAPI/Controllers/QC_POStockInCheckBillController.cs b/WebAPI/Controllers/QC_POStockInCheckBillController.cs
index a3f9caf..c549c37 100644
--- a/WebAPI/Controllers/QC_POStockInCheckBillController.cs
+++ b/WebAPI/Controllers/QC_POStockInCheckBillController.cs
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json.Linq;
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using Pub_Class;
 using System;
 using System.Collections;
@@ -19,26 +20,622 @@
         public DataSet ds = new DataSet();
         public WebServer webserver = new WebServer();
         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        public DAL.ClsQC_POStockInCheckBill BillOld = new DAL.ClsQC_POStockInCheckBill();
+
         //DataSet ds;
 
 
+
+        #region 妫�楠屽�间繚瀛�
+        [Route("QC_POStockInCheckBill/set_SaveValue")]
+        [HttpPost]
+        public object set_SaveValue([FromBody] JObject msg)
+        {
+            ListModels oListModels = new ListModels();
+            try
+            {
+                var _value = msg["msg"].ToString();
+                string msg1 = _value.ToString();
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+
+                string Value = sArray[0].ToString(); //妫�楠屽�艰〃鏍�
+                Int64 HInterID = Convert.ToInt64(sArray[1]); //涓籌D
+                Int64 HEntryID = Convert.ToInt64(sArray[2]); //瀛怚D
+                bool bResult;
+
+
+                List<Model.ClsQC_POStockInCheckBillSub_ValueGrid> valueList = new List<Model.ClsQC_POStockInCheckBillSub_ValueGrid>();
+                valueList = oListModels.getObjectByJson_ClsQC_POStockInCheckBillSub_ValueGrid(Value);
+
+                DAL.ClsQC_POStockInCheckBill BillNew = new DAL.ClsQC_POStockInCheckBill();
+
+                for (int i = 0; i < valueList.ToArray().Length; i++)
+                {
+                    if (i >= 0)//HQty
+                    {
+                        Model.ClsQC_POStockInCheckBillSub_ValueGrid oSub_Value = new Model.ClsQC_POStockInCheckBillSub_ValueGrid();
+                        oSub_Value.HInterID = HInterID;
+                        oSub_Value.HEntryID = HEntryID;
+                        oSub_Value.HSEQ = i + 1;
+                        oSub_Value.HInSpectResult = ClsPub.isStrNull(valueList[i].HInSpectResult);
+                        oSub_Value.HInSpectValue = ClsPub.isDoule(valueList[i].HInSpectValue);
+                        oSub_Value.HInSpectValueB = ClsPub.isLong(valueList[i].HInSpectValueB);
+                        oSub_Value.HInSpectValueT = ClsPub.isStrNull(valueList[i].HInSpectValueT);
+
+                        BillNew.DetailColl_Value.Add(oSub_Value);
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏃犳槑缁嗚淇℃伅!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+
+                bResult = BillNew.AddValue(ref ClsPub.sExeReturnInfo, ref HInterID, ref HEntryID);
+
+                if (bResult == true)
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨妫�楠屽�兼垚鍔�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                    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 [杩斿洖妫�楠屽�煎垪琛╙
         /// <summary>
-        /// 杩斿洖鍒楄〃
-        ///鍙傛暟锛歴tring sql銆�
-        ///杩斿洖鍊硷細object銆�
+        ///杩斿洖妫�楠屽�煎垪琛�
         /// </summary>
-       [Route("QC_POStockInCheckBill/GetPOStockInCheckBill")]
+        /// <param name="sWhere"></param>
+        /// <returns></returns>
+        [Route("QC_POStockInCheckBill_ValueTable/getValueList")]
         [HttpGet]
-        public object GetPOStockInCheckBill(string sWhere)
+        public object getValueList(Int64 HInterID, Int64 HEntryID, string user)
+        {
+            DataSet ds;
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                List<object> columnNameList = new List<object>();
+
+                ds = oCN.RunProcReturn("select * from QC_POStockInCheckBillSub_ValueGrid  where  HInterID=" + HInterID + " and HEntryID=" + HEntryID, "QC_POStockInCheckBillSub_ValueGrid");
+
+                //娣诲姞鍒楀悕
+                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鍒楀璞$殑鍒楀悕
+                }
+
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    objJsonResult.list = columnNameList;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳娴嬪�兼暟鎹紒";
+                    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
+        
+        #region [杩斿洖 缂栬緫鏃� 妫�楠屽�� 鍒楄〃]
+        [Route("QC_POStockInCheckBill/QC_POStockInCheckBill_Edit")]
+        [HttpGet]
+        public object QC_POStockInCheckBill_Edit(string sWhere, string user)
         {
             try
             {
+                List<object> columnNameList = new List<object>();
+
+                string sql1 = "select * from h_v_QC_POStockInCheckBill_Edit where 1 = 1  ";
+                string sql = sql1 + sWhere + " order by hmainid desc";
+                ds = oCN.RunProcReturn(sql, "h_v_QC_POStockInCheckBill_Edit");
+
+                //娣诲姞鍒楀悕
+                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鍒楀璞$殑鍒楀悕
+                }
+
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.list = columnNameList;
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "娌℃湁鏌ヨ鍒版暟鎹�";
+                    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 鏉ユ枡妫�楠屽崟缁存姢 瀹℃牳 鍙嶅鏍� 鍏抽棴 鍙嶅叧闂� 浣滃簾 鍙嶄綔搴�
+        /// <summary>
+        /// 鏉ユ枡妫�楠屽崟缁存姢 瀹℃牳銆佸弽瀹℃牳
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
+        /// <param name="CurUserName">瀹℃牳浜�</param>
+        /// <returns></returns>
+        [Route("QC_POStockInCheck_ValueTable/QC_POStockInCheckValue")]
+        [HttpGet]
+        public object QC_POStockInCheckValue(int HInterID, int IsAudit, string CurUserName)
+        {
+            try
+            {
+                //瀹℃牳鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("QC_POStockInCheckBill_Check", 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                var ds = oCN.RunProcReturn("select * from QC_POStockInCheckBillMain where HInterID=" + HInterID, "QC_POStockInCheckBillMain");
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    if (IsAudit == 0)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶉渶瑕佸弽瀹℃牳!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                if (IsAudit == 0)  //瀹℃牳鍒ゆ柇
+                {
+                    //瀹℃牳鍓嶆帶鍒�
+                    DataSet BeforeDs = oCN.RunProcReturn("Exec h_p_QC_POStockInCheckBill_BeforeCheckCtrl  " + HInterID.ToString() + ",'" + CurUserName + "'", "h_p_QC_POStockInCheck_BeforeCheckCtrl");
+                    if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳鍓嶅垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "瀹℃牳澶辫触锛�" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]);
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    oCN.RunProc("update QC_POStockInCheckBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate() where HInterID=" + HInterID);
+
+                    //瀹℃牳鍚庢帶鍒�
+                    DataSet EndDs = oCN.RunProcReturn("Exec h_p_QC_POStockInCheckBill_AfterCheckCtrl  " + HInterID.ToString() + ",'"+ ds.Tables[0].Rows[0]["HBillNo"].ToString() + "','" + CurUserName + "'", "h_p_QC_POStockInCheck_AfterCheckCtrl");
+                    if (EndDs == null || EndDs.Tables.Count == 0 || EndDs.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳鍚庡垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(EndDs.Tables[0].Rows[0]["HBack"]) == 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "瀹℃牳澶辫触锛�" + DBUtility.ClsPub.isStrNull(EndDs.Tables[0].Rows[0]["HRemark"]);
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳鎴愬姛";
+                    objJsonResult.data = null;
+                }
+                if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+                {
+                    //鍙嶅鏍稿墠鎺у埗
+                    DataSet BeforeDs = oCN.RunProcReturn("Exec h_p_QC_POStockInCheck_BeforeUnCheckCtrl " + HInterID.ToString() + ",'" + CurUserName + "'", "h_p_QC_POStockInCheck_BeforeUnCheckCtrl");
+                    if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿墠鍒ゆ柇澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍙嶅鏍稿け璐ワ紒" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]);
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    oCN.RunProc("update QC_POStockInCheckMain set HChecker='',HCheckDate=null where HInterID=" + HInterID);
+
+                    //鍙嶅鏍稿悗鎺у埗
+                    DataSet EndDs = oCN.RunProcReturn("Exec  h_p_QC_POStockInCheck_AfterUnCheckCtrl  " + HInterID.ToString() + ",'" + ds.Tables[0].Rows[0]["HBillNo"].ToString() + "','" + CurUserName + "'", " h_p_QC_POStockInCheck_AfterUnCheckCtrl");
+                    if (EndDs == null || EndDs.Tables.Count == 0 || EndDs.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿悗鍒ゆ柇澶辫触锛�";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(EndDs.Tables[0].Rows[0]["HBack"]) == 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍙嶅鏍稿け璐ワ紒" + DBUtility.ClsPub.isStrNull(EndDs.Tables[0].Rows[0]["HRemark"]);
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                    objJsonResult.data = null;
+                }
+                oCN.Commit();
+
+                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("QC_POStockInCheckBill/set_SaveBill")]
+        [HttpPost]
+        public object set_SaveBill([FromBody] JObject sMainSub)
+        {
+            var _value = sMainSub["sMainSub"].ToString();
+            string msg1 = _value.ToString();
+            //淇濆瓨鍗曟嵁
+            return objJsonResult = AddBillMain(msg1);
+        }
+
+        public json AddBillMain(string msg1)
+        {
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string msg3 = sArray[1].ToString();
+            string OperationType = sArray[2].ToString().Trim();
+            string user = sArray[3].ToString();
+            string Value = sArray[4].ToString();
+            bool bResult;
+            try
+            {
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_POStockInCheckBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                msg2 = "[" + msg2.ToString() + "]";
+                List<Model.ClsQC_POStockInCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_POStockInCheckBillMain>>(msg2);
+                DAL.ClsQC_POStockInCheckBill BillNew = new DAL.ClsQC_POStockInCheckBill();
+
+
+
+                //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
+                string s = "";
+                int sYear = 0;
+                int sPeriod = 0;
+                DateTime HDate = mainList[0].HDate;//鏃ユ湡
+                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = s;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                BillNew.omodel.HYear = sYear;
+                BillNew.omodel.HPeriod = sPeriod;
+                //鍥哄畾璧嬪��=================================
+                BillNew.omodel.HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+                BillNew.omodel.HBillNo = mainList[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
+                BillNew.omodel.HDate = HDate;
+                BillNew.omodel.HRemark = mainList[0].HRemark;//澶囨敞
+                BillNew.omodel.HMaker = mainList[0].HMaker;
+                BillNew.omodel.HSourceID = ClsPub.isLong(mainList[0].HSourceID);
+                BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
+                BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
+                BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
+                BillNew.omodel.HICMOQty = ClsPub.isLong(mainList[0].HICMOQty);
+                BillNew.omodel.HProcExchInterID = ClsPub.isLong(mainList[0].HProcExchInterID);
+                BillNew.omodel.HProcExchEntryID = ClsPub.isLong(mainList[0].HProcExchEntryID);
+                BillNew.omodel.HProcExchBillNo = ClsPub.isStrNull(mainList[0].HProcExchBillNo);
+                BillNew.omodel.HProcExchQty = ClsPub.isLong(mainList[0].HProcExchQty);
+                BillNew.omodel.HProcID = ClsPub.isLong(mainList[0].HProcID);
+                BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
+                BillNew.omodel.HFirstCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp);
+                BillNew.omodel.HLastResult = ClsPub.isBool(mainList[0].HLastResult);
+                BillNew.omodel.HMainSourceInterID = ClsPub.isLong(mainList[0].HMainSourceInterID);
+                BillNew.omodel.HMainSourceEntryID = ClsPub.isLong(mainList[0].HMainSourceEntryID);
+                BillNew.omodel.HMainSourceBillNo = ClsPub.isStrNull(mainList[0].HMainSourceBillNo);
+                BillNew.omodel.HMainSourceBillType = ClsPub.isStrNull(mainList[0].HMainSourceBillType);
+                BillNew.omodel.HQCSchemeID = ClsPub.isLong(mainList[0].HQCSchemeID);
+                BillNew.omodel.HBillStatus = 1;
+                BillNew.omodel.HShiftsID = ClsPub.isLong(mainList[0].HShiftsID);
+                BillNew.omodel.HErrTreatment = ClsPub.isStrNull(mainList[0].HErrTreatment);
+                BillNew.omodel.HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
+                BillNew.omodel.HTakeSampleCheckBillID = ClsPub.isLong(mainList[0].HTakeSampleCheckBillID);
+                BillNew.omodel.HTakeSampleCheckBillNo = ClsPub.isStrNull(mainList[0].HTakeSampleCheckBillNo);
+                
+                List<Model.ClsQC_POStockInCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_POStockInCheckBillSub>>(msg3);
+                BillNew.DetailColl = new List<Model.ClsQC_POStockInCheckBillSub>();
+
+                for (int i = 0; i < subList.ToArray().Length; i++)
+                {
+                    if (i >= 0)//HQty
+                    {
+                        Model.ClsQC_POStockInCheckBillSub oSub = new Model.ClsQC_POStockInCheckBillSub();
+                        oSub.HEntryID = i + 1;
+                        oSub.HRemark = ClsPub.isStrNull(subList[i].HRemark);
+                        oSub.HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID);
+                        oSub.HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID);
+                        oSub.HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType);
+                        oSub.HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo);
+                        oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
+                        oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
+                        oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
+                        oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
+                        oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
+                        oSub.HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID);
+                        oSub.HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd);
+                        oSub.HUnit = DBUtility.ClsPub.isStrNull(subList[i].HUnit);
+                        oSub.HQCNote = DBUtility.ClsPub.isStrNull(subList[i].HQCNote);
+                        oSub.HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+                        oSub.HMax = DBUtility.ClsPub.isStrNull(subList[i].HMax);
+                        oSub.HMin = DBUtility.ClsPub.isStrNull(subList[i].HMin);
+                        oSub.HAvg = DBUtility.ClsPub.isStrNull(subList[i].HAvg);
+                        oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(mainList[0].HBillNo);
+
+                        oSub.HSampleSchemeID = DBUtility.ClsPub.isLong(subList[i].HSampleSchemeID);
+                        oSub.HSampleQty = DBUtility.ClsPub.isLong(subList[i].HSampleQty);
+                        oSub.HSampleDamageQty = DBUtility.ClsPub.isDoule(subList[i].HSampleDamageQty);
+                        oSub.HAcceptQty = DBUtility.ClsPub.isLong(subList[i].HAcceptQty);
+                        oSub.HRejectQty = DBUtility.ClsPub.isLong(subList[i].HRejectQty);
+                        oSub.HSampleUnRightQty = DBUtility.ClsPub.isDoule(subList[i].HSampleUnRightQty);
+                        oSub.HStatus = DBUtility.ClsPub.isStrNull(subList[i].HStatus);
+                        oSub.HUnitID = DBUtility.ClsPub.isLong(subList[i].HUnitID);
+                        oSub.HInspectVal = DBUtility.ClsPub.isStrNull(subList[i].HInspectVal);
+                        oSub.HTargetVal = DBUtility.ClsPub.isStrNull(subList[i].HTargetVal);
+                        oSub.HUpLimit = DBUtility.ClsPub.isStrNull(subList[i].HUpLimit);
+                        oSub.HDownLimit = DBUtility.ClsPub.isStrNull(subList[i].HDownLimit);
+                        oSub.HUpOffSet = DBUtility.ClsPub.isStrNull(subList[i].HUpOffSet);
+                        oSub.HDownOffSet = DBUtility.ClsPub.isStrNull(subList[i].HDownOffSet);
+                        oSub.HAnalysisMethod = DBUtility.ClsPub.isStrNull(subList[i].HAnalysisMethod);
+                        oSub.HKeyInspect = DBUtility.ClsPub.isLong(subList[i].HKeyInspect);
+                        oSub.HInspectInstruMentID = DBUtility.ClsPub.isLong(subList[i].HInspectInstruMentID);
+                        oSub.HInspectResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+                        BillNew.DetailColl.Add(oSub);
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏃犳槑缁嗚淇℃伅!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+
+
+
+
+
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                if (OperationType.Equals("1") || OperationType.Equals("2"))
+                {
+                    bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    if (BillOld.ShowBill(mainList[0].HInterID, ref s) == false)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    //鍒ゆ柇鏄惁鍙紪杈�
+                    if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+
+                    bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
+                }
+                //鎻愮ず
+                if (bResult == true)
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = ClsPub.sExeReturnInfo + "鍗曟嵁鍙�:" + mainList[0].HBillNo.Trim();
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                    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 [鏉ユ枡鍏ュ簱妫�楠屽崟]
+        /// <summary>
+        /// 杩斿洖鍒楄〃
+        /// 鏉ユ枡鍏ュ簱妫�楠屽崟
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("QC_POStockInCheckBill/GetPOStockInCheckBill")]
+        [HttpGet]
+        public object GetPOStockInCheckBill(string sWhere,string user)
+        {
+            try
+            {
+                List<object> a = new List<object>();
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_POStockInCheckBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳煡鐪嬫潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
                 ds = QC_POStockInCheckBill(sWhere);
+                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鏍煎紡鐨勫瓧绗︿覆
+                    a.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
                 objJsonResult.data = ds.Tables[0];
+                objJsonResult.list=a;
                 return objJsonResult;
             }
             catch (Exception ex)
@@ -65,7 +662,57 @@
             }
 
         }
-       
+        #endregion
+
+        #region 鍒犻櫎鍗曟嵁
+        /// <summary>
+        ///鍒犻櫎鍔熻兘
+        /// </summary>
+        /// <returns></returns>
+        [Route("QC_POStockInCheckBill/DeltetPOStockInCheckBill")]
+        [HttpGet]
+        public object DeltetPOStockInCheckBill(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_POStockInCheckBill_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+                oCN.RunProc("Delete From QC_POStockInCheckBillMain where HInterID = " + HInterID);
+                oCN.RunProc("Delete From QC_POStockInCheckBillSub where HInterID = " + HInterID);
+                oCN.RunProc("Delete From QC_POStockInCheckBillSub_ValueGrid where HInterID = " + HInterID);
+                oCN.RunProc("Delete From QC_POStockInCheckBillSub_Result where HInterID = " + 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;
+            }
+        }
+
+        //
+        #endregion
+
+        #region  [宸插簾寮僝
+
         #region[缂栬緫鏃惰幏鍙栬〃澶存暟鎹甝
         [Route("QC_POStockInCheckBill/QC_POStockInCheckBillListCheckDetail")]
         [HttpGet]
@@ -74,8 +721,9 @@
             if (string.IsNullOrEmpty(HID))
                 return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            string sql = "select top 1 * from h_v_QC_POStockInCheckBillList_Edit  where hmainid= " + HID + " ";
 
-            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_QC_Edit_POStockInCheckBillList  where hmainid= " + HID + " ", "h_v_QC_Edit_POStockInCheckBillList");
+            var dataSet = oCN.RunProcReturn(sql, "h_v_QC_Edit_POStockInCheckBillList");
             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                 return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄧ粨绠楀崟鍙�" };
 
@@ -92,9 +740,7 @@
             try
             {
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
-                string sql1 = "SELECT 鏃ユ湡,鍗曟嵁鍙�,琛ㄥご澶囨敞, 渚涘簲鍟嗗悕绉�,渚涘簲鍟嗕唬鐮�,浜у搧鍐呯爜" +
-                    ", 浜у搧鍚嶇О, 浜у搧鍨嬪彿, 妫�楠屽憳浠g爜, 妫�楠屽憳鍚嶇О, 鍒跺崟浜�, 鍒跺崟鏃ユ湡, 瀹℃牳浜�" +
-                    ", 瀹℃牳鏃ユ湡, 淇敼浜�, 淇敼鏃ユ湡, 鍏抽棴浜�, 鍏抽棴鏃ユ湡 FROM h_v_QC_Edit_POStockInCheckBillList where 1 = 1 ";
+                string sql1 = "SELECT * FROM h_v_QC_POStockInCheckBillList_Edit where 1 = 1 ";
                 string sql = sql1 + sqlWhere;
                 ds = oCN.RunProcReturn(sql, "h_v_QC_Edit_POStockInCheckBillList");
                 objJsonResult.code = "0";
@@ -112,6 +758,8 @@
             return objJsonResult;
         }
         #endregion
+
+        #region 淇濆瓨鍗曟嵁
         /// <summary>
         /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
         ///鍙傛暟锛歴tring sql銆�
@@ -121,7 +769,7 @@
         [HttpPost]
         public object AddBill([FromBody] JObject sMainSub)
         {
-            var _value = sMainSub["sMainSub"].ToString();
+            var _value = sMainSub["msg"].ToString();
             string msg1 = _value.ToString();
             oCN.BeginTran();
             //淇濆瓨涓昏〃
@@ -143,13 +791,24 @@
             return objJsonResult;
         }
 
-        public json AddBillMain(string msg1)
+        public json AddBillMain_Obsolete(string msg1)
         {
             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
             string msg3 = sArray[1].ToString();
+            string user = sArray[2].ToString();
             try
             {
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_POStockInCheckBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
                 msg2 = "[" + msg2.ToString() + "]";
                 List<QC_POStockInCheckBill> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_POStockInCheckBill>>(msg2);
                 int HYear = 2021;
@@ -162,12 +821,12 @@
                 long HBillStatus = mainList[0].HBillStatus;
                 string HRemark = mainList[0].HRemark;//澶囨敞
                 string HBacker = mainList[0].HBacker;
-                DateTime HBackDate = mainList[0].HBackDate;
+                //DateTime HBackDate = mainList[0].HBackDate;
                 string HBackRemark = mainList[0].HBackRemark;
                 string HChecker = mainList[0].HChecker;
-                DateTime HCheckDate = mainList[0].HCheckDate;
+                //DateTime HCheckDate = mainList[0].HCheckDate;
                 string HMaker = mainList[0].HMaker;
-                DateTime HMakeDate = mainList[0].HMakeDate;
+                //DateTime HMakeDate = mainList[0].HMakeDate;
                 long HSupID = mainList[0].HSupID;
                 long HMaterID = mainList[0].HMaterID;
                 decimal HInStockQty = mainList[0].HInStockQty;
@@ -269,37 +928,11 @@
             objJsonResult.data = null;
             return objJsonResult;
         }
-        /// <summary>
-        ///鍒犻櫎鍔熻兘
-        /// </summary>
-        /// <returns></returns>
-        [Route("QC_POStockInCheckBill/DeltetPOStockInCheckBill")]
-        [HttpGet]
-        public object DeltetPOStockInCheckBill(string HInterID)
-        {
-            try
-            {
-                oCN.BeginTran();
-                oCN.RunProc("Delete From QC_POStockInCheckBillMain where HInterID = " + HInterID);
-                oCN.RunProc("Delete From QC_POStockInCheckBillSub where HInterID = " + 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;
-            }
-        }
 
-        //
+        #endregion
+
+
+
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1