From 9d8435352f7a1ac512554f9d22ce2a63d1b98f95 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期四, 25 九月 2025 09:33:19 +0800
Subject: [PATCH] 来料检验单 产品入库检验单 添加 关闭/反关闭 作废/反作废

---
 WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs | 1123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,123 insertions(+), 0 deletions(-)

diff --git a/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs b/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
new file mode 100644
index 0000000..7cb4e45
--- /dev/null
+++ b/WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
@@ -0,0 +1,1123 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Pub_Class;
+using SyntacticSugar.constant;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //宸ュ簭妫�楠屽崟Controller
+    public class QC_OutCompCheckBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        public DataSet ds = new DataSet();
+        public WebServer webserver = new WebServer();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        public DAL.ClsQC_OutCompCheckBill BillOld = new DAL.ClsQC_OutCompCheckBill();
+
+        #region 鍑哄巶妫�楠屽崟鍒楄〃
+        [Route("QC_OutCompCheckBill/GetOutCompCheckBillList")]
+        [HttpGet]
+        public object GetOutCompCheckBillList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> a = new List<object>();
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳煡鐪嬫潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_QC_OutCompCheckBillList order by hmainid desc ", "h_v_QC_OutCompCheckBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_QC_OutCompCheckBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by hmainid desc ";
+                    ds = oCN.RunProcReturn(sql, "h_v_QC_OutCompCheckBillList");
+                }
+                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 = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = a;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鍑哄巶妫�楠屽崟鍒嗛〉鍒楄〃
+        [Route("QC_OutCompCheckBill/QC_OutCompCheckBillListPage")]
+        [HttpGet]
+        public json QC_OutCompCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_OutCompCheckBillList " + page + "," + size + ",''", "h_p_QC_OutCompCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_OutCompCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_OutCompCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                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鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
+        #region[缂栬緫鏃惰幏鍙栨暟鎹甝
+        [Route("QC_OutCompCheckBill/QC_OutCompCheckBill_Edit")]
+        [HttpGet]
+        public object QC_OutCompCheckBill_Edit(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                string sql1 = "select * from h_v_QC_OutCompCheckBillList_Edit where 1 = 1  ";
+                string sql = sql1 + sWhere + " order by hmainid desc";
+                ds = oCN.RunProcReturn(sql, "h_v_QC_OutCompCheckBillList_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="sWhere"></param>
+        /// <returns></returns>
+        [Route("QC_OutCompCheckBill_ValueTable/getValueList")]
+        [HttpGet]
+        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_OutCompCheckBillSub_ValueGrid  where  HInterID=" + HInterID + " and HEntryID=" + HEntryID, "QC_OutCompCheckBillSub_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_OutCompCheckBill/AddBill")]
+        [HttpPost]
+        public object AddBill([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();
+            string user = sArray[3].ToString();
+            string Value = sArray[4].ToString();
+            bool bResult;
+            try
+            {
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                msg2 = "[" + msg2.ToString() + "]";
+                List<Model.ClsQC_OutCompCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_OutCompCheckBillMain>>(msg2);
+                DAL.ClsQC_OutCompCheckBill BillNew = new DAL.ClsQC_OutCompCheckBill();
+
+                //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
+                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_OutCompCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_OutCompCheckBillSub>>(msg3);
+                BillNew.DetailColl = new List<Model.ClsQC_OutCompCheckBillSub>();
+
+                for (int i = 0; i < subList.ToArray().Length; i++)
+                {
+                    if (i >= 0)//HQty
+                    {
+                        Model.ClsQC_OutCompCheckBillSub oSub = new Model.ClsQC_OutCompCheckBillSub();
+                        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;
+                }
+                //int HYear = DateTime.Now.Year; ;
+                //double HPeriod = DateTime.Now.Month; ;
+                //string HBillType = "7504";
+                //string HBillSubType = "7504";
+                //long HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+                //DateTime HDate = mainList[0].HDate;//鏃ユ湡
+                //string HBillNo = mainList[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
+                //long HBillStatus = mainList[0].HBillStatus;
+                //string HRemark = mainList[0].HRemark;//澶囨敞                
+                //string HMaker = user;
+
+                //long HCusID = mainList[0].HCusID;
+                //long HMaterID = mainList[0].HMaterID;
+                //long HFirstCheckEmp = mainList[0].HFirstCheckEmp;
+                //bool HCheckerResult = ClsPub.isBool(mainList[0].HCheckerResult);
+                //double HInStockQty = mainList[0].HInStockQty;
+                //double HCheckQty = mainList[0].HCheckQty;
+                //double HRightQty = mainList[0].HRightQTy;
+                //double HBadQty = mainList[0].HBadQty;
+
+                //long HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
+                //string HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
+                //long HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
+                //long HICMOQty = ClsPub.isLong(mainList[0].HICMOQty);
+                //long HProcExchInterID = ClsPub.isLong(mainList[0].HProcExchInterID);
+                //long HProcExchEntryID = ClsPub.isLong(mainList[0].HProcExchEntryID);
+                //string HProcExchBillNo = ClsPub.isStrNull(mainList[0].HProcExchBillNo);
+                //long HProcExchQty = ClsPub.isLong(mainList[0].HProcExchQty);
+                //long HSourceID = ClsPub.isLong(mainList[0].HSourceID);
+                //long HProcID = ClsPub.isLong(mainList[0].HProcID);
+                //long HMainSourceInterID = ClsPub.isLong(mainList[0].HMainSourceInterID);
+                //long HMainSourceEntryID = ClsPub.isLong(mainList[0].HMainSourceEntryID);
+                //string HMainSourceBillNo = ClsPub.isStrNull(mainList[0].HMainSourceBillNo);
+                //string HMainSourceBillType = ClsPub.isStrNull(mainList[0].HMainSourceBillType);
+                //long HQCSchemeID = ClsPub.isLong(mainList[0].HQCSchemeID);
+                //long HShiftsID = ClsPub.isLong(mainList[0].HShiftsID);
+                //string HErrTreatment = ClsPub.isStrNull(mainList[0].HErrTreatment);
+                //string HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
+                //long HSourceOrgID = ClsPub.isLong(mainList[0].HSourceOrgID);
+                //long HInspectOrgID = ClsPub.isLong(mainList[0].HInspectOrgID);
+
+                //if (OperationType == "1" || OperationType == "2")
+                //{
+                //    涓昏〃
+                //    oCN.RunProc("Insert Into QC_OutCompCheckBillMain " +
+                //    "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
+                //    ",HYear,HPeriod,HRemark,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
+                //    ",HCusID,HMaterID,HInStockQty,HCheckQty,HRightQty,HBadQty,HFirstCheckEmp,HCheckerResult" +
+                //    ",HICMOInterID,HICMOEntryID,HICMOBillNo,HICMOQty,HProcExchInterID,HProcExchEntryID,HProcExchBillNo,HProcExchQty" +
+                //     ",HSourceID,HProcID,HQCSchemeID,HShiftsID,HErrTreatment,HBatchNo,HSourceOrgID,HInspectOrgID" +
+                //    ") " +
+                //    " values('" + HBillType + "','" + HBillSubType + "'," + HInterID.ToString() + ",'" + HBillNo + "'," + HBillStatus.ToString() + ",'" + HDate + "','" + user + "',getdate()" +
+                //    "," + HYear.ToString() + "," + HPeriod.ToString() + ",'" + HRemark + "','" + HMainSourceInterID + "','" + HMainSourceEntryID + "','" + HMainSourceBillNo + "','" + HMainSourceBillType + "'" +
+                //    ",'" + HCusID.ToString() + "','" + HMaterID.ToString() + "','" + HInStockQty.ToString() + "','" + HCheckQty.ToString() + "','" + HRightQty.ToString() + "','" + HBadQty.ToString() + "','" + HFirstCheckEmp.ToString() + "','" + DBUtility.ClsPub.BoolToString(HCheckerResult) + "'" +
+                //    ",'" + HICMOInterID.ToString() + "','" + HICMOEntryID.ToString() + "','" + HICMOBillNo.ToString() + "','" + HICMOQty.ToString() + "','" + HProcExchInterID.ToString() + "','" + HProcExchEntryID.ToString() + "','" + HProcExchBillNo.ToString() + "','" + HProcExchQty + "'" +
+                //    ",'" + HSourceID.ToString() + "','" + HProcID.ToString() + "','" + HQCSchemeID.ToString() + "','" + HShiftsID.ToString() + "','" + HErrTreatment.ToString() + "','" + HBatchNo.ToString() + "','" + HSourceOrgID.ToString() + "','" + HInspectOrgID.ToString() + "') ");
+
+                //}
+                //else if (OperationType == "3")
+                //{
+                //    oCN.RunProc("UpDate QC_OutCompCheckBillMain set " +
+                //         " HBillNo='" + HBillNo + "'" +
+                //",HDate='" + HDate + "'" +
+                //",HYear='" + HYear.ToString() + "'" +
+                //",HPeriod='" + HPeriod.ToString() + "'" +
+                //",HBillStatus='" + HBillStatus + "'" +
+                //",HRemark='" + HRemark + "'" +
+                //",HBacker='" + omodel.HBacker + "'" +
+                //",HBackDate='" + omodel.HBackDate + "'" +
+                //",HBackRemark='" + omodel.HBackRemark + "'" +
+                //",HChecker='" + omodel.HChecker + "'" +
+                //",HCheckDate='" + omodel.HCheckDate + "'" +
+                //",HMaker='" + omodel.HMaker + "'" +
+                //",HMakeDate='" + omodel.HMakeDate + "'" +
+                //",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" +
+                //",HUpDateDate=getdate()" +
+                //",HCloseMan='" + omodel.HCloseMan + "'" +
+                //",HCloseDate='" + omodel.HCloseDate + "'" +
+                //",HCloseType=" + omodel.HCloseType.ToString() +
+                //",HDeleteMan='" + omodel.HDeleteMan + "'" +
+                //",HDeleteDate='" + omodel.HDeleteDate + "'" +
+                //",HPrintQty=" + HPrintQty.ToString() +
+                //========================================
+                //",HSupID=" + omodel.HSupID.ToString() +
+                //",HEmpID=" + omodel.HEmpID.ToString() +
+                //",HSourceID=" + omodel.HSourceID.ToString() +
+                //",HQCSchemeID=" + omodel.HQCSchemeID.ToString() +
+                //",HICMOInterID=" + omodel.HICMOInterID.ToString() +
+                //",HICMOBillNo='" + omodel.HICMOBillNo + "'" +
+                //",HICMOQty=" + omodel.HICMOQty.ToString() +
+                //",HProcExchInterID=" + omodel.HProcExchInterID.ToString() +
+                //",HProcExchEntryID=" + omodel.HProcExchEntryID.ToString() +
+                //",HProcExchBillNo='" + omodel.HProcExchBillNo + "'" +
+                //",HProcExchQty=" + omodel.HProcExchQty.ToString() +
+                //",HProcID=" + omodel.HProcID.ToString() +
+                //",HMaterID=" + omodel.HMaterID.ToString() +
+                //",HFirstCheckEmp=" + omodel.HFirstCheckEmp.ToString() +
+                //",HLastResult=" + DBUtility.ClsPub.BoolToString(omodel.HLastResult) +
+                //",HShiftsID=" + omodel.HShiftsID.ToString() +
+                //",HErrTreatment='" + omodel.HErrTreatment + "'" +
+                //",HBatchNo='" + omodel.HBatchNo + "'" +
+                //    " where HInterID=" + HInterID.ToString());
+                //    oCN.RunProc("Delete From QC_OutCompCheckBillSub where HInterID = " + HInterID);
+
+                //}
+                //淇濆瓨瀛愯〃
+                //objJsonResult = AddBillSub(msg3, HInterID, HBillNo);
+                //if (objJsonResult.code == "0")
+                //{
+                //    objJsonResult.code = "0";
+                //    objJsonResult.count = 0;
+                //    objJsonResult.Message = objJsonResult.Message;
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        public json AddBillSub(string msg3, long HInterID, string HBillNo)
+        {
+            List<QC_OutCompCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillSub>>(msg3);
+            for (int i = 0; i < subList.Count; i++)
+            {                          
+
+                int HEntryID = i + 1;
+                string HRemark = ClsPub.isStrNull(subList[i].HRemark);
+                long HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID);
+                long HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID);
+                string HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType);
+                string HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo);
+                double HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
+                double HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
+                string HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
+                DateTime HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
+                bool HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
+
+
+                long HQCCheckClassID = subList[0].HQCCheckClassID;
+                long HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID);
+                string HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd);
+                string HUnit = DBUtility.ClsPub.isStrNull(subList[i].HUnit);
+                string HQCNote = DBUtility.ClsPub.isStrNull(subList[i].HQCNote);
+                string HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+                string HMax = DBUtility.ClsPub.isStrNull(subList[i].HMax);
+                string HMin = DBUtility.ClsPub.isStrNull(subList[i].HMin);
+                string HAvg = DBUtility.ClsPub.isStrNull(subList[i].HAvg);               
+                long HSampleSchemeID = DBUtility.ClsPub.isLong(subList[i].HSampleSchemeID);
+                long HSampleQty = DBUtility.ClsPub.isLong(subList[i].HSampleQty);
+                double HSampleDamageQty = DBUtility.ClsPub.isDoule(subList[i].HSampleDamageQty);
+                long HAcceptQty = DBUtility.ClsPub.isLong(subList[i].HAcceptQty);
+                long HRejectQty = DBUtility.ClsPub.isLong(subList[i].HRejectQty);
+                double  HSampleUnRightQty = DBUtility.ClsPub.isDoule(subList[i].HSampleUnRightQty);
+                string HStatus = DBUtility.ClsPub.isStrNull(subList[i].HStatus);
+                long HUnitID = DBUtility.ClsPub.isLong(subList[i].HUnitID);
+                string HInspectVal = DBUtility.ClsPub.isStrNull(subList[i].HInspectVal);
+                string HTargetVal = DBUtility.ClsPub.isStrNull(subList[i].HTargetVal);
+                string HUpLimit = DBUtility.ClsPub.isStrNull(subList[i].HUpLimit);
+                string HDownLimit = DBUtility.ClsPub.isStrNull(subList[i].HDownLimit);
+                string HUpOffSet = DBUtility.ClsPub.isStrNull(subList[i].HUpOffSet);
+                string HDownOffSet = DBUtility.ClsPub.isStrNull(subList[i].HDownOffSet);
+                string HAnalysisMethod = DBUtility.ClsPub.isStrNull(subList[i].HAnalysisMethod);
+                long HKeyInspect = DBUtility.ClsPub.isLong(subList[i].HKeyInspect);
+                long HInspectInstruMentID = DBUtility.ClsPub.isLong(subList[i].HInspectInstruMentID);
+                string HInspectResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
+
+
+                oCN.RunProc("Insert into QC_OutCompCheckBillSub " +
+                      " (HInterID,HBillNo_bak,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
+                      ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                      ",HQCCheckClassID,HQCCheckItemID,HQCStd,HQCNote,HResult,HMax,HMin,HAvg,HSampleSchemeID,HSampleQty" +
+                      ",HSampleDamageQty,HAcceptQty,HRejectQty,HSampleUnRightQty,HStatus,HUnitID,HInspectVal,HTargetVal,HUpLimit,HDownLimit" +
+                      ",HUpOffSet,HDownOffSet,HAnalysisMethod,HKeyInspect,HInspectInstruMentID,HInspectResult" +
+                      ") values("
+                      + HInterID.ToString() + ",'" + HBillNo + "'," + HEntryID.ToString() + ",'" + HCloseMan + "',getdate()," + DBUtility.ClsPub.BoolToString(HCloseType) + ",'" + HRemark + "'," + HSourceInterID.ToString() +
+                      "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "'," + HRelationQty.ToString() + "," + HRelationMoney.ToString() +
+                      "," + HQCCheckClassID.ToString() + "," + HQCCheckItemID.ToString() + ",'" + HQCStd + "','" + HQCNote + "','" + HResult + "','" + HMax + "','" + HMin + "','" + HAvg + "','" + HSampleSchemeID + "','" + HSampleQty + "'" +
+                      "," + HSampleDamageQty.ToString() + "," + HAcceptQty.ToString() + ",'" + HRejectQty + "','" + HSampleUnRightQty + "','" + HStatus + "','" + HUnitID + "','" + HInspectVal + "','" + HTargetVal + "','" + HUpLimit + "','" + HDownLimit + "'" +
+                      ",'" + HUpOffSet.ToString() + "','" + HDownOffSet.ToString() + "','" + HAnalysisMethod + "','" + DBUtility.ClsPub.BoolToString(HKeyInspect) + "','" + HInspectInstruMentID + "','" + HInspectResult + "' ) ");
+            }
+
+            objJsonResult.code = "1";
+            objJsonResult.count = 1;
+            objJsonResult.Message = null;
+            objJsonResult.data = null;
+            return objJsonResult;
+        }
+
+        #endregion
+
+        #region 妫�楠屽�间繚瀛�
+        [Route("QC_OutCompCheckBill/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_OutCompCheckBillSub_ValueGrid> valueList = new List<Model.ClsQC_OutCompCheckBillSub_ValueGrid>();
+                valueList = oListModels.getObjectByJson_ClsQC_OutCompCheckBillSub_ValueGrid(Value);
+
+                DAL.ClsQC_OutCompCheckBill BillNew = new DAL.ClsQC_OutCompCheckBill();
+
+                for (int i = 0; i < valueList.ToArray().Length; i++)
+                {
+                    if (i >= 0)//HQty
+                    {
+                        Model.ClsQC_OutCompCheckBillSub_ValueGrid oSub_Value = new Model.ClsQC_OutCompCheckBillSub_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 鍑哄巶妫�楠屽崟 鍒犻櫎
+        [Route("QC_OutCompCheckBill/DeltetOutCompCheckBill")]
+        [HttpGet]
+        public object DeltetOutCompCheckBill(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+                oCN.RunProc("Delete From QC_OutCompCheckBillMain where HInterID = " + HInterID);
+                oCN.RunProc("Delete From QC_OutCompCheckBillSub where HInterID = " + HInterID);
+                oCN.RunProc("Delete From QC_OutCompCheckBillSub_ValueGrid 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 鍑哄巶妫�楠屽崟缁存姢 瀹℃牳 鍙嶅鏍� 鍏抽棴 鍙嶅叧闂� 浣滃簾 鍙嶄綔搴�
+        /// <summary>
+        /// 鍑哄巶妫�楠屽崟缁存姢 瀹℃牳銆佸弽瀹℃牳
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
+        /// <param name="CurUserName">瀹℃牳浜�</param>
+        /// <returns></returns>
+        [Route("QC_OutCompCheckBill/CheckQC_OutCompCheckBill")]
+        [HttpGet]
+        public object CheckQC_OutCompCheckBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            try
+            {
+                //瀹℃牳鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("QC_OutCompCheckBill_Check", 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                var ds = oCN.RunProcReturn("select * from QC_OutCompCheckBillMain where HInterID=" + HInterID, "QC_OutCompCheckBillMain");
+                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)  //瀹℃牳鍒ゆ柇
+                {                   
+
+                    oCN.RunProc("update QC_OutCompCheckBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate() where HInterID=" + HInterID);
+
+
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳鎴愬姛";
+                    objJsonResult.data = null;
+                }
+                if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+                {                  
+
+                    oCN.RunProc("update QC_OutCompCheckBillMain set HChecker='',HCheckDate=null where HInterID=" + HInterID);               
+
+                    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;
+            }
+        }
+
+        /// <summary>
+        /// 鍑哄巶妫�楠屽崟缁存姢 鍏抽棴 鍙嶅叧闂� 
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <param name="Type"></param>
+        /// <param name="user"></param>
+        /// <returns></returns>
+        [Route("QC_OutCompCheckBill/CloseQC_OutCompCheckBill")]
+        [HttpGet]
+        public object CloseQC_FirstPieceCheckBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Close", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬叧闂�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "QC_OutCompCheckBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 鍏抽棴  2  鍙嶅叧闂�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍏抽棴鍗曟嵁
+                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶅叧闂崟鎹�
+                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+        /// <summary>
+        /// 鍑哄巶妫�楠屽崟缁存姢 浣滃簾 鍙嶄綔搴�
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <param name="Type"></param>
+        /// <param name="user"></param>
+        /// <returns></returns>
+        [Route("QC_OutCompCheckBill/DropQC_OutCompCheckBill")]
+        [HttpGet]
+        public object DropQC_FirstPieceCheckBills(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("QC_OutCompCheckBill_Drop", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愪綔搴�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "QC_OutCompCheckBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 浣滃簾  2  鍙嶄綔搴�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡浣滃簾
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶄綔搴�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1