/// <summary> /// 生成牌号,基于炉次计划 /// </summary> /// <param name="current"></param> /// <returns></returns> private string BuildPaiHao(Mod_TPP_LGPC_LSB current) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); return(current.C_REMARK); }
/// <summary> /// 修改炉数 /// </summary> /// <param name="current"></param> /// <param name="ls"></param> public void ChangedLs(Mod_TPP_LGPC_LSB current, decimal ls) { // 最大,最小,正常炉数 decimal maxLs = 22m, minLs = 18m, normalLs = 20m; // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); // 差异炉数,正数增多炉数,负数减少炉数 var exceptLs = (int)((ls - current.N_ZJCLS) ?? 0); // 增多炉数 if (jcData.Count() == 0) { throw new Exception("没有炉次计划可供添加!"); } if (exceptLs > 0) { _helper.Add(current, exceptLs); } else { // 减少炉数,不违反订单最少炉数,直接减少,否则减少炉数,排列到最后一个浇次中 _helper.Remove(current, -exceptLs); } }
/// <summary> /// 根据分组号得到该组序号最大的排序号 /// </summary> /// <param name="N_GROUP">分组号</param> /// <returns></returns> public Mod_TPP_LGPC_LSB GetModelByGroup(int N_GROUP) { StringBuilder strSql = new StringBuilder(); strSql.Append(@"SELECT C_ID, C_CCM_ID, C_CCM_CODE, N_GROUP, N_TOTAL_WGT, N_ZJCLS, N_ZJCLZL, N_MLZL, N_SORT, C_STL_GRD,N_PRODUCE_TIME,N_ORDER_LS,N_JSCN,C_BY1,C_BY2,C_BY3 FROM TPP_LGPC_LSB T WHERE N_GROUP = " + N_GROUP); strSql.Append(" AND T.N_SORT ="); strSql.Append(" (SELECT MAX(A.N_SORT) FROM TPP_LGPC_LSB A WHERE A.N_GROUP = " + N_GROUP); strSql.Append(" ) "); Mod_TPP_LGPC_LSB model = new Mod_TPP_LGPC_LSB(); DataSet ds = DbHelperOra.Query(strSql.ToString()); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 获取浇次计划中最后几个炉次计划 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> /// <returns></returns> private List <Mod_TPP_LGPC_LCLSB> GetLast(Mod_TPP_LGPC_LSB current, int lcNum) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID) .OrderBy(w => w.C_STATE != "1") .ThenByDescending(w => w.N_SORT); return(jcData.Take(lcNum).ToList()); }
/// <summary> /// 计算浇次计划炉数 /// </summary> /// <param name="current"></param> private void CountLs(Mod_TPP_LGPC_LSB current) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); current.N_ZJCLS = jcData.Count(); current.N_ZJCLZL = jcData.Sum(w => w.N_SLAB_PW); current.N_ORDER_LS = jcData.Where(w => w.C_STATE != "1").Count(); current.C_REMARK = BuildPaiHao(current); }
/// <summary> /// 移除空的浇次计划,及关联的炉次计划 /// </summary> /// <param name="current"></param> private void RemoveEmptyJc(Mod_TPP_LGPC_LSB current) { // 炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); if (jcData.All(w => w.C_STATE == "1")) { LCLSBList.RemoveAll(x => jcData.Contains(x)); LSBList.Remove(current); } }
/// <summary> /// 直接添加炉次计划,不考虑浇次炉数 /// </summary> /// <param name="current"></param> /// <param name="lcData"></param> private void AddOrdLc(Mod_TPP_LGPC_LSB current, params Mod_TPP_LGPC_LCLSB[] lcData) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); foreach (var item in lcData) { decimal max = jcData.Max(x => x.N_SORT) ?? 0; item.C_FK = current.C_ID; item.N_SORT = max + 1; item.C_STATE = "0"; LCLSBList.Add(item); } }
/// <summary> /// 直接从后往前移除炉次计划,不考虑浇次炉数 /// 注:优先移除非订单的炉次 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> private void RemoveLcWithMoreOrd(Mod_TPP_LGPC_LSB current, int lcNum) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); var removeItem = GetLast(current, lcNum); LCLSBList.RemoveAll(w => removeItem.Contains(w)); //for (int i = 0; i < lcNum; i++) //{ // LCLSBList.RemoveAll(x => x.C_FK == current.C_ID && x.N_SORT == jcData.Max(l => l.N_SORT)); //} }
/// <summary> /// 直接添加炉次计划,不考虑浇次炉数 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> private void AddLc(Mod_TPP_LGPC_LSB current, int lcNum) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); if (jcData.Count() > 0) { for (int i = 0; i < lcNum; i++) { LCLSBList.Add(jcData.OrderBy(w => w.N_SORT).LastOrDefault().Clone()); } } CountLs(current); }
/// <summary> /// 移除炉次计划,满足订单炉次,将移除的订单炉次添加到最后或新的浇次中 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> public void Remove(Mod_TPP_LGPC_LSB current, int lcNum) { if ((current.N_ZJCLS - current.N_ORDER_LS) >= lcNum) { // 移除后还能满足订单 RemoveLcWithMoreOrd(current, lcNum); } else { // 移除不能满足订单最低炉数 RemoveLcWithLessOrd(current, lcNum); } CountLs(current); }
/// <summary> /// 移除炉次计划将移除的订单炉次计划添加到最后浇次中,考虑浇次最大炉数 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> private void RemoveLcWithLessOrd(Mod_TPP_LGPC_LSB current, int lcNum) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); var removeLcData = GetLast(current, lcNum); RemoveLcWithMoreOrd(current, lcNum); removeLcData.RemoveAll(x => x.C_STATE == "1"); // 将炉次计划添加到最后浇次中,或新增浇次并满足最低炉次 var lastJc = LSBList.Where(w => w.N_GROUP == current.N_GROUP).OrderBy(w => w.N_SORT).LastOrDefault(); if (lastJc == current) { // 如果当前浇次就是最后一个浇次,新增浇次 lastJc = current.Clone(); LSBList.Add(lastJc); } ReplaceLc(lastJc, removeLcData); }
/// <summary> /// 添加炉次计划,考虑浇次计划,合并浇次计划 /// </summary> /// <param name="current"></param> /// <param name="lcNum"></param> public void Add(Mod_TPP_LGPC_LSB current, int lcNum) { var grpJc = LSBList.Where(w => w.N_GROUP == current.N_GROUP).OrderByDescending(w => w.N_SORT).ToList(); foreach (var item in grpJc) { if (lcNum == 0 || item == current) { break; } // 炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == item.C_ID).Where(w => w.C_STATE != "1"); foreach (var lcItem in jcData.OrderByDescending(w => w.N_SORT)) { if (lcNum == 0) { break; } LCLSBList.Remove(lcItem); AddOrdLc(current, lcItem); lcNum--; } AddFullLc(item, new List <Mod_TPP_LGPC_LCLSB> { }); RemoveEmptyJc(item); CountLs(item); } if (lcNum > 0) { AddLc(current, lcNum); } CountLs(current); }
/// <summary> /// 保存计划,TODO 事物控制 /// </summary> /// <param name="LSBList"></param> /// <param name="LCLSBList"></param> public void SavePlan(List <Mod_TPP_LGPC_LSB> LSBList, List <Mod_TPP_LGPC_LCLSB> LCLSBList) { foreach (var item in LSBList.OrderBy(w => w.N_SORT).ThenBy(w => w.N_GROUP)) { Mod_TPP_LGPC_LSB modpx = this.GetModel(item.C_ID); if (modpx != null) { // 保存排序 modpx.N_SORT = item.N_SORT; // 保存停机时间 modpx.N_PRODUCE_TIME = item.N_PRODUCE_TIME; // 炉次数据 modpx.N_ZJCLS = item.N_ZJCLS; modpx.N_ZJCLZL = item.N_ZJCLZL; modpx.N_ORDER_LS = item.N_ORDER_LS; this.Update(modpx); } else { // 新增 this.Add(item); } } // 新增炉次计划 foreach (var item in LCLSBList) { bool modpx = dal_lclsb.Exists(item.C_ID); if (modpx) { dal_lclsb.Update(item); } else { dal_lclsb.Add(item); } } }
/// <summary> /// 添加整浇次炉次 /// </summary> /// <param name="current"></param> /// <param name="replaceLcDat"></param> private void AddFullLc(Mod_TPP_LGPC_LSB current, List <Mod_TPP_LGPC_LCLSB> replaceLcData) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); if (replaceLcData.Any()) { // 最大可以添加的炉次 var maxAddCount = _maxLc - jcData.Count(); maxAddCount = maxAddCount > replaceLcData.Count ? replaceLcData.Count : maxAddCount; var replaceItems = replaceLcData.Take((int)maxAddCount).ToList(); AddOrdLc(current, replaceItems.ToArray()); replaceLcData.RemoveAll(w => replaceItems.Contains(w)); } // 添加整浇次炉次 var elseAdd = (int)_minLc - jcData.Count(); if (elseAdd > 0) { AddLc(current, elseAdd); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Mod_TPP_LGPC_LSB GetModel(string C_ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_CCM_ID,C_CCM_CODE,N_GROUP,N_TOTAL_WGT,N_ZJCLS,N_ZJCLZL,N_MLZL,N_SORT,C_STL_GRD,N_PRODUCE_TIME,N_JSCN,C_BY1,C_BY2,C_BY3,C_RH,C_DFP_HL,C_HL,C_XM,N_ORDER_LS,D_DFPHL_START_TIME,D_DFPHL_END_TIME,D_KP_START_TIME,D_KP_END_TIME,D_HL_START_TIME,D_HL_END_TIME,D_PLAN_KY_TIME,C_PLAN_ROLL,D_ZZ_START_TIME,D_ZZ_END_TIME,D_XM_START_TIME,D_XM_END_TIME,C_STD_CODE,C_SLAB_TYPE,C_STL_GRD_TYPE,C_PROD_NAME,C_PROD_KIND,N_DFP_HL_TIME,N_HL_TIME,N_XM_TIME,N_GG,N_CCM_TIME,C_TJ_REMARK,C_TL,N_RH,N_TL,N_GZSL,C_REMARK,N_XM,N_DHL,N_HL,N_STATUS,D_P_START_TIME,D_P_END_TIME,N_DFP_RZ,N_RZP_RZ,C_RH_SFJS from TPP_LGPC_LSB "); strSql.Append(" where C_ID=:C_ID "); OracleParameter[] parameters = { new OracleParameter(":C_ID", OracleDbType.Varchar2, 100) }; parameters[0].Value = C_ID; Mod_TPP_LGPC_LSB model = new Mod_TPP_LGPC_LSB(); DataSet ds = DbHelperOra.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 递归替换炉次计划 /// 满足最小炉次,如果超过最大炉次新增浇次计划 /// </summary> /// <param name="current"></param> /// <param name="replaceLcData"></param> private void ReplaceLc(Mod_TPP_LGPC_LSB current, List <Mod_TPP_LGPC_LCLSB> replaceLcData) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); // 替换的不是订单类型的炉次 Replace(current, replaceLcData); if (replaceLcData.Count > 0) { // 添加最少浇次炉次数据 AddFullLc(current, replaceLcData); } if (replaceLcData.Count > 0) { // 新增浇次递归,满足最低炉次 var addJc = current.Clone(); LSBList.Add(addJc); ReplaceLc(addJc, replaceLcData); } CountLs(current); }
/// <summary> /// 替换Type=1的炉次 /// </summary> /// <param name="current"></param> /// <param name="replaceLcData"></param> private void Replace(Mod_TPP_LGPC_LSB current, List <Mod_TPP_LGPC_LCLSB> replaceLcData) { // 浇次炉次数据 var jcData = LCLSBList.Where(w => w.C_FK == current.C_ID); // 可替换的炉次 var dataElse = jcData.Where(w => w.C_STATE == "1").ToList(); foreach (var item in dataElse) { if (replaceLcData.Count == 0) { break; } var replaceItem = replaceLcData.FirstOrDefault(); replaceItem.N_SORT = item.N_SORT; replaceItem.C_FK = current.C_ID; var index = LCLSBList.IndexOf(item); LCLSBList.RemoveAt(index); LCLSBList.Insert(index, replaceItem); replaceLcData.Remove(replaceItem); } }
/// <summary> /// 炼钢数据表 /// </summary> /// <param name="dt"></param> public void OrderLGAuto(DataTable dt) { try { //获取未完成炼钢计划的计划结束时间和计划钢种 DateTime lastdt = System.DateTime.Now;//计划结束时间 DataTable dtpcOrdercl = dt.Copy(); dtpcOrdercl.Clear(); for (int i = 0; i < dt.Rows.Count; i++) { dtpcOrdercl.Rows.Add(dt.Rows[i].ItemArray); } dtpcOrdercl.DefaultView.Sort = " C_CCM_NO, D_DELIVERY_DT,C_ORDER_LEV,C_STL_GRD,C_STD_CODE "; //将选中的订单按照排产目标进行排序 dtpcOrdercl = dtpcOrdercl.DefaultView.ToTable(); //获取的需要初始化的表 #region 照可混浇规则进行钢种排产分组 //for (int j = 0; j < dtpcOrdercl.Rows.Count; j++) //{ // Mod_TMO_ORDER mod = bll_order.GetModel(dtpcOrdercl.Rows[j]["C_ID"].ToString()); // if (mod.N_GROUP == null && dtpcOrdercl.Rows[j]["N_GROUP"].ToString().Trim() == "") // { // string ss = dtpcOrdercl.Select("", "N_GROUP DESC")[0]["N_GROUP"].ToString().Trim() == "" ? "0" : dtpcOrdercl.Select("", "N_GROUP DESC")[0]["N_GROUP"].ToString().Trim();//获取未排产炼钢订单中最大分组序号 // int a = Convert.ToInt32(ss) + 1;//新的分组序号 // dtpcOrdercl.Rows[j]["N_GROUP"] = a; // mod.N_GROUP = a; // bll_order.Update(mod); // for (int k = 0; k < dtpcOrdercl.Rows.Count; k++) // { // if (dtpcOrdercl.Rows[k]["N_GROUP"].ToString().Trim() == "") // { // //判断当前钢种和此钢种能否混浇分在同一连铸 // //注:可能5#连铸和7#连铸/3#连铸和4#连铸能直接替换*********** // if (mod.C_STL_GRD == dtpcOrdercl.Rows[k]["C_STL_GRD"].ToString() && mod.C_STD_CODE == dtpcOrdercl.Rows[k]["C_STD_CODE"].ToString() && bll_gw.Get_STA_DESC(mod.C_CCM_NO) == dtpcOrdercl.Rows[k]["C_CCM_NO"].ToString()) // { // dtpcOrdercl.Rows[k]["N_GROUP"] = a; // Mod_TMO_ORDER mod1 = bll_order.GetModel(dtpcOrdercl.Rows[k]["C_ID"].ToString()); // mod1.N_GROUP = a; // bll_order.Update(mod1); // } // else if (bll_xlgz.NFHJ(mod.C_STL_GRD, mod.C_STD_CODE, dtpcOrdercl.Rows[k]["C_STL_GRD"].ToString(), dtpcOrdercl.Rows[k]["C_STD_CODE"].ToString()) && bll_gw.Get_STA_DESC(mod.C_CCM_NO) == dtpcOrdercl.Rows[k]["C_CCM_NO"].ToString()) // { // dtpcOrdercl.Rows[k]["N_GROUP"] = a; // Mod_TMO_ORDER mod1 = bll_order.GetModel(dtpcOrdercl.Rows[k]["C_ID"].ToString()); // mod1.N_GROUP = a; // bll_order.Update(mod1); // } // } // } // } //} #endregion dtpcOrdercl.DefaultView.Sort = " N_GROUP "; DataTable dt3 = dtpcOrdercl.DefaultView.ToTable();//分组后待排产炼钢订单 #region 分组完成后进行炼钢排产 DataTable dtDP = bll_order.GetInfoByGroup("").Tables[0]; if (dtDP.Rows.Count > 0) { bll_lclsb.DeleteByCCM(""); bll_lsb.Delete(); int srot = 0; for (int k = 0; k < dtDP.Rows.Count; k++) { #region 5#cc||7#cc if (dtDP.Rows[k]["连铸代码"].ToString() == "5#CC" || dtDP.Rows[k]["连铸代码"].ToString() == "7#CC") { decimal mlzl = 75; if (Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString()) == 0) //没维护整浇次炉数的数据 { int n_zjcls = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()) / 18)); //整浇次炉数;最后一个浇次不足哦5炉按15炉排 for (int i = 0; i < n_zjcls; i++) { srot = srot + 1; Mod_TPP_LGPC_LSB mod = new Mod_TPP_LGPC_LSB(); mod.C_CCM_CODE = dtDP.Rows[k]["连铸代码"].ToString(); mod.C_CCM_ID = dtDP.Rows[k]["连铸主键"].ToString(); mod.N_GROUP = Convert.ToInt32(dtDP.Rows[k]["组号"].ToString()); mod.N_MLZL = mlzl; mod.N_SORT = srot; mod.N_TOTAL_WGT = Convert.ToDecimal(dtDP.Rows[k]["待产总量"].ToString()); mod.N_ORDER_LS = Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()); if (i == n_zjcls - 1) { if ((mod.N_ORDER_LS - 18 * i) <= 15) { mod.N_ZJCLS = 15; mod.N_ZJCLZL = 15 * mlzl; } else { mod.N_ZJCLS = mod.N_ORDER_LS - 18 * i; mod.N_ZJCLZL = (mod.N_ORDER_LS - 18 * i) * mlzl; } } else { mod.N_ZJCLS = 18; mod.N_ZJCLZL = 18 * mlzl; } mod.N_JSCN = Convert.ToDecimal(dtDP.Rows[k]["机时产能"].ToString()); mod.C_STL_GRD = dtDP.Rows[k]["牌号"].ToString(); bll_lsb.Add(mod); } } else { int n_zjcls = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()) / Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString())));//整浇次炉数 for (int i = 0; i < n_zjcls; i++) { srot = srot + 1; Mod_TPP_LGPC_LSB mod = new Mod_TPP_LGPC_LSB(); mod.C_CCM_CODE = dtDP.Rows[k]["连铸代码"].ToString(); mod.C_CCM_ID = dtDP.Rows[k]["连铸主键"].ToString(); mod.N_GROUP = Convert.ToInt32(dtDP.Rows[k]["组号"].ToString()); mod.N_MLZL = mlzl; mod.N_SORT = srot; mod.N_TOTAL_WGT = Convert.ToDecimal(dtDP.Rows[k]["待产总量"].ToString()); mod.N_ORDER_LS = Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()); mod.N_ZJCLS = Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString()); mod.N_ZJCLZL = mod.N_ZJCLS * mlzl; mod.N_JSCN = Convert.ToDecimal(dtDP.Rows[k]["机时产能"].ToString()); mod.C_STL_GRD = dtDP.Rows[k]["牌号"].ToString(); bll_lsb.Add(mod); } } } #endregion #region 其他 else { decimal mlzl = 46; if (Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString()) == 0) //没维护整浇次炉数的数据 { int n_zjcls = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()) / 20)); //整浇次炉数;最后一个浇次不足哦5炉按15炉排 for (int i = 0; i < n_zjcls; i++) { srot = srot + 1; Mod_TPP_LGPC_LSB mod = new Mod_TPP_LGPC_LSB(); mod.C_CCM_CODE = dtDP.Rows[k]["连铸代码"].ToString(); mod.C_CCM_ID = dtDP.Rows[k]["连铸主键"].ToString(); mod.N_GROUP = Convert.ToInt32(dtDP.Rows[k]["组号"].ToString()); mod.N_MLZL = mlzl; mod.N_SORT = srot; mod.N_TOTAL_WGT = Convert.ToDecimal(dtDP.Rows[k]["待产总量"].ToString()); mod.N_ORDER_LS = Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()); if (i == n_zjcls - 1) { if ((mod.N_ORDER_LS - 20 * i) <= 15) { mod.N_ZJCLS = 15; mod.N_ZJCLZL = 15 * mlzl; } else { mod.N_ZJCLS = mod.N_ORDER_LS - 20 * i; mod.N_ZJCLZL = (mod.N_ORDER_LS - 20 * i) * mlzl; } } else { mod.N_ZJCLS = 20; mod.N_ZJCLZL = 20 * mlzl; } mod.N_JSCN = Convert.ToDecimal(dtDP.Rows[k]["机时产能"].ToString()); mod.C_STL_GRD = dtDP.Rows[k]["牌号"].ToString(); bll_lsb.Add(mod); } } else { int n_zjcls = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()) / Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString())));//整浇次炉数 for (int i = 0; i < n_zjcls; i++) { srot = srot + 1; Mod_TPP_LGPC_LSB mod = new Mod_TPP_LGPC_LSB(); mod.C_CCM_CODE = dtDP.Rows[k]["连铸代码"].ToString(); mod.C_CCM_ID = dtDP.Rows[k]["连铸主键"].ToString(); mod.N_GROUP = Convert.ToInt32(dtDP.Rows[k]["组号"].ToString()); mod.N_MLZL = mlzl; mod.N_SORT = srot; mod.N_TOTAL_WGT = Convert.ToDecimal(dtDP.Rows[k]["待产总量"].ToString()); mod.N_ORDER_LS = Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()); mod.N_ZJCLS = Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString()); mod.N_ZJCLZL = mod.N_ZJCLS * mlzl; mod.N_JSCN = Convert.ToDecimal(dtDP.Rows[k]["机时产能"].ToString()); mod.C_STL_GRD = dtDP.Rows[k]["牌号"].ToString(); bll_lsb.Add(mod); } } } #endregion //for (int m = 0; m <Convert.ToInt32(dtDP.Rows[k]["浇次数"].ToString()); m++) //{ // srot = srot + 1; // Mod_TPP_LGPC_LSB mod = new Mod_TPP_LGPC_LSB(); // mod.C_CCM_CODE = dtDP.Rows[k]["连铸代码"].ToString(); // mod.C_CCM_ID = dtDP.Rows[k]["连铸主键"].ToString(); // mod.N_GROUP = Convert.ToInt32(dtDP.Rows[k]["组号"].ToString()); // decimal mlzl = 46; // if (dtDP.Rows[k]["连铸代码"].ToString()== "5#CC"|| dtDP.Rows[k]["连铸代码"].ToString() == "7#CC") // { // mlzl = 75; // } // mod.N_MLZL = mlzl; // mod.N_SORT = srot; // mod.N_TOTAL_WGT = Convert.ToDecimal(dtDP.Rows[k]["待产总量"].ToString()); // mod.N_ZJCLS = Convert.ToDecimal(dtDP.Rows[k]["整浇次炉数"].ToString()); // mod.N_ZJCLZL= Convert.ToDecimal(dtDP.Rows[k]["整浇次重量"].ToString()); // mod.N_ORDER_LS= Convert.ToDecimal(dtDP.Rows[k]["炉数"].ToString()); // mod.N_JSCN = Convert.ToDecimal(dtDP.Rows[k]["机时产能"].ToString()); // mod.C_STL_GRD= dtDP.Rows[k]["牌号"].ToString(); // bll_lsb.Add(mod); //} } //DataTable lsb = bll_lsb.GetList("").Tables[0]; //FrmPO_SCDD_PC frm = new FrmPO_SCDD_PC(lsb); //frm.ShowDialog(); } #endregion } catch (Exception ex) { } }
/// <summary> /// 得到一个对象实体 /// </summary> public Mod_TPP_LGPC_LSB DataRowToModel(DataRow row) { Mod_TPP_LGPC_LSB model = new Mod_TPP_LGPC_LSB(); if (row != null) { if (row["C_ID"] != null) { model.C_ID = row["C_ID"].ToString(); } if (row["C_CCM_ID"] != null) { model.C_CCM_ID = row["C_CCM_ID"].ToString(); } if (row["C_CCM_CODE"] != null) { model.C_CCM_CODE = row["C_CCM_CODE"].ToString(); } if (row["N_GROUP"] != null && row["N_GROUP"].ToString() != "") { model.N_GROUP = decimal.Parse(row["N_GROUP"].ToString()); } if (row["N_TOTAL_WGT"] != null && row["N_TOTAL_WGT"].ToString() != "") { model.N_TOTAL_WGT = decimal.Parse(row["N_TOTAL_WGT"].ToString()); } if (row["N_ZJCLS"] != null && row["N_ZJCLS"].ToString() != "") { model.N_ZJCLS = decimal.Parse(row["N_ZJCLS"].ToString()); } if (row["N_ZJCLZL"] != null && row["N_ZJCLZL"].ToString() != "") { model.N_ZJCLZL = decimal.Parse(row["N_ZJCLZL"].ToString()); } if (row["N_MLZL"] != null && row["N_MLZL"].ToString() != "") { model.N_MLZL = decimal.Parse(row["N_MLZL"].ToString()); } if (row["N_SORT"] != null && row["N_SORT"].ToString() != "") { model.N_SORT = decimal.Parse(row["N_SORT"].ToString()); } if (row["C_STL_GRD"] != null) { model.C_STL_GRD = row["C_STL_GRD"].ToString(); } if (row["N_PRODUCE_TIME"] != null && row["N_PRODUCE_TIME"].ToString() != "") { model.N_PRODUCE_TIME = decimal.Parse(row["N_PRODUCE_TIME"].ToString()); } if (row["N_JSCN"] != null && row["N_JSCN"].ToString() != "") { model.N_JSCN = decimal.Parse(row["N_JSCN"].ToString()); } if (row["C_BY1"] != null) { model.C_BY1 = row["C_BY1"].ToString(); } if (row["C_BY2"] != null) { model.C_BY2 = row["C_BY2"].ToString(); } if (row["C_BY3"] != null) { model.C_BY3 = row["C_BY3"].ToString(); } if (row["C_RH"] != null) { model.C_RH = row["C_RH"].ToString(); } if (row["C_DFP_HL"] != null) { model.C_DFP_HL = row["C_DFP_HL"].ToString(); } if (row["C_HL"] != null) { model.C_HL = row["C_HL"].ToString(); } if (row["C_XM"] != null) { model.C_XM = row["C_XM"].ToString(); } if (row["N_ORDER_LS"] != null && row["N_ORDER_LS"].ToString() != "") { model.N_ORDER_LS = decimal.Parse(row["N_ORDER_LS"].ToString()); } if (row["D_DFPHL_START_TIME"] != null && row["D_DFPHL_START_TIME"].ToString() != "") { model.D_DFPHL_START_TIME = DateTime.Parse(row["D_DFPHL_START_TIME"].ToString()); } if (row["D_DFPHL_END_TIME"] != null && row["D_DFPHL_END_TIME"].ToString() != "") { model.D_DFPHL_END_TIME = DateTime.Parse(row["D_DFPHL_END_TIME"].ToString()); } if (row["D_KP_START_TIME"] != null && row["D_KP_START_TIME"].ToString() != "") { model.D_KP_START_TIME = DateTime.Parse(row["D_KP_START_TIME"].ToString()); } if (row["D_KP_END_TIME"] != null && row["D_KP_END_TIME"].ToString() != "") { model.D_KP_END_TIME = DateTime.Parse(row["D_KP_END_TIME"].ToString()); } if (row["D_HL_START_TIME"] != null && row["D_HL_START_TIME"].ToString() != "") { model.D_HL_START_TIME = DateTime.Parse(row["D_HL_START_TIME"].ToString()); } if (row["D_HL_END_TIME"] != null && row["D_HL_END_TIME"].ToString() != "") { model.D_HL_END_TIME = DateTime.Parse(row["D_HL_END_TIME"].ToString()); } if (row["D_PLAN_KY_TIME"] != null && row["D_PLAN_KY_TIME"].ToString() != "") { model.D_PLAN_KY_TIME = DateTime.Parse(row["D_PLAN_KY_TIME"].ToString()); } if (row["C_PLAN_ROLL"] != null) { model.C_PLAN_ROLL = row["C_PLAN_ROLL"].ToString(); } if (row["D_ZZ_START_TIME"] != null && row["D_ZZ_START_TIME"].ToString() != "") { model.D_ZZ_START_TIME = DateTime.Parse(row["D_ZZ_START_TIME"].ToString()); } if (row["D_ZZ_END_TIME"] != null && row["D_ZZ_END_TIME"].ToString() != "") { model.D_ZZ_END_TIME = DateTime.Parse(row["D_ZZ_END_TIME"].ToString()); } if (row["D_XM_START_TIME"] != null && row["D_XM_START_TIME"].ToString() != "") { model.D_XM_START_TIME = DateTime.Parse(row["D_XM_START_TIME"].ToString()); } if (row["D_XM_END_TIME"] != null && row["D_XM_END_TIME"].ToString() != "") { model.D_XM_END_TIME = DateTime.Parse(row["D_XM_END_TIME"].ToString()); } if (row["C_STD_CODE"] != null) { model.C_STD_CODE = row["C_STD_CODE"].ToString(); } if (row["C_SLAB_TYPE"] != null) { model.C_SLAB_TYPE = row["C_SLAB_TYPE"].ToString(); } if (row["C_STL_GRD_TYPE"] != null) { model.C_STL_GRD_TYPE = row["C_STL_GRD_TYPE"].ToString(); } if (row["C_PROD_NAME"] != null) { model.C_PROD_NAME = row["C_PROD_NAME"].ToString(); } if (row["C_PROD_KIND"] != null) { model.C_PROD_KIND = row["C_PROD_KIND"].ToString(); } if (row["N_DFP_HL_TIME"] != null && row["N_DFP_HL_TIME"].ToString() != "") { model.N_DFP_HL_TIME = decimal.Parse(row["N_DFP_HL_TIME"].ToString()); } if (row["N_HL_TIME"] != null && row["N_HL_TIME"].ToString() != "") { model.N_HL_TIME = decimal.Parse(row["N_HL_TIME"].ToString()); } if (row["N_XM_TIME"] != null && row["N_XM_TIME"].ToString() != "") { model.N_XM_TIME = decimal.Parse(row["N_XM_TIME"].ToString()); } if (row["N_GG"] != null && row["N_GG"].ToString() != "") { model.N_GG = decimal.Parse(row["N_GG"].ToString()); } if (row["N_CCM_TIME"] != null && row["N_CCM_TIME"].ToString() != "") { model.N_CCM_TIME = decimal.Parse(row["N_CCM_TIME"].ToString()); } if (row["C_TJ_REMARK"] != null) { model.C_TJ_REMARK = row["C_TJ_REMARK"].ToString(); } if (row["C_TL"] != null) { model.C_TL = row["C_TL"].ToString(); } if (row["N_RH"] != null && row["N_RH"].ToString() != "") { model.N_RH = decimal.Parse(row["N_RH"].ToString()); } if (row["N_TL"] != null && row["N_TL"].ToString() != "") { model.N_TL = decimal.Parse(row["N_TL"].ToString()); } if (row["N_GZSL"] != null && row["N_GZSL"].ToString() != "") { model.N_GZSL = decimal.Parse(row["N_GZSL"].ToString()); } if (row["C_REMARK"] != null) { model.C_REMARK = row["C_REMARK"].ToString(); } if (row["N_XM"] != null && row["N_XM"].ToString() != "") { model.N_XM = decimal.Parse(row["N_XM"].ToString()); } if (row["N_DHL"] != null && row["N_DHL"].ToString() != "") { model.N_DHL = decimal.Parse(row["N_DHL"].ToString()); } if (row["N_HL"] != null && row["N_HL"].ToString() != "") { model.N_HL = decimal.Parse(row["N_HL"].ToString()); } if (row["N_STATUS"] != null && row["N_STATUS"].ToString() != "") { model.N_STATUS = decimal.Parse(row["N_STATUS"].ToString()); } if (row["D_P_START_TIME"] != null && row["D_P_START_TIME"].ToString() != "") { model.D_P_START_TIME = DateTime.Parse(row["D_P_START_TIME"].ToString()); } if (row["D_P_END_TIME"] != null && row["D_P_END_TIME"].ToString() != "") { model.D_P_END_TIME = DateTime.Parse(row["D_P_END_TIME"].ToString()); } if (row["N_DFP_RZ"] != null && row["N_DFP_RZ"].ToString() != "") { model.N_DFP_RZ = decimal.Parse(row["N_DFP_RZ"].ToString()); } if (row["N_RZP_RZ"] != null && row["N_RZP_RZ"].ToString() != "") { model.N_RZP_RZ = decimal.Parse(row["N_RZP_RZ"].ToString()); } if (row["C_RH_SFJS"] != null) { model.C_RH_SFJS = row["C_RH_SFJS"].ToString(); } } return(model); }
/// <summary> /// 增加一条数据 /// </summary> public bool Add(Mod_TPP_LGPC_LSB model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TPP_LGPC_LSB("); strSql.Append("C_ID,C_CCM_ID,C_CCM_CODE,N_GROUP,N_TOTAL_WGT,N_ZJCLS,N_ZJCLZL,N_MLZL,N_SORT,C_STL_GRD,N_PRODUCE_TIME,N_JSCN,C_BY1,C_BY2,C_BY3,C_RH,C_DFP_HL,C_HL,C_XM,N_ORDER_LS,D_DFPHL_START_TIME,D_DFPHL_END_TIME,D_KP_START_TIME,D_KP_END_TIME,D_HL_START_TIME,D_HL_END_TIME,D_PLAN_KY_TIME,C_PLAN_ROLL,D_ZZ_START_TIME,D_ZZ_END_TIME,D_XM_START_TIME,D_XM_END_TIME,C_STD_CODE,C_SLAB_TYPE,C_STL_GRD_TYPE,C_PROD_NAME,C_PROD_KIND,N_DFP_HL_TIME,N_HL_TIME,N_XM_TIME,N_GG,N_CCM_TIME,C_TJ_REMARK,C_TL,N_RH,N_TL,N_GZSL,C_REMARK,N_XM,N_DHL,N_HL,N_STATUS,D_P_START_TIME,D_P_END_TIME,N_DFP_RZ,N_RZP_RZ,C_RH_SFJS)"); strSql.Append(" values ("); strSql.Append(":C_ID,:C_CCM_ID,:C_CCM_CODE,:N_GROUP,:N_TOTAL_WGT,:N_ZJCLS,:N_ZJCLZL,:N_MLZL,:N_SORT,:C_STL_GRD,:N_PRODUCE_TIME,:N_JSCN,:C_BY1,:C_BY2,:C_BY3,:C_RH,:C_DFP_HL,:C_HL,:C_XM,:N_ORDER_LS,:D_DFPHL_START_TIME,:D_DFPHL_END_TIME,:D_KP_START_TIME,:D_KP_END_TIME,:D_HL_START_TIME,:D_HL_END_TIME,:D_PLAN_KY_TIME,:C_PLAN_ROLL,:D_ZZ_START_TIME,:D_ZZ_END_TIME,:D_XM_START_TIME,:D_XM_END_TIME,:C_STD_CODE,:C_SLAB_TYPE,:C_STL_GRD_TYPE,:C_PROD_NAME,:C_PROD_KIND,:N_DFP_HL_TIME,:N_HL_TIME,:N_XM_TIME,:N_GG,:N_CCM_TIME,:C_TJ_REMARK,:C_TL,:N_RH,:N_TL,:N_GZSL,:C_REMARK,:N_XM,:N_DHL,:N_HL,:N_STATUS,:D_P_START_TIME,:D_P_END_TIME,:N_DFP_RZ,:N_RZP_RZ,:C_RH_SFJS)"); OracleParameter[] parameters = { new OracleParameter(":C_ID", OracleDbType.Varchar2, 100), new OracleParameter(":C_CCM_ID", OracleDbType.Varchar2, 100), new OracleParameter(":C_CCM_CODE", OracleDbType.Varchar2, 100), new OracleParameter(":N_GROUP", OracleDbType.Decimal, 4), new OracleParameter(":N_TOTAL_WGT", OracleDbType.Decimal, 15), new OracleParameter(":N_ZJCLS", OracleDbType.Decimal, 4), new OracleParameter(":N_ZJCLZL", OracleDbType.Decimal, 4), new OracleParameter(":N_MLZL", OracleDbType.Decimal, 15), new OracleParameter(":N_SORT", OracleDbType.Decimal, 10), new OracleParameter(":C_STL_GRD", OracleDbType.Varchar2, 500), new OracleParameter(":N_PRODUCE_TIME", OracleDbType.Decimal, 15), new OracleParameter(":N_JSCN", OracleDbType.Decimal, 4), new OracleParameter(":C_BY1", OracleDbType.Varchar2, 100), new OracleParameter(":C_BY2", OracleDbType.Varchar2, 100), new OracleParameter(":C_BY3", OracleDbType.Varchar2, 100), new OracleParameter(":C_RH", OracleDbType.Varchar2, 100), new OracleParameter(":C_DFP_HL", OracleDbType.Varchar2, 100), new OracleParameter(":C_HL", OracleDbType.Varchar2, 100), new OracleParameter(":C_XM", OracleDbType.Varchar2, 100), new OracleParameter(":N_ORDER_LS", OracleDbType.Decimal, 4), new OracleParameter(":D_DFPHL_START_TIME", OracleDbType.Date), new OracleParameter(":D_DFPHL_END_TIME", OracleDbType.Date), new OracleParameter(":D_KP_START_TIME", OracleDbType.Date), new OracleParameter(":D_KP_END_TIME", OracleDbType.Date), new OracleParameter(":D_HL_START_TIME", OracleDbType.Date), new OracleParameter(":D_HL_END_TIME", OracleDbType.Date), new OracleParameter(":D_PLAN_KY_TIME", OracleDbType.Date), new OracleParameter(":C_PLAN_ROLL", OracleDbType.Varchar2, 100), new OracleParameter(":D_ZZ_START_TIME", OracleDbType.Date), new OracleParameter(":D_ZZ_END_TIME", OracleDbType.Date), new OracleParameter(":D_XM_START_TIME", OracleDbType.Date), new OracleParameter(":D_XM_END_TIME", OracleDbType.Date), new OracleParameter(":C_STD_CODE", OracleDbType.Varchar2, 500), new OracleParameter(":C_SLAB_TYPE", OracleDbType.Varchar2, 100), new OracleParameter(":C_STL_GRD_TYPE", OracleDbType.Varchar2, 100), new OracleParameter(":C_PROD_NAME", OracleDbType.Varchar2, 100), new OracleParameter(":C_PROD_KIND", OracleDbType.Varchar2, 1000), new OracleParameter(":N_DFP_HL_TIME", OracleDbType.Decimal, 10), new OracleParameter(":N_HL_TIME", OracleDbType.Decimal, 10), new OracleParameter(":N_XM_TIME", OracleDbType.Decimal, 10), new OracleParameter(":N_GG", OracleDbType.Decimal, 10), new OracleParameter(":N_CCM_TIME", OracleDbType.Decimal, 10), new OracleParameter(":C_TJ_REMARK", OracleDbType.Varchar2, 500), new OracleParameter(":C_TL", OracleDbType.Varchar2, 100), new OracleParameter(":N_RH", OracleDbType.Decimal, 5), new OracleParameter(":N_TL", OracleDbType.Decimal, 5), new OracleParameter(":N_GZSL", OracleDbType.Decimal, 5), new OracleParameter(":C_REMARK", OracleDbType.Varchar2, 1000), new OracleParameter(":N_XM", OracleDbType.Decimal, 5), new OracleParameter(":N_DHL", OracleDbType.Decimal, 5), new OracleParameter(":N_HL", OracleDbType.Decimal, 5), new OracleParameter(":N_STATUS", OracleDbType.Decimal, 5), new OracleParameter(":D_P_START_TIME", OracleDbType.Date), new OracleParameter(":D_P_END_TIME", OracleDbType.Date), new OracleParameter(":N_DFP_RZ", OracleDbType.Decimal, 5), new OracleParameter(":N_RZP_RZ", OracleDbType.Decimal, 5), new OracleParameter(":C_RH_SFJS", OracleDbType.Varchar2, 10) }; parameters[0].Value = model.C_ID; parameters[1].Value = model.C_CCM_ID; parameters[2].Value = model.C_CCM_CODE; parameters[3].Value = model.N_GROUP; parameters[4].Value = model.N_TOTAL_WGT; parameters[5].Value = model.N_ZJCLS; parameters[6].Value = model.N_ZJCLZL; parameters[7].Value = model.N_MLZL; parameters[8].Value = model.N_SORT; parameters[9].Value = model.C_STL_GRD; parameters[10].Value = model.N_PRODUCE_TIME; parameters[11].Value = model.N_JSCN; parameters[12].Value = model.C_BY1; parameters[13].Value = model.C_BY2; parameters[14].Value = model.C_BY3; parameters[15].Value = model.C_RH; parameters[16].Value = model.C_DFP_HL; parameters[17].Value = model.C_HL; parameters[18].Value = model.C_XM; parameters[19].Value = model.N_ORDER_LS; parameters[20].Value = model.D_DFPHL_START_TIME; parameters[21].Value = model.D_DFPHL_END_TIME; parameters[22].Value = model.D_KP_START_TIME; parameters[23].Value = model.D_KP_END_TIME; parameters[24].Value = model.D_HL_START_TIME; parameters[25].Value = model.D_HL_END_TIME; parameters[26].Value = model.D_PLAN_KY_TIME; parameters[27].Value = model.C_PLAN_ROLL; parameters[28].Value = model.D_ZZ_START_TIME; parameters[29].Value = model.D_ZZ_END_TIME; parameters[30].Value = model.D_XM_START_TIME; parameters[31].Value = model.D_XM_END_TIME; parameters[32].Value = model.C_STD_CODE; parameters[33].Value = model.C_SLAB_TYPE; parameters[34].Value = model.C_STL_GRD_TYPE; parameters[35].Value = model.C_PROD_NAME; parameters[36].Value = model.C_PROD_KIND; parameters[37].Value = model.N_DFP_HL_TIME; parameters[38].Value = model.N_HL_TIME; parameters[39].Value = model.N_XM_TIME; parameters[40].Value = model.N_GG; parameters[41].Value = model.N_CCM_TIME; parameters[42].Value = model.C_TJ_REMARK; parameters[43].Value = model.C_TL; parameters[44].Value = model.N_RH; parameters[45].Value = model.N_TL; parameters[46].Value = model.N_GZSL; parameters[47].Value = model.C_REMARK; parameters[48].Value = model.N_XM; parameters[49].Value = model.N_DHL; parameters[50].Value = model.N_HL; parameters[51].Value = model.N_STATUS; parameters[52].Value = model.D_P_START_TIME; parameters[53].Value = model.D_P_END_TIME; parameters[54].Value = model.N_DFP_RZ; parameters[55].Value = model.N_RZP_RZ; parameters[56].Value = model.C_RH_SFJS; int rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(Mod_TPP_LGPC_LSB model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public bool Add(Mod_TPP_LGPC_LSB model) { return(dal.Add(model)); }