/// <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("下发失败!"); } }
/// <summary> /// 增加一条数据 /// </summary> public bool Add(Mod_TRP_PLAN_ROLL_ITEM_INFO_LOG model) { return(dal.Add(model)); }