private void PLANADD(int item) { DataRow dr = gv_DDFA.GetDataRow(item); int count = bll_TRP_PLAN_ROLL.GetFACount("", "");//该方案下该工位计划数量 Mod_TRP_PLAN_ROLL mod_TRP_PLAN_ROLL = new Mod_TRP_PLAN_ROLL(); mod_TRP_PLAN_ROLL.N_SORT = count + 1; mod_TRP_PLAN_ROLL.C_SPEC = dr["C_SPEC"].ToString(); mod_TRP_PLAN_ROLL.C_STD_CODE = dr["C_STD_CODE"].ToString(); mod_TRP_PLAN_ROLL.C_STL_GRD = dr["C_STL_GRD"].ToString(); mod_TRP_PLAN_ROLL.C_ORDER_NO = dr["C_ORDER_NO"].ToString(); mod_TRP_PLAN_ROLL.C_MAT_NAME = dr["C_MAT_NAME"].ToString(); mod_TRP_PLAN_ROLL.C_MAT_CODE = dr["C_MAT_CODE"].ToString(); mod_TRP_PLAN_ROLL.C_FREE_TERM = dr["C_FREE1"].ToString(); mod_TRP_PLAN_ROLL.C_FREE_TERM2 = dr["C_FREE2"].ToString(); mod_TRP_PLAN_ROLL.N_WGT = Convert.ToDecimal(dr["N_WGT"]); if (dr["C_LINE_NO"] == null || dr["C_LINE_NO"].ToString() == "") { MessageBox.Show(mod_TRP_PLAN_ROLL.C_STL_GRD + "未分配产线!"); return; } mod_TRP_PLAN_ROLL.C_STA_ID = dr["C_LINE_NO"].ToString(); if (txt_wgt1.Enabled == true) { mod_TRP_PLAN_ROLL.N_ROLL_PROD_WGT = Convert.ToDecimal(txt_wgt1.Text); } else { mod_TRP_PLAN_ROLL.N_ROLL_PROD_WGT = Convert.ToDecimal(dr["N_WGT"]) - Convert.ToDecimal(dr["N_ROLL_PROD_WGT"]); } if (mod_TRP_PLAN_ROLL.N_WGT <= 0) { return; } if (count > 0) { DataTable bdt = bll_TRP_PLAN_ROLL.GetList(Convert.ToInt32(mod_TRP_PLAN_ROLL.N_SORT - 1), "", mod_TRP_PLAN_ROLL.C_STA_ID).Tables[0]; if (bdt.Rows.Count > 0) { DateTime enddt = Convert.ToDateTime(bdt.Rows[0]["D_P_END_TIME"]);//上一计划结束时间 DataTable hggdt = bll_TPB_CHANGESPEC_TIME.GetList(1, mod_TRP_PLAN_ROLL.C_STA_ID, bdt.Rows[0]["C_SPEC"].ToString(), mod_TRP_PLAN_ROLL.C_SPEC).Tables[0]; if (hggdt.Rows.Count > 0) { mod_TRP_PLAN_ROLL.D_P_START_TIME = enddt.AddMinutes(Convert.ToDouble(hggdt.Rows[0]["N_TIME"])); } else { mod_TRP_PLAN_ROLL.D_P_START_TIME = enddt; } } } else { mod_TRP_PLAN_ROLL.D_P_START_TIME = RV.UI.ServerTime.timeNow(); } int cn = 0; if (!string.IsNullOrEmpty(dr["N_MACH_WGT"].ToString())) { cn = Convert.ToInt32(dr["N_MACH_WGT"].ToString()); } if (cn == 0) { cn = 50; } double db = Convert.ToDouble(mod_TRP_PLAN_ROLL.N_WGT) / Convert.ToDouble(cn); DateTime dt = Convert.ToDateTime(mod_TRP_PLAN_ROLL.D_P_START_TIME); dt = dt.AddHours(Convert.ToDouble(db)); mod_TRP_PLAN_ROLL.D_P_END_TIME = dt; Mod_TMO_ORDER modOrder = bll_order.GetModelByORDERNO(dr["C_ORDER_NO"].ToString()); modOrder.N_ROLL_PROD_WGT = Convert.ToDecimal(dr["N_WGT"]); bll_order.Update(modOrder); bll_TRP_PLAN_ROLL.Add(mod_TRP_PLAN_ROLL);//变更计划表 }