chenhaozhe
2025-09-24 faea7d8e2bf3222bb89b3b31039cdb274e8040c6
WebAPI/Controllers/SCGL/QC_OutCompCheckBillController.cs
@@ -21,7 +21,7 @@
        public DataSet ds = new DataSet();
        public WebServer webserver = new WebServer();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsQC_FirstPieceCheckBill BillOld = new DAL.ClsQC_FirstPieceCheckBill();
        public DAL.ClsQC_OutCompCheckBill BillOld = new DAL.ClsQC_OutCompCheckBill();
        #region 出厂检验单列表
        [Route("QC_OutCompCheckBill/GetOutCompCheckBillList")]
@@ -184,6 +184,63 @@
        #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));//获取到DataColumn列对象的列名
                }
                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]
@@ -191,23 +248,8 @@
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            return objJsonResult;
            //保存单据
            return objJsonResult = AddBillMain(msg1);
        }
        public json AddBillMain(string msg1)
@@ -217,6 +259,8 @@
            string msg3 = sArray[1].ToString();
            string OperationType = sArray[2].ToString();
            string user = sArray[3].ToString();
            string Value = sArray[4].ToString();
            bool bResult;
            try
            {
                //判断权限
@@ -230,113 +274,278 @@
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<QC_OutCompCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillMain>>(msg2);
                int HYear = DateTime.Now.Year; ;
                double HPeriod = DateTime.Now.Month; ;
                string HBillType = "7504";
                string HBillSubType = "7504";
                long HInterID = mainList[0].HInterID;//递入type得到的单据ID
                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;//日期
                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 + "'" +
                         ",HUpDater='" +user + "'" +
                         ",HUpDateDate=getdate()" +
                         //========================================
                         ",HSourceID=" + HSourceID.ToString() +
                         ",HQCSchemeID=" + HQCSchemeID.ToString() +
                         ",HICMOInterID=" + HICMOInterID.ToString() +
                         ",HICMOBillNo='" + HICMOBillNo + "'" +
                         ",HICMOQty=" + HICMOQty.ToString() +
                         ",HProcExchInterID=" + HProcExchInterID.ToString() +
                         ",HProcExchEntryID=" + HProcExchEntryID.ToString() +
                         ",HProcExchBillNo='" + HProcExchBillNo + "'" +
                         ",HProcExchQty=" + HProcExchQty.ToString() +
                         ",HProcID=" + HProcID.ToString() +
                         ",HMaterID=" + HMaterID.ToString() +
                         ",HFirstCheckEmp=" + HFirstCheckEmp.ToString() +
                         ",HCheckerResult=" + DBUtility.ClsPub.BoolToString(HCheckerResult) +
                         ",HShiftsID=" + HShiftsID.ToString() +
                         ",HErrTreatment='" + HErrTreatment + "'" +
                         ",HBatchNo='" + HBatchNo + "'" +
                         " where HInterID=" + HInterID.ToString());
                    oCN.RunProc("Delete From QC_OutCompCheckBillSub where HInterID = " + HInterID);
                }
                //保存子表
                objJsonResult = AddBillSub(msg3, HInterID, HBillNo);
                if (objJsonResult.code == "0")
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.Message = s;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                BillNew.omodel.HYear = sYear;
                BillNew.omodel.HPeriod = sPeriod;
                //固定赋值=================================
                BillNew.omodel.HInterID = mainList[0].HInterID;//递入type得到的单据ID
                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);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
                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得到的单据ID
                //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)
            {
@@ -435,27 +644,56 @@
                Int64 HInterID = Convert.ToInt64(sArray[1]); //主ID
                Int64 HEntryID = Convert.ToInt64(sArray[2]); //子ID
                List<QC_OutCompCheckBillSub_ValueGrid> valueList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_OutCompCheckBillSub_ValueGrid>>(Value);
                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++)
                {
                    int HSEQ = i + 1;
                    string HInSpectResult = ClsPub.isStrNull(valueList[i].HInSpectResult);
                    double HInSpectValue = ClsPub.isDoule(valueList[i].HInSpectValue);
                    long HInSpectValueB = ClsPub.isLong(valueList[i].HInSpectValueB);
                    string HInSpectValueT = ClsPub.isStrNull(valueList[i].HInSpectValueT);
                    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);
                    oCN.RunProc("Insert into QC_OutCompCheckBillSub_ValueGrid " +
                      " (HInterID,HEntryID,HSEQ,HInSpectResult,HInSpectValue,HInSpectValueB,HInSpectValueT) " +
                      "values("+ HInterID + "," + HEntryID + "," + HSEQ + ",'" + HInSpectResult + "'," +HInSpectValue + "," + HInSpectValueB + ",'" + HInSpectValueT + "'" +") ");
                        BillNew.DetailColl_Value.Add(oSub_Value);
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无明细行信息!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                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)
            {