/// <summary>
        /// 钢坯改判
        /// </summary>
        /// <param name="row">选中的数据</param>
        /// <param name="strGrd">钢种</param>
        /// <param name="strStdCode">执行标准</param>
        /// <param name="strMatCode">物料编码</param>
        /// <param name="strMatName">物料描述</param>
        /// <param name="strZrdwID">责任单位代码</param>
        /// <param name="strZrdwName">责任代为描述</param>
        /// <param name="strPDDJ">判定等级</param>
        /// <param name="strZYX1">自由项1</param>
        /// <param name="strZYX2">自由项2</param>
        /// <param name="strGPYY">改判原因</param>
        /// <param name="strLen">定尺</param>
        /// <param name="strISSH">是否审核</param>
        /// <returns></returns>
        public string TPGP_Slab(string strs, string strGrd, string strStdCode, string strMatCode, string strMatName, string strZrdwID, string strZrdwName, string strPDDJ, string strZYX1, string strZYX2, string strGPYY, string strLen, decimal strISSH)
        {
            string result = "1";

            try
            {
                Dal_TQC_TP_SLAB_COMMUTE dalTP     = new Dal_TQC_TP_SLAB_COMMUTE();
                Dal_TSC_SLAB_MAIN       dal_slab  = new Dal_TSC_SLAB_MAIN();
                Dal_TQD_DESIGN          dalDesign = new Dal_TQD_DESIGN();

                TransactionHelper.BeginTransaction();

                string   strUserID = RV.UI.UserInfo.userID;
                DateTime time      = RV.UI.ServerTime.timeNow();
                string   stove     = "";

                string strDesignNo = dalDesign.Get_Design_No(strStdCode, strGrd);
                if (string.IsNullOrEmpty(strDesignNo))
                {
                    return("改判失败,没有找到对应的执行标准信息!");
                }
                string[] strs_Slab_ID = strs.Substring(0, strs.Length - 1).Split(',');

                Bll_TB_MATRL_MAIN bll_matrl = new Bll_TB_MATRL_MAIN();

                for (int i = 0; i < strs_Slab_ID.Length; i++)
                {
                    Mod_TSC_SLAB_MAIN mod_slab = dal_slab.GetModel(strs_Slab_ID[i]);
                    stove = mod_slab.C_STOVE;
                    if (mod_slab != null)
                    {
                        Mod_TB_MATRL_MAIN mod_matrl = bll_matrl.GetModel(strMatCode);
                        stove = mod_slab.C_STOVE;
                        Mod_TQC_TP_SLAB_COMMUTE mod = new Mod_TQC_TP_SLAB_COMMUTE();
                        mod.C_STA_ID              = mod_slab.C_STA_DESC;
                        mod.C_SLAB_MAIN_ID        = strs_Slab_ID[i];
                        mod.C_STOVE               = mod_slab.C_STOVE;
                        mod.C_BATCH_NO            = mod_slab.C_BATCH_NO;
                        mod.N_WGT                 = mod_slab.N_WGT;
                        mod.N_LEN_BEFORE          = mod_slab.N_LEN;
                        mod.C_STL_GRD_BEFORE      = mod_slab.C_STL_GRD;
                        mod.C_STD_CODE_BEFORE     = mod_slab.C_STD_CODE;
                        mod.C_SPEC_BEFORE         = mod_slab.C_SPEC;
                        mod.C_MAT_CODE_BEFORE     = mod_slab.C_MAT_CODE;
                        mod.C_MAT_DESC_BEFORE     = mod_slab.C_MAT_NAME;
                        mod.C_ZYX1_BEFORE         = mod_slab.C_ZYX1;
                        mod.C_ZYX2_BEFORE         = mod_slab.C_ZYX2;
                        mod.C_JUDGE_LEV_BP_BEFORE = mod_slab.C_MAT_TYPE;
                        mod.C_STL_GRD_AFTER       = strGrd;
                        mod.C_STD_CODE_AFTER      = strStdCode;
                        mod.C_SPEC_AFTER          = mod_matrl.C_SLAB_SIZE;
                        mod.N_LEN_AFTER           = Convert.ToDecimal(strLen);
                        mod.C_MAT_CODE_AFTER      = strMatCode;
                        mod.C_MAT_DESC_AFTER      = strMatName;
                        mod.C_REASON_DEPMT_ID     = strZrdwID;
                        mod.C_REASON_DEPMT_DESC   = strZrdwName;
                        mod.C_EMP_ID              = RV.UI.UserInfo.UserName;
                        mod.C_ZYX1_AFTER          = strZYX1;
                        mod.C_ZYX2_AFTER          = strZYX2;
                        mod.C_JUDGE_LEV_BP_AFTER  = strPDDJ;
                        mod.C_COMMUTE_SQ          = strGPYY;
                        mod.N_IS_SH               = strISSH;
                        mod.C_REMARK2             = mod_slab.C_MOVE_TYPE;
                        mod.C_REMARK3             = mod_slab.C_SLABWH_CODE;
                        if (dalTP.Add_Trans(mod))
                        {
                            if (!dal_slab.UpdateTP_Trans(mod_slab.C_ID, mod_slab.C_BATCH_NO))
                            {
                                TransactionHelper.RollBack();
                                return("改判失败,修改钢坯实绩状态时错误!");
                            }
                        }
                        else
                        {
                            TransactionHelper.RollBack();
                            return("改判失败,添加改判记录时错误!");
                        }
                    }
                }

                TransactionHelper.Commit();
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();
                return(ex.Message);
            }

            return(result);
        }