WebAPI/Controllers/LMESController.cs
@@ -20,6 +20,11 @@
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        //自定义34进制数组
        private static char[] lNCode = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
        /// <summary>
        /// 返回进站扫描列表|工序进站接收单列表 
        ///参数:string sql。
@@ -2833,7 +2838,7 @@
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!";
                objJsonResult.Message = "[0000-1-045]没有返回任何记录!";
                objJsonResult.data = null;
                return objJsonResult;
            }
@@ -2841,7 +2846,7 @@
            {
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.Message = "[0000-1-050]获取信息成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
@@ -2963,15 +2968,97 @@
            return CustomCorrect(ds);
        }
        /// <summary>
        /// 扫流转卡号方法(产线包装单、产线组装追溯单)--根据流转卡号保存到temp表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #region 产线包装组托单
        #region 转换34进制
        public string GetNewCodeByNum(Int64 lastNum, Int64 codeNum, Int64 codeLength)
        {
            List<string> codeList = new List<string>();
            var maxNum = lastNum + codeNum;
            var lNLength = lNCode.Length;
            for (Int64 i = lastNum; i < maxNum; i++)
            {
                char[] bgCode = GetNewCodeArray(codeLength);
                var sNum = i;//整数倍初始赋值
                for (int a = bgCode.Length - 1; a >= 0; a--)
                {
                    var yNum = sNum % lNLength;//计算余数
                    bgCode[a] = lNCode[yNum];//通过余数定位数组位置
                    sNum = (int)(sNum / lNLength);//计算剩余整数
                    if (sNum == 0)//整数倍为0,则跳出循环
                        break;
                }
                //Console.WriteLine($"生成码{i}:{new string(bgCode)}");//打印生成的序列码(测试用,正式环境请删除或者注释)
                codeList.Add(new string(bgCode));
            }
            return codeList[0];
        }
        //序列码初始化
        private char[] GetNewCodeArray(Int64 codeLength)
        {
            char[] bgCode = new char[codeLength];
            for (Int64 i = 0; i < codeLength; i++)
            {
                bgCode[i] = '0';
            }
            return bgCode;
        }
        #endregion
        #region 墨西哥白标生成查询
        //墨西哥白标查询
        [Route("MES/MES_BarcodeWhiteLabelReport")]
        [HttpGet]
        public object MES_BarcodeWhiteLabelReport(string sWhere)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("SELECT top 1000 * FROM  h_v_MES_BarcodeWhiteLabelReport where 1=1 " + sWhere, "h_v_MES_BarcodeWhiteLabelReport");
            }
            catch (Exception e)
            {
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        //墨西哥白标生成
        [Route("LEMS/SaveCirculationCard_Json_MXG")]
        [HttpGet]
        public object SaveCirculationCard_Json_MXG(string HBillNo, string HInterID, string HBillNo2, string HBarCode,string HNumber, string HName, string HModel)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (HBarCode == null || HBarCode.Equals(""))
                {
                    HBarCode = " ";
                }
                ds = oCN.RunProcReturn("exec Save_Sc_ProcessExchangeBillMainToTmp_MXG '" + HBillNo + "','" + HInterID + "','" + HBillNo2 + "','" + HBarCode + "','" + HNumber + "','" + HName + "','" + HModel + "'", "Save_Sc_ProcessExchangeBillMainToTmp_MXG");
            }
            catch (Exception e)
            {
                ds = null;
            }
            return CustomCorrect(ds);
        }
        #endregion
        #region 扫流转卡号方法(产线包装单、产线组装追溯单)--根据流转卡号保存到temp表
        [Route("LEMS/SaveCirculationCard_Json")]
        [HttpGet]
        public object SaveCirculationCard_Json(string HBillNo, string HInterID, string HBillNo2, string HBarCode,
            string HNumber, string HName, string HModel)
        public object SaveCirculationCard_Json(string HBillNo, string HInterID, string HBillNo2, string HBarCode, string HNumber, string HName, string HModel)
        {
            DataSet ds;
            try
@@ -2996,18 +3083,15 @@
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 扫子件条码方法(产线包装单、产线组装追溯单)--根据子件条码保存到temp表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 扫子件条码方法(产线包装单、产线组装追溯单)--根据子件条码保存到temp表
        [Route("LEMS/SaveSubBarcode_Json")]
        [HttpGet]
        public object SaveSubBarcode_Json(string HBillNo, string SubBarcode, string HInterID, string HBillNo2,
            string HBillType, string sMaker, string HBarCode, string HNumber, string HName, string HModel)
        public object SaveSubBarcode_Json(string HBillNo, string SubBarcode, string HInterID, string HBillNo2, string HBillType, string sMaker, string HBarCode, string HNumber, string HName, string HModel ,string HOrgID)
        {
            DataSet ds1;
            DataSet ds;
@@ -3023,13 +3107,14 @@
                    ds1 = oCN.RunProcReturn("select * from KF_PonderationBillMain_Temp where HSourceBillNo = '" + SubBarcode + "' and HBillType = '" + HBillType + "'", "KF_PonderationBillMain_Temp");
                    if (ds1.Tables[0].Rows.Count > 0)
                    {
                        return CustomError("该子件条码已存在");
                        return CustomError("[0000-2-039]该子件条码已存在");
                    }
                    if (HBarCode == null || HBarCode.Equals(""))
                    {
                        HBarCode = " ";
                    }
                    ds = oCN.RunProcReturn("exec h_p_Save_SubBarcodeToTmp '" + HBillNo + "','" + SubBarcode + "','" + HInterID + "','" + HBillNo2 + "','" + HBillType + "','" + sMaker + "','" + HBarCode + "','" + HNumber + "','" + HName + "','" + HModel + "'", "h_p_Save_SubBarcodeToTmp");
                    ds = oCN.RunProcReturn("exec h_p_Save_SubBarcodeToTmp '" + HBillNo + "','" + SubBarcode + "','" + HInterID + "','" + HBillNo2 + "','" + HBillType + "','" + sMaker + "','" + HBarCode + "','" + HNumber + "','" + HName + "','" + HModel + "','"+ HOrgID + "'", "h_p_Save_SubBarcodeToTmp");
                    LogService.Write("ID:" + HInterID + ",流转卡号:" + HBillNo + ",单据号:" + HBillNo2 + ",条码:" + SubBarcode + ",托条码:" + HBarCode);
                }
            }
@@ -3038,14 +3123,41 @@
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 查询条码档案表里的镭雕条码的合计数量方法(产线包装单)
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("LEMS/SaveSubBarcode_Json_MXG")]
        [HttpGet]
        public object SaveSubBarcode_Json_MXG(string HBillNo, string SubBarcode, string HInterID, string HBillNo2, string HBillType, string sMaker, string HBarCode, string HNumber, string HName, string HModel,string HOrgID)
        {
            DataSet ds1;
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds1 = oCN.RunProcReturn("select * from KF_PonderationBillMain_Temp where HSourceBillNo = '" + SubBarcode + "' and HBillType = '" + HBillType + "'", "KF_PonderationBillMain_Temp");
                if (ds1.Tables[0].Rows.Count > 0)
                {
                    return CustomError("该子件条码已存在");
                }
                if (HBarCode == null || HBarCode.Equals(""))
                {
                    HBarCode = " ";
                }
                ds = oCN.RunProcReturn("exec h_p_Save_SubBarcodeToTmp '" + HBillNo + "','" + SubBarcode + "','" + HInterID + "','" + HBillNo2 + "','" + HBillType + "','" + sMaker + "','" + HBarCode + "','" + HNumber + "','" + HName + "','" + HModel + "','"+ HOrgID + "'", "h_p_Save_SubBarcodeToTmp");
            }
            catch (Exception e)
            {
                ds = null;
            }
            return CustomCorrect(ds);
        }
        #endregion
        #region 查询条码档案表里的镭雕条码的合计数量方法(产线包装单)
        [Route("LEMS/Select_Gy_BarCodeBill_HQty")]
        [HttpGet]
        public object Select_Gy_BarCodeBill_HQty(string HBarCode)
@@ -3072,11 +3184,10 @@
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 更新条码档案表里的镭雕条码的合计数量方法(产线包装单)
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 更新条码档案表里的镭雕条码的合计数量方法(产线包装单)
        [Route("LEMS/Update_Gy_BarCodeBill_HQty")]
        [HttpGet]
        public object Update_Gy_BarCodeBill_HQty(string HBarCode, string HQty)
@@ -3091,7 +3202,7 @@
                }
                else
                {
                    ds = oCN.RunProcReturn("exec h_p_Update_Gy_BarCodeBill_HQty " + HBarCode + "," + HQty + "", "Gy_BarCodeBill");
                    ds = oCN.RunProcReturn("exec h_p_Update_Gy_BarCodeBill_HQty " + HBarCode + "," + HQty + "", "h_p_Update_Gy_BarCodeBill_HQty");
                }
            }
@@ -3099,15 +3210,13 @@
            {
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
            return CustomCorrect(ds);;
        }
        /// <summary>
        /// 更新扫码记录列表方法(产线包装单、产线组装追溯单)
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 更新扫码记录列表方法(产线包装单、产线组装追溯单)
        [Route("LEMS/Update_HBillNo_SubBarcodeList_Json")]
        [HttpGet]
        public object Update_HBillNo_SubBarcodeList_Json(string HBillNo)
@@ -3134,48 +3243,101 @@
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 提交-主表方法(产线包装单)--根据流传卡号从temp表保存到主表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 提交-主表方法(产线包装单)--根据流传卡号从temp表保存到主表
        [Route("LEMS/SaveToSc_PackUnionBillMain")]
        [HttpGet]
        public object SaveToSc_PackUnionBillMain(string HBillNo, string HRemark)
        public object SaveToSc_PackUnionBillMain(string HBillNo, string HRemark, string HProjectNum, string zxQty, string BBM, string LDM, string HMaterNumber,string HOrgID)
        {
            DataSet ds;
            DataSet dsHSNum;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string HBarCode_White = "";
                if (LDM != "其他" && BBM != "其他")
                {
                    ds = oCN.RunProcReturn($"exec h_p_MES_HBarCode_White_SMR {zxQty},'{BBM}','{HMaterNumber}','{HBillNo}'", "h_p_MES_HBarCode_White_SMR");
                    HBarCode_White = ds.Tables[0].Rows[0]["HBarCode_White"].ToString();
                }
                //项目号获取流水号
                dsHSNum = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + HProjectNum + "'", "h_p_WMS_GetMaxNo");
                oCN.RunProc("exec h_p_WMS_SetMaxNo '" + HProjectNum + "'");
                int HSNum = ClsPub.isInt(dsHSNum.Tables[0].Rows[0][0]) + 1;
                //调用进制转换方法把流水号转换成流水号2
                string HSNum2 = GetNewCodeByNum(HSNum, 1, 2);
                if (HBillNo == null || HBillNo.Equals(""))
                {
                    return CustomError("[0000-1-057]流转卡号不能为空!");
                }
                else
                {
                    ds = oCN.RunProcReturn("exec h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain '" + HBillNo + "','" + HRemark + "'," + HSNum + ",'" + HSNum2 + "','" + HBarCode_White + "','"+ HOrgID + "'", "h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain");
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-051]异常!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return CustomCorrect(ds);
        }
        [Route("LEMS/SaveToSc_PackUnionBillMain_MXG")]
        [HttpGet]
        public object SaveToSc_PackUnionBillMain(string HBillNo, string HRemark, string HProjectNum, string zxQty, string BBM, string LDM, string HMaterNumber, string HBarCode_White,string HOrgID)
        {
            DataSet ds;
            DataSet dsHSNum;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (HBarCode_White!="")
                {
                    if (LDM != "其他" && BBM != "其他")
                    {
                        ds = oCN.RunProcReturn($"exec h_p_MES_HBarCode_White_SMR_MXG {zxQty},'{BBM}','{HMaterNumber}','{HBillNo}'", "h_p_MES_HBarCode_White_SMR_MXG");
                        HBarCode_White = ds.Tables[0].Rows[0]["HBarCode_White"].ToString();
                    }
                }
                //项目号获取流水号
                dsHSNum = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + HProjectNum + "'", "h_p_WMS_GetMaxNo");
                oCN.RunProc("exec h_p_WMS_SetMaxNo '" + HProjectNum + "'");
                int HSNum = ClsPub.isInt(dsHSNum.Tables[0].Rows[0][0]) + 1;
                //调用进制转换方法把流水号转换成流水号2
                string HSNum2 = GetNewCodeByNum(HSNum, 1, 2);
                if (HBillNo == null || HBillNo.Equals(""))
                {
                    return CustomError("流转卡号不能为空!");
                }
                else
                {
                    if (HRemark == null || HRemark.Equals(""))
                    {
                        ds = oCN.RunProcReturn("exec h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain '" + HBillNo + "',''", "h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain");
                    }
                    else
                    {
                        ds = oCN.RunProcReturn("exec h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain '" + HBillNo + "','" + HRemark + "'", "h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain");
                    }
                    ds = oCN.RunProcReturn("exec h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain_MXG '" + HBillNo + "','" + HRemark + "'," + HSNum + ",'" + HSNum2 + "','" + HBarCode_White + "','"+ HOrgID + "'", "h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillMain_MXG");
                }
            }
            catch (Exception e)
            {
                ds = null;
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "异常!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 提交-子表方法(产线包装单)--根据子件条码从temp表保存到子表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 提交-子表方法(产线包装单)--根据子件条码从temp表保存到子表
        [Route("LEMS/SaveToSc_PackUnionBillSub")]
        [HttpGet]
        public object SaveToSc_PackUnionBillSub(string HitemID, string HRemark)
@@ -3199,14 +3361,47 @@
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 更新temp表的标记字段方法(产线包装单)
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        //更新没有反写的数据
        [Route("LEMS/SaveToSc_PackUnionBillSub_Back")]
        [HttpGet]
        public object SaveToSc_PackUnionBillSub_Back(string HInterID, string HRemark)
        {
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (HInterID == null || HInterID.Equals(""))
                {
                    return CustomError("[0000-2-058]更新失败HitemID为空!");
                }
                else
                {
                    oCN.RunProc("exec h_p_Save_KF_PonderationBillMain_TempToSc_PackUnionBillSub_Back '" + HInterID + "','" + HRemark + "'");
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "[0000-2-059]更新成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-2-058]" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 更新temp表的标记字段方法(产线包装单)
        [Route("LEMS/Update_Flag_HRelationInterID")]
        [HttpGet]
        public object Update_Flag_HRelationInterID(string HitemID)
@@ -3233,11 +3428,10 @@
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 提交-主表方法(产线组装追溯单)--根据流传卡号从temp表保存到主表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region  提交-主表方法(产线组装追溯单)--根据流传卡号从temp表保存到主表
        [Route("LEMS/SaveToSc_AssemblyBillMain")]
        [HttpGet]
        public object SaveToSc_AssemblyBillMain(string HBillNo)
@@ -3264,11 +3458,10 @@
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 提交-子表方法(产线组装追溯单)--根据子件条码从temp表保存到子表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 提交-子表方法(产线组装追溯单)--根据子件条码从temp表保存到子表
        [Route("LEMS/SaveToSc_AssemblyBillSub")]
        [HttpGet]
        public object SaveToSc_AssemblyBillSub(string HitemID)
@@ -3295,14 +3488,13 @@
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 生成唯一条码方法(产线包装单)--保存时生成唯一条码
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 生成唯一条码方法(产线包装单)--保存时生成唯一条码
        [Route("LEMS/SaveBarCode_json")]
        [HttpGet]
        public object SaveBarCode_json(string sHMaterID, string sHUnitID, string sHBarcodeNo, string sHMaterName)
        public object SaveBarCode_json(string sHMaterID, string sHUnitID, string sHBarcodeNo, string sHMaterName,string HOrgID)
        {
            DataSet ds;
            string sTMNumber = "";
@@ -3357,7 +3549,7 @@
                string HEndDate = sDate;
                string HWorkLineName = "";
                string HBarCodeDate = sDate;
                string HSTOCKORGID = "0";
                string HSTOCKORGID = HOrgID;
                string HOWNERID = "0";
                string HSeOrderBillNo = "";
                string HMaterName = sHMaterName;
@@ -3372,7 +3564,7 @@
                    + " HSourceBillType,HEndQty,HBarcodeQtys,HBarcodeNo,HDeptID,"
                    + " HWhID,HSPID,HRemark,HCusID,HCusType,"
                    + " HEndDate,HWorkLineName,HBarCodeDate,HSTOCKORGID,HOWNERID,"
                    + "HSeOrderBillNo,HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo "
                    + "HSeOrderBillNo,HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo"
                    + ") values ('" + HBarCode + "','" + HBarCodeType + "','" + sHMaterID + "','" + sHUnitID + "','" + HQty + "','"
                        + HBatchNo + "','" + HSupID + "','" + HGroupID + "','" + HMaker + "',getdate(),'"
                        + HPrintQty + "','" + HinitQty + "','" + HSourceInterID + "','" + HSourceEntryID + "','" + HSourceBillNo + "','"
@@ -3381,7 +3573,7 @@
                        + HEndDate + "','" + HWorkLineName + "','" + HBarCodeDate + "','" + HSTOCKORGID + "'," + HOWNERID + ",'"
                        + HSeOrderBillNo + "','" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "','" + HAuxPropID + "','" + HMTONo + "')"
                );
                ds = oCn.RunProcReturn("select HBarCode from Gy_BarCodeBill where HSourceBillNo = '" + sHBarcodeNo + "'  order by HMakeDate desc", "Gy_BarCodeBill");
                ds = oCn.RunProcReturn("select top 10 HBarCode from Gy_BarCodeBill where HSourceBillNo = '" + sHBarcodeNo + "'  order by HMakeDate desc", "Gy_BarCodeBill");
            }
            catch (Exception e)
            {
@@ -3390,11 +3582,11 @@
            return CustomCorrect(ds);
        }
        /// <summary>
        /// 返回产线包装单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 产线包装单列表查询
        [Route("LEMS/MES_ProductionLinePackagingList_Json")]
        [HttpGet]
        public object MES_ProductionLinePackagingList_Json(string sWhere)
@@ -3405,13 +3597,13 @@
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_ProductionLinePackagingList order by 唯一条码 desc", "h_v_ProductionLinePackagingList");
                    ds = oCN.RunProcReturn("select top 1000 * from h_v_ProductionLinePackagingList order by 扫码日期 desc, 唯一条码 desc", "h_v_ProductionLinePackagingList");
                }
                else
                {
                    string sql1 = "select * from h_v_ProductionLinePackagingList where 1 = 1 ";
                    string sql1 = "select top 1000 * from h_v_ProductionLinePackagingList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    string sql2 = " order by 唯一条码 desc";
                    string sql2 = " order by 扫码日期 desc, 唯一条码 desc";
                    sql = sql + sql2;
                    ds = oCN.RunProcReturn(sql, "h_v_ProductionLinePackagingList");
                }
@@ -3424,11 +3616,40 @@
            return GetObjectJson(ds);
        }
        /// <summary>
        /// 扫批次条码方法(产线组装追溯单)--根据批次条码到条码档案表中获取数据保存到temp表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 删除对应的包装单
        [Route("LEMS/DelMES_ProductionLinePackagingList")]
        [HttpGet]
        public object DelMES_ProductionLinePackagingList(string HInterID)
        {
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                oCN.RunProc("Delete from Sc_PackUnionBillMain where HInterID = " + HInterID);
                oCN.RunProc("Delete from Sc_PackUnionBillSub where HInterID = " + HInterID);
                oCN.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID = " + HInterID);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "[0000-1-008]删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-007]删除失败!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region 扫批次条码方法(产线组装追溯单)--根据批次条码到条码档案表中获取数据保存到temp表
        [Route("LEMS/Save_Gy_BarCodeBillToTmp_Json")]
        [HttpGet]
        public object Save_Gy_BarCodeBillToTmp_Json(string HInterID, string HBillNo2, string HBarCode)
@@ -3459,14 +3680,12 @@
                ds = null;
            }
            return CustomCorrect(ds);
            //return ds.Tables[0].Rows;
        }
        /// <summary>
        /// 返回产线组装追溯单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 产线组装追溯单列表查询
        [Route("LEMS/MES_AssemblyTraceabilityList_Json")]
        [HttpGet]
        public object MES_AssemblyTraceabilityList_Json(string sWhere)
@@ -3496,11 +3715,10 @@
            return GetObjectJson(ds);
        }
        /// <summary>
        /// 返回产线组装追溯单列表--过滤条件为镭雕条码的专用方法
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #endregion
        #region 返回产线组装追溯单列表--过滤条件为镭雕条码的专用方法
        [Route("LEMS/MES_AssemblyTraceabilityList_E_Json")]
        [HttpGet]
        public object MES_AssemblyTraceabilityList_E_Json(string HICMOBillNo)
@@ -3526,6 +3744,341 @@
            return GetObjectJson(ds);
        }
        #endregion
        #region 根据ID删除缓存表中扫码记录-产线包装单
        [Route("LEMS/DelProductionLinePackagingTable")]
        [HttpGet]
        public object DelProductionLinePackagingTable(long sHInterID, string HSourceBillNo)
        {
            try
            {
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                oCn.RunProc("Delete TOP(1) from KF_PonderationBillMain_Temp where HInterID = " + sHInterID + " and HSourceBillNo = '" + HSourceBillNo + "'", ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "[0000-1-008]删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-007]删除失败!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region 条码是否是不良的状态
        [Route("LEMS/HbadStaus")]
        [HttpGet]
        public object HbadStaus(string SubBarcode)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn(@"select  HBillNo,HReasult from tiaom  where HBillNo='" + SubBarcode + @"'
union
select HBarCode HBillNo,HStatus HReasult from Gy_BarCodeBill
where HBarCode='" + SubBarcode + "'", "Gy_BarCodeBill");
                if (ClsPub.isInt(ds.Tables[0].Rows.Count) == 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "ok!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else if (ds.Tables[0].Rows[0]["HReasult"].ToString() == "不良")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-2-037]当前条码的状态为:" + ds.Tables[0].Rows[0]["HReasult"].ToString() + "!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = null;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-010]异常!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region 判断条码之前的工序是否出站
        [Route("LEMS/SNBarcodeProcCtrl")]
        [HttpGet]
        public object SNBarcodeProcCtrl(string SubBarcode, string HProcExchBillNo, string HMixedBox, string HBillNo)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn(@"exec h_p_Sc_SNBarcodeProcCtrl '" + SubBarcode + "'", "h_p_Sc_SNBarcodeProcCtrl");
                if (ClsPub.isInt(ds.Tables[0].Rows.Count) == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-1-045]查无数据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-1-051]" + ds.Tables[0].Rows[0]["HBackRemark"].ToString() + "!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    ds = oCN.RunProcReturn(@"exec h_p_Sc_SNBarcodeMixedBox '" + SubBarcode + "','" + HProcExchBillNo + "','" + HMixedBox + "','" + HBillNo + "'", "h_p_Sc_SNBarcodeMixedBox");
                    if (ClsPub.isInt(ds.Tables[0].Rows.Count) == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "[0000-1-045]查无数据!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "[0000-1-051]" + ds.Tables[0].Rows[0]["HBackRemark"].ToString();
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = null;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-010]异常!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region  09项目判断配件条码 模具穴号是否匹配
        [Route("LEMS/h_p_CJ_SNBarCodeBillMouldBathSelect")]
        [HttpGet]
        public object h_p_CJ_SNBarCodeBillMouldBathSelect(string SubBarcode, string HProcExchBillNo, string HBillType)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn(@"exec h_p_CJ_SNBarCodeBillMouldBathSelect '" + SubBarcode + "','" + HProcExchBillNo + "','" + HBillType + "'", "h_p_Sc_SNBarcodeMixedBox");
                if (ClsPub.isInt(ds.Tables[0].Rows.Count) == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-1-045]查无数据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-1-051]" + ds.Tables[0].Rows[0]["HBackRemark"].ToString();
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = null;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-010]异常!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region  判断总的包装数量是否超过流转卡数量
        [Route("LEMS/h_p_Sc_ProductionLinePackaging_Checkqty")]
        [HttpGet]
        public object h_p_Sc_ProductionLinePackaging_Checkqty(long HInterID)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("exec h_p_Sc_ProductionLinePackaging_Checkqty " + HInterID, "h_p_Sc_ProductionLinePackaging_Checkqty");
                if (ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取信息成功!";//返回剩余数量
                    objJsonResult.data = Pub_Class.ClsPub.isInt(ds.Tables[0].Rows[0]["HBackRemark"]);
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "[0000-1-051]" + Convert.ToString(ds.Tables[0].Rows[0]["HBackRemark"]);
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-010]异常!";
                objJsonResult.data = e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #region 缓存表包装单列表
        [Route("LEMS/PackUnionCacheList")]
        [HttpGet]
        public object PackUnionCacheList(string sWhere)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select top 1000 * from h_v_PackUnionBillCacheList order by 扫码时间 desc", "h_v_PackUnionBillCacheList");
                }
                else
                {
                    string sql1 = "select * from h_v_PackUnionBillCacheList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    string sql2 = " order by 扫码时间 desc";
                    sql += sql2;
                    ds = oCN.RunProcReturn(sql, "h_v_PackUnionBillCacheList");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无数据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 工序流转卡的末道工序
        [Route("LEMS/TxtHBarCode_KeyDown_Last")]
        [HttpGet]
        public object TxtHBarCode_KeyDown_Last(string sBillBarCode)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (sBillBarCode == null || sBillBarCode.Equals(""))
                {
                    return CustomError("未输入条形码!");
                }
                else
                {
                    //拆分条形码
                    string[] NewBarCode;
                    if (sBillBarCode.CompareTo("#") > 0)
                    {
                        NewBarCode = sBillBarCode.Split(Convert.ToChar("#"));
                        sBillBarCode = NewBarCode[0];
                    }
                    string sBillNo = sBillBarCode;
                    ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + sBillNo + "' and 末道工序='是' ", "h_v_Sc_ProcessExchangeBillList");
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        return CustomError("不存在此流转卡号!");
                    }
                }
            }
            catch (Exception e)
            {
                ds = null;
            }
            return CustomCorrect(ds);
        }
        #endregion
        #endregion
        /// <summary>
        /// 返回墙咔工资统计报表
        ///参数:string sql。