/// <summary>
        /// 下发轧钢计划(合并)
        /// </summary>
        /// <param name="strPlanID">计划实例</param>
        /// <param name="i_Wgt">重量</param>
        /// <returns></returns>
        public string DownPlans(Mod_TRP_PLAN_ROLL_ITEM_INFO itemInfo, decimal i_Wgt, List <string> ids, string area)
        {
            try
            {
                string result = "1";

                TransactionHelper.BeginTransaction();

                Dal_TB_STA dalTbSta = new Dal_TB_STA();

                DateTime dtStart;
                DateTime dtEnd;

                Mod_TB_STA modSta = dalTbSta.GetModel(itemInfo.C_STA_ID);


                Mod_TRP_PLAN_ROLL_ITEM modUp = dalTrpPlanRollItem.GetModel_Up(itemInfo.C_STA_ID);
                if (modUp == null)
                {
                    if (string.IsNullOrEmpty(modUp.D_P_START_TIME.ToString()))
                    {
                        TransactionHelper.RollBack();
                        return("系统没有已排的计划,请设置计划初始开始时间!");
                    }
                    else
                    {
                        dtStart = Convert.ToDateTime(modUp.D_P_START_TIME.ToString());
                    }
                }
                else
                {
                    int hggTime = dalChangeTime.Get_Time2(itemInfo.C_STA_ID, modUp.C_SPEC, itemInfo.C_SPEC);//换规格时间

                    dtStart = Convert.ToDateTime(modUp.D_P_END_TIME).AddMinutes(hggTime);
                }

                double cn = Convert.ToDouble(i_Wgt / Convert.ToDecimal(itemInfo.N_MACH_WGT.ToString()));
                dtEnd = dtStart.AddHours(cn);//结束时间

                #region TRP_PLAN_ROLL_ITEM赋值

                Mod_TRP_PLAN_ROLL_ITEM modItem = new Mod_TRP_PLAN_ROLL_ITEM();
                modItem.C_ID = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(0, 1000);
                //modItem.C_PLAN_ROLL_ID = itemInfo.C_ID;//计划主表主键
                modItem.N_STATUS             = 1;//已下发
                modItem.C_INITIALIZE_ITEM_ID = itemInfo.C_INITIALIZE_ITEM_ID;
                modItem.C_ORDER_NO           = modItem.C_ID;
                modItem.N_WGT              = i_Wgt;//下发量
                modItem.C_MAT_CODE         = itemInfo.C_MAT_CODE;
                modItem.C_MAT_NAME         = itemInfo.C_MAT_NAME;
                modItem.C_TECH_PROT        = itemInfo.C_TECH_PROT;
                modItem.C_SPEC             = itemInfo.C_SPEC;
                modItem.C_STL_GRD          = itemInfo.C_STL_GRD;
                modItem.C_STD_CODE         = itemInfo.C_STD_CODE;
                modItem.N_USER_LEV         = itemInfo.N_USER_LEV;
                modItem.N_STL_GRD_LEV      = itemInfo.N_STL_GRD_LEV;
                modItem.N_ORDER_LEV        = itemInfo.N_ORDER_LEV;
                modItem.C_QUALIRY_LEV      = itemInfo.C_QUALIRY_LEV;
                modItem.D_NEED_DT          = itemInfo.D_NEED_DT;
                modItem.D_DELIVERY_DT      = itemInfo.D_DELIVERY_DT;
                modItem.D_DT               = itemInfo.D_DT;
                modItem.C_LINE_DESC        = modSta.C_STA_DESC;
                modItem.C_LINE_CODE        = modSta.C_STA_CODE;
                modItem.D_P_START_TIME     = dtStart; //计划开始时间
                modItem.D_P_END_TIME       = dtEnd;   //计划结束时间
                modItem.N_PROD_TIME        = itemInfo.N_PROD_TIME;
                modItem.N_SORT             = itemInfo.N_SORT;
                modItem.N_ROLL_PROD_WGT    = i_Wgt;//下发量
                modItem.C_ROLL_PROD_EMP_ID = itemInfo.C_ROLL_PROD_EMP_ID;
                modItem.C_STL_ROL_DT       = itemInfo.C_STL_ROL_DT;
                modItem.N_PROD_WGT         = itemInfo.N_PROD_WGT;
                modItem.N_WARE_WGT         = itemInfo.N_WARE_WGT;
                modItem.N_WARE_OUT_WGT     = itemInfo.N_WARE_OUT_WGT;
                modItem.N_FLAG             = itemInfo.N_FLAG;
                modItem.N_ISSUE_WGT        = i_Wgt;//下发量
                //modItem.C_CUST_NO = itemInfo.C_CUST_NO;
                //modItem.C_CUST_NAME = itemInfo.C_CUST_NAME;
                modItem.C_SALE_CHANNEL  = itemInfo.C_SALE_CHANNEL;
                modItem.C_PACK          = itemInfo.C_PACK;
                modItem.C_DESIGN_NO     = itemInfo.C_DESIGN_NO;
                modItem.N_GROUP_WGT     = itemInfo.N_GROUP_WGT;
                modItem.C_STA_ID        = modSta.C_ID;
                modItem.D_START_TIME    = itemInfo.D_START_TIME;
                modItem.D_END_TIME      = itemInfo.D_END_TIME;
                modItem.C_EMP_ID        = itemInfo.C_EMP_ID;
                modItem.D_MOD_DT        = RV.UI.ServerTime.timeNow();
                modItem.N_ROLL_WGT      = itemInfo.N_ROLL_WGT;
                modItem.N_MACH_WGT      = itemInfo.N_MACH_WGT;
                modItem.C_CAST_NO       = itemInfo.C_CAST_NO;
                modItem.C_INITIALIZE_ID = itemInfo.C_INITIALIZE_ID;
                modItem.C_FREE_TERM     = itemInfo.C_FREE_TERM;
                modItem.C_FREE_TERM2    = itemInfo.C_FREE_TERM2;
                if (!string.IsNullOrWhiteSpace(area))
                {
                    modItem.C_AREA = area;
                }
                modItem.C_PCLX            = itemInfo.C_PCLX;
                modItem.C_SFHL            = itemInfo.C_SFHL;
                modItem.D_HL_START_TIME   = itemInfo.D_HL_START_TIME;
                modItem.D_HL_END_TIME     = itemInfo.D_HL_END_TIME;
                modItem.C_SFHL_D          = itemInfo.C_SFHL_D;
                modItem.D_DHL_START_TIME  = itemInfo.D_DHL_START_TIME;
                modItem.D_DHL_END_TIME    = itemInfo.D_DHL_END_TIME;
                modItem.C_SFKP            = itemInfo.C_SFKP;
                modItem.D_KP_START_TIME   = itemInfo.D_KP_START_TIME;
                modItem.D_KP_END_TIME     = itemInfo.D_KP_END_TIME;
                modItem.C_SFXM            = itemInfo.C_SFXM;
                modItem.D_XM_START_TIME   = itemInfo.D_XM_START_TIME;
                modItem.D_XM_END_TIME     = itemInfo.D_XM_END_TIME;
                modItem.N_UPLOADSTATUS    = itemInfo.N_UPLOADSTATUS;
                modItem.C_MATRL_CODE_SLAB = itemInfo.C_MATRL_CODE_SLAB;
                modItem.C_MATRL_NAME_SLAB = itemInfo.C_MATRL_NAME_SLAB;
                modItem.C_SLAB_SIZE       = itemInfo.C_SLAB_SIZE;
                modItem.N_SLAB_LENGTH     = itemInfo.N_SLAB_LENGTH;
                modItem.N_SLAB_PW         = itemInfo.N_SLAB_PW;
                modItem.D_CAN_ROLL_TIME   = itemInfo.D_CAN_ROLL_TIME;
                modItem.C_ROUTE           = itemInfo.C_ROUTE;
                modItem.N_DIAMETER        = itemInfo.N_DIAMETER;
                modItem.C_XM_YQ           = itemInfo.C_XM_YQ;
                modItem.N_JRL_WD          = itemInfo.N_JRL_WD;
                modItem.N_JRL_SJ          = itemInfo.N_JRL_SJ;
                modItem.C_STL_GRD_SLAB    = itemInfo.C_STL_GRD_SLAB;
                modItem.C_STD_CODE_SLAB   = itemInfo.C_STD_CODE_SLAB;
                modItem.C_REMARK          = itemInfo.C_REMARK;//换产线原因
                //modItem.C_REMARK1 = itemInfo.C_REMARK1;
                modItem.C_REMARK2  = itemInfo.C_REMARK2;
                modItem.C_REMARK3  = itemInfo.C_REMARK3;//换规格原因
                modItem.C_REMARK4  = itemInfo.C_REMARK4;
                modItem.C_REMARK5  = itemInfo.C_REMARK5;
                modItem.N_IS_MERGE = 1;

                #endregion

                if (!dalTrpPlanRollItem.Add_Tran(modItem))
                {
                    TransactionHelper.RollBack();
                    return("下发失败!");
                }

                if (ids.Count > 1)
                {
                    foreach (var id in ids)
                    {
                        var m = dal.GetModel(id);
                        m.C_ITEM_ID = modItem.C_ID;
                        m.N_STATUS  = 3;
                        dal.Update(m);
                    }
                }
                //if (!dalTrpPlanRoll.Update_Trans(modelPlan))
                //{
                //    TransactionHelper.RollBack();
                //    return "下发失败!";
                //}

                TransactionHelper.Commit();

                if (ids.Count > 1)
                {
                    Dal_TRP_PLAN_ROLL_ITEM_INFO_LOG dalLog = new Dal_TRP_PLAN_ROLL_ITEM_INFO_LOG();
                    foreach (var id in ids)
                    {
                        {
                            var m = dal.GetModel(id);
                            Mod_TRP_PLAN_ROLL_ITEM_INFO_LOG log = new Mod_TRP_PLAN_ROLL_ITEM_INFO_LOG();
                            log.C_ID              = m.C_ID;
                            log.C_PLAN_ROLL_ID    = m.C_PLAN_ROLL_ID;
                            log.C_MAT_CODE        = m.C_MAT_CODE;
                            log.C_MAT_NAME        = m.C_MAT_NAME;
                            log.C_SPEC            = m.C_SPEC;
                            log.C_STL_GRD         = m.C_STL_GRD;
                            log.C_STD_CODE        = m.C_STD_CODE;
                            log.C_MAT_NAME        = m.C_MATRL_CODE_SLAB;
                            log.C_MATRL_NAME_SLAB = m.C_MATRL_NAME_SLAB;
                            log.C_SLAB_SIZE       = m.C_SLAB_SIZE;
                            log.N_SLAB_LENGTH     = m.N_SLAB_LENGTH;
                            log.N_SLAB_PW         = m.N_SLAB_PW;
                            log.C_LINE_DESC       = m.C_LINE_DESC;
                            log.C_LINE_CODE       = m.C_LINE_CODE;
                            log.N_ISSUE_WGT       = m.N_ISSUE_WGT;
                            log.C_ITEM_ID         = m.C_ITEM_ID;
                            dalLog.Add(log);
                        }
                    }
                }

                return(result);
            }
            catch
            {
                TransactionHelper.RollBack();
                return("下发失败!");
            }
        }