using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CoreFS.CA06; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using com.steering.mes.zgmil.entity; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.ZGMil.NodeResultQuery; using Core.StlMes.Client.ZGMil.Entity; using System.Collections; using System.Net; using Core.StlMes.Client.ZGMil.ResultConrtrol; using Infragistics.Win; using Core.StlMes.Client.ZGMil.Common; using Core.StlMes.Client.ZGMil.Popup; using CoreFS.SA06; namespace Core.StlMes.Client.ZGMil.Result { public partial class FrmPipeSawResult : FrmBase { #region 初始化 MilPlan QueryMainPlan = new MilPlan(); MilPlan MainPlan = new MilPlan(); MilSawResultEntity milSawResultEntity = new MilSawResultEntity(); MilSawResultDeatilEntity milSawResultDeatilEntity = new MilSawResultDeatilEntity(); private string ActiveJUDGE_STOVE_NO = null;//主计划活动行的判定炉号 private string proPlanId = null;//轧管订单编号 private string gxPlanNo = null;//工序排产序号 private string lotNo = null;//生产批号 private string ActiveStatus = null;//主计划活动行的状态 private string ActiveResultNo = null; public int userRoom = 0; // 1-1#台 2-2#台 private string Departm = "";//部门 private string PlineCode = "";//产线 private string TestMethod = ""; string PlanStatusQuery = "69"; string PlanStartStatusQuery = "00"; //查询结炉实绩起始状态 private string Shift = ""; private string Group = ""; private string _User = ""; private string _UserName = ""; //签名 姓名 private string _Url = ""; //签名 Url private string _UserID = ""; //签名 签名ID private string ChangeUserID = ""; ///// ///// 锯切刀数存储结构体 ///// //public struct SawCount //{ // public int CutHead; // public int CutTrail; // public int CutOrder; //} //SawCount sawCount1 = new SawCount(); //SawCount sawCount2 = new SawCount(); int RowNum = 0; //设置默认排支数 int Flag = 0; int tempROW_NO1 = 0;//1#台排号 int tempROW_NO2 = 0;//2#台排号 int SAW_NUM = 0;//分切数 public FrmPipeSawResult() { //FrmUserRomm fmuserromm = new FrmUserRomm(); //fmuserromm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; //fmuserromm.ShowDialog(); //if (fmuserromm.UserRomm == null) //{ // this.Dispose(); // this.Close(); //} //else //{ // userRoom = Int16.Parse(fmuserromm.UserRomm.Substring(2, 1)); //} InitializeComponent(); this.pipeSawResult1.UltraGrid2.ClickCellButton += new CellEventHandler(btnCUT_REV); this.pipeSawResult1.UltraGrid2.CellChange += new CellEventHandler(CutTypeChange); } /// /// 初始化控件 /// public void InitControl() { if (chkLotNo.Checked) { txtLOT_NO.Enabled = true; } else { txtLOT_NO.Enabled = false; } if (chkHeatNo.Checked) { txtJudgeStoveNo.Enabled = true; } else { txtJudgeStoveNo.Enabled = false; } txtJudgeStoveNo.Enabled = false; txtLOT_NO.Enabled = false; } /// /// LOAD事件 /// /// protected override void OnLoad(EventArgs e) { base.OnLoad(e); rollingInfomation1.UltraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; rollingCard1.UltraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; this.pipeSawResult1.UltraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGridPlan.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGridMatSeq.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; foreach (UltraGridColumn ugc in ultraGridPlan.DisplayLayout.Bands[0].Columns) { ugc.SortIndicator = SortIndicator.Disabled; } } /// /// 页面开启事件 /// /// protected override void OnShown(EventArgs e) { base.OnShown(e); txtJudgeStoveNo.Enabled = false; txtLOT_NO.Enabled = false; string hostname = Dns.GetHostName(); IPAddress ip = Dns.GetHostByName(hostname).AddressList[0]; NativeMethodNew na = new NativeMethodNew(this.ob); TestMethod = na.GetOperateResult(ip.ToString(), "1"); if (!TestMethod.Contains("管排锯")) { MessageBox.Show("提示:该电脑不是管排锯操作台电脑,不允许操作改界面。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.Dispose(); this.Close(); return; } Departm = UserInfo.GetDepartment(); PlineCode = na.GetPCode(Departm);//获取 用户 对应的产线 string plcode = na.GetOperateResult(ip.ToString(), "0"); if (!PlineCode.Equals(plcode.Trim())) { MessageBox.Show("提示:您的账号所属产线与配置不符。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.Dispose(); this.Close(); return; } if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017") || PlineCode.Equals("C072")) { this.rollingCard1.ChangCard(); } if (TestMethod.Contains("管排锯") && TestMethod.Contains("1")) { userRoom = 1; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO1"].Value = "1#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO2"].Value = "2#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N1"].Value = "3#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N12"].Value = "4#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N2"].Value = "3#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N22"].Value = "4#锯"; } if (TestMethod.Contains("管排锯") && TestMethod.Contains("2")) { userRoom = 2; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO1"].Value = "3#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO2"].Value = "4#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N1"].Value = "1#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N12"].Value = "2#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N2"].Value = "1#锯"; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N22"].Value = "2#锯"; } PlanQuery(); //foreach (UltraGridRow ugr in ultraGridPlan.Rows) //{ // ugr.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugr.Cells["JUDGE_STOVE_NO"].Value.ToString()); //} Shift = UserInfo.GetUserOrder(); Group = UserInfo.GetUserGroup(); Sign(); ShowShift(); ValueList va = new ValueList(); va.ValueListItems.Add("被动切尾"); va.ValueListItems.Add("主动切尾"); this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].ValueList = va; } #endregion private void ShowShift() { colShowShiftGroup1.Ob = this.ob; colShowShiftGroup1.Group = this.UserInfo.GetUserGroup(); colShowShiftGroup1.Shift = this.UserInfo.GetUserOrder(); colShowShiftGroup1.ShowShift(); colShowShiftGroup1.Timer1.Enabled = true; } #region 方法 /// /// 签名 /// private void Sign() { ColUserName col = new ColUserName(); col.StationId = "6"; col.PlineCode = PlineCode; col.ColGroup = Group; col.Ob = this.ob; col.ShowDialog(); _UserID = col.getUserId(); _UserName = col.getUserName(); } /// /// 刷新 /// public void ReFresh() { } /// /// 判断是否能开始当前炉次 /// /// private bool IsStart() { bool Start = true; foreach (UltraGridRow ugr in ultraGridPlan.Rows) { if (ugr.Cells["IS_START"].Value.ToString() == "已开始分切") { MessageBox.Show("炉号【" + ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() + "】正在分切,不能两炉同时开始分切", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); Start = false; ; } } return Start; } /// /// 更改颜色 /// public void ChangeGridColor() { foreach (UltraGridRow ugr in ultraGridPlan.Rows) { if (ugr.Cells["IS_START"].Value.ToString() == "已完成分切") { ugr.Appearance.BackColor = Color.YellowGreen; } } foreach (UltraGridRow ugr in ultraGridMatSeq.Rows) { if (ugr != null) { if (ugr != null) { switch (ugr.Cells["STATUS"].Value.ToString()) { case "切前剔除": ugr.Appearance.BackColor = Color.Yellow; break; case "切后剔除": ugr.Appearance.BackColor = Color.YellowGreen; break; } switch (ugr.Cells["CHANGE_FLAG"].Value.ToString()) { case "待接班确认": ugr.Appearance.BackColor = Color.LightGreen; break; } } } } } /// /// 查询管号队列 /// public void GetMatRack(string JudgeStoveNo) { dtMat.Clear(); DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.getMatRackSeq", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dtMat, true); //ultraGridMatSeq.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); if (SAW_NUM > 0) { Infragistics.Win.ValueList list = new Infragistics.Win.ValueList(); for (int i = 1; i <= SAW_NUM; i++) { list.ValueListItems.Add(i); } ValueList va = new ValueList(); va.ValueListItems.Add("被动切尾"); va.ValueListItems.Add("主动切尾"); ValueList var = new ValueList(); var.ValueListItems.Add("工艺废"); var.ValueListItems.Add("设备废"); var.ValueListItems.Add("分切废"); var.ValueListItems.Add("弯曲"); var.ValueListItems.Add("来料短尺"); foreach (UltraGridRow ugr in ultraGridMatSeq.Rows) { ugr.Cells["SCRAP_DBNUM"].ValueList = list; ugr.Cells["CUT_TYPE"].ValueList = va; ugr.Cells["SCRAP_REASON"].ValueList = var; //if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("正常")) //{ ugr.Cells["ChangShift"].Value = "交班操作"; ugr.Cells["BTNCHANGECOM"].Value = "接班操作"; //} //if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("交班点")) //{ // ugr.Cells["ChangShift"].Value = "交班回退"; //} //ugr.Cells["RowNoChang"].Value = "排号修改"; } } } /// /// 查询流通卡信息 /// public void GetRollingCard() { UltraGridRow ugr = ultraGridPlan.ActiveRow; if (ugr != null) { string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); DataTable dt = new DataTable(); if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017")) { dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard1", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); } else { dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); } RollingCardEditGrid(dt, JudgeStoveNo); } } /// /// 查询结炉实绩 /// public void NodeQuery() { string Shift = UserInfo.GetUserOrder(); string Group = UserInfo.GetUserGroup(); string PliceCode = PlineCode; string StartTime = DateTime.Now.ToString("yyyy-MM-dd"); string EndTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); string Date = StartTime; StartTime = StartTime + " 00:00:00"; EndTime = EndTime + " 00:00:00"; DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleNodeResult", new object[] { PliceCode, Shift, Group, StartTime, EndTime }, this.ob); FrmNodeResultQuery frm = new FrmNodeResultQuery(dt, 9, Date, Shift, Group, this.ob); frm.ShowDialog(); } #endregion #region 事件 /// /// checkbox点击事件 /// /// /// private void chkDate_CheckedChanged(object sender, EventArgs e) { if (chkLotNo.Checked) { txtLOT_NO.Enabled = true; } else { txtLOT_NO.Enabled = false; } if (chkHeatNo.Checked) { txtJudgeStoveNo.Enabled = true; } else { txtJudgeStoveNo.Enabled = false; } if (chkStatusQuery.Checked) { PlanStatusQuery = "99"; PlanStartStatusQuery = "70"; } else { PlanStatusQuery = "69"; PlanStartStatusQuery = "00"; } } /// /// ToolBar按钮 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": //查询 PlanQuery(); break; case "Save": SawResultSave();//保存 break; case "Node": SawesultNode(); //结炉 break; case "DoNodeBack": NodeBack(); break; case "DoNodeQuery"://结炉实绩 NodeQuery(); break; case "DoStart": DoStart(); break; case "DoStartBack": StartBack(); break; case "pipsawfast"://快速分切 pipsawfast(); break; case "DoPrint": PrintResult(); break; case "DoChangeCancel": ChangeShiftBack(); // break; //case "colchang": // colchang(); break; case "DoSign": Sign(); break; case "Close": this.Dispose(); this.Close(); break; } } private String doQueryJugeNoStaus(string resultNo, string jugeNo, string plineCode) { string staus = "3"; DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryResultStaus", new object[] { resultNo, jugeNo, plineCode, "5", proPlanId, gxPlanNo }, ob); if (ds.Rows.Count > 0) { staus = ds.Rows[0]["NODE_FUR_FLAG"].ToString(); } return staus; } /// /// 修改IS_START名称 /// public void ChangeCellName() { if (ultraGridPlan.Rows.Count > 0) { NativeMethodNew na = new NativeMethodNew(this.ob); foreach (UltraGridRow ugr in ultraGridPlan.Rows) { //String Judge_Stove_No = ugr.Cells["JUDGE_DTOVE_NO"].Value.ToString(); //if (na.isBegineNode(Judge_Stove_No, 0)) //{ // ugr.Appearance.BackColor = Color.YellowGreen; //} if (ugr.Cells["IS_START"].Value.ToString() != "未开始分切" && ugr.Cells["IS_START"].Value.ToString() != "已开始分切" && ugr.Cells["IS_START"].Value.ToString() != "已完成分切") { switch (Convert.ToInt32(ugr.Cells["IS_START"].Value)) { case 3: ugr.Cells["IS_START"].Value = "未开始分切"; break; case 0: ugr.Cells["IS_START"].Value = "已开始分切"; break; case 1: ugr.Cells["IS_START"].Value = "已完成分切"; break; } } } } } /// /// 计划查询 /// public void PlanQuery() { string PrimaKey = ""; UltraGridRow ugr = this.ultraGridPlan.ActiveRow; if (ugr != null) { PrimaKey = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); } if (chkHeatNo.Checked == true) { if (string.IsNullOrEmpty(this.txtJudgeStoveNo.Text)) { MessageBox.Show("请输入判定炉号后再执行查询操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } QueryMainPlan.JudgeStoveNo = this.txtJudgeStoveNo.Text; } else { QueryMainPlan.JudgeStoveNo = ""; } if (chkLotNo.Checked == true) { if (string.IsNullOrEmpty(this.txtLOT_NO.Text)) { MessageBox.Show("请输入生产批号后再执行查询操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } QueryMainPlan.LotNo = this.txtLOT_NO.Text; } else { QueryMainPlan.LotNo = ""; } //dtMatSeq.Clear(); dtPlan.Clear(); QueryMainPlan.PlineCode = PlineCode; QueryMainPlan.Status = PlanStatusQuery; QueryMainPlan.StartStatus = PlanStartStatusQuery; //查询计划记录 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob); if (dt.Rows.Count == 0) { MessageBox.Show("未查询到数据。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } GridHelper.CopyDataToDatatable(ref dt, ref dtPlan, true); //ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); ChangeCellName(); if (ugr != null) { foreach (UltraGridRow ugr1 in ultraGridPlan.Rows) { ugr1.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString()); if (ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString() == PrimaKey) { ugr1.Activated = true; } } } ChangeGridColor(); } /// /// 单击计划行 /// /// /// private void ultraGridPlan_AfterRowActivate(object sender, EventArgs e) { if (this.dtPlan.Rows.Count > 0) { UltraGridRow ugr = ultraGridPlan.ActiveRow; if (ugr != null) { //查询主计 划信息 dtMat.Clear(); string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); proPlanId = ugr.Cells["PRO_PLAN_ID"].Value.ToString(); gxPlanNo = ugr.Cells["GX_PLAN_NO"].Value.ToString(); lotNo = ugr.Cells["LOT_NO"].Value.ToString(); ActiveJUDGE_STOVE_NO = JudgeStoveNo; string resltNo = ugr.Cells["ID"].Value.ToString(); //string Status = ugr.Cells["IS_START"].Value.ToString(); string Status = doQueryJugeNoStaus(resltNo, JudgeStoveNo, PlineCode); ActiveStatus = Status; MainPlan.JudgeStoveNo = JudgeStoveNo; MainPlan.ProPlanId = proPlanId; MainPlan.GxPlanNo = gxPlanNo; DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob); if (dtMP.Rows.Count > 0) { GridEdit(dtMP); //轧制计划信息 ActiveResultNo = dtMP.Rows[0]["ID"].ToString(); GetSawResultEdit(JudgeStoveNo);//分切计划 GetMilplanEdit(dtMP);//主计划赋值 //查询流通卡信息 DataTable dtRollingCard = new DataTable(); if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017")) { dtRollingCard = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard1", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); } else { dtRollingCard = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); } if (dtRollingCard.Rows.Count > 0) { RollingCardEditGrid(dtRollingCard, JudgeStoveNo);//流通卡赋值 } } NativeMethodNew na = new NativeMethodNew(this.ob); if (na.isBegineNode(ActiveJUDGE_STOVE_NO, 6)) { GetMatRack(JudgeStoveNo); } else { this.dtMat.Rows.Clear(); } ChangeGridColor(); //if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6)) //{ // return; //} if (Status == "1" || Status == "3") { return; } //查询定径结炉是否完成 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count == 0) { //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString())) { //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dt.Rows[0]["NODE_FUR_FLAG"].ToString() != "1")// { //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0]; UltraGridRow ugr2 = this.rollingCard1.UltraGrid4.Rows[0]; //保存当前实绩 MilSawResultEntity milsawresult = new MilSawResultEntity(); this.pipeSawResult1.UltraGrid2.UpdateData(); milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult); //来料支数 int MatNum = 0; if (!string.IsNullOrEmpty(ugr2.Cells["QualifiedNum7"].Value.ToString())) { MatNum = Convert.ToInt32(ugr2.Cells["QualifiedNum7"].Value.ToString()); } //切前合格支数 milsawresult.CutNum = MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString3()); //分切数 int sawnum = int.Parse(ugr1.Cells["SAW_MUMP"].Value.ToString()); //切后合格支数 milsawresult.CutDbnum = (MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString3())) * sawnum - int.Parse(ugr2.Cells["ScrapNum10"].Value.ToString3()); //交接班支数 //milsawresult.ChangeNum = ugr1.Cells["CHANGE_NUM"].Value.ToString(); milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString(); //合格吨 double DBHeight = 0; double BurnningRate = 0; double BurnningRate1 = 0; double DBNum = 1; NativeMethodNew na1 = new NativeMethodNew(this.ob); double percent0 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 0); double percent1 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 1); double percent2 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 2); if (percent0 == 100.0) { MessageBox.Show("炉号:【" + JudgeStoveNo + "】尚未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dtDBH = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getDbHeight", new object[] { JudgeStoveNo, ActiveResultNo, proPlanId, gxPlanNo }, this.ob); if (dtDBH.Rows.Count > 0) { if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_HEIGHT"].ToString())) { DBHeight = double.Parse(dtDBH.Rows[0]["DB_HEIGHT"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNNING_RATE"].ToString())) { BurnningRate = double.Parse(dtDBH.Rows[0]["BURNNING_RATE"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNINGRATE"].ToString())) { BurnningRate1 = double.Parse(dtDBH.Rows[0]["BURNINGRATE"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_NUM"].ToString())) { DBNum = double.Parse(dtDBH.Rows[0]["DB_NUM"].ToString()); } } //分产线 是否经过再加热炉 if (this.PlineCode == "C009" || PlineCode == "C012" || PlineCode == "C017") { double temp = DBHeight * (1 - (BurnningRate / 100)); double tempnum = double.Parse(milsawresult.CutDbnum.ToString()); milsawresult.QaTon = temp * percent0 / 100 * tempnum; milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString()); milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString()); milsawresult.CutTrailLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutTrailLength.ToString()) ? "0" : milsawresult.CutTrailLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000; milsawresult.CutHeadLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutHeadLength.ToString()) ? "0" : milsawresult.CutHeadLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000; } else { double temp = DBHeight * (1 - (BurnningRate / 100)) * (1 - (BurnningRate1 / 100)); double tempnum = double.Parse(milsawresult.CutDbnum.ToString()); milsawresult.QaTon = temp * percent0 / 100 * tempnum; milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString()); milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString()); milsawresult.CutTrailLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutTrailLength.ToString()) ? "0" : milsawresult.CutTrailLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000; milsawresult.CutHeadLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutHeadLength.ToString()) ? "0" : milsawresult.CutHeadLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000; } milsawresult.ColGroup = UserInfo.GetUserGroup(); milsawresult.ColShift = UserInfo.GetUserOrder(); milsawresult.ColUser = UserInfo.GetUserName(); int countafter = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.QuNum", new object[] { milsawresult }, this.ob); } } } /// /// 双击计划开始锯切 /// /// /// //private void ultraGridPlan_DoubleClickRow(object sender, DoubleClickRowEventArgs e) private void DoStart() { if (this.PlineCode.Equals("C009")) { if (this.TestMethod.Contains("2")) { MessageBox.Show("您的操作台不允许进行分切开始操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (ultraGridPlan.Rows.Count > 0) { //if (!IsStart()) //{ // //return;mj //} UltraGridRow ugr = ultraGridPlan.ActiveRow; UltraGridRow ugr1 = pipeSawResult1.UltraGrid2.Rows[0]; if (ugr != null) { //int SawNum = int.Parse(ugr1.Cells["SAW_NUM"].Value.ToString()); int Flag = 0; //0-开始分切 1-取消 string HeatNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); ActiveJUDGE_STOVE_NO = HeatNo; string ResultNo = ugr.Cells["ID"].Value.ToString(); //string Statue = ugr.Cells["IS_START"].Value.ToString(); string Statue = doQueryJugeNoStaus(ResultNo, HeatNo,PlineCode); ActiveStatus = Statue; if (Statue == "1") { MessageBox.Show("炉号:【" + HeatNo + "】已完成分切操作,不允许再次进行管排锯操作!!!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } MainPlan.JudgeStoveNo = HeatNo; MainPlan.ProPlanId = proPlanId; MainPlan.GxPlanNo = gxPlanNo; DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob); string rollLength = dtMP.Rows[0]["ROLL_LENGTH"].ToString(); string orderlegth = dtMP.Rows[0]["TARGET_LENGTH"].ToString(); SAW_NUM = int.Parse(dtMP.Rows[0]["SAW_NUM"].ToString()); string tailegth = dtMP.Rows[0]["CUT_TRAIL_LENGTHP"].ToString(); string headlengt = dtMP.Rows[0]["CUT_HEAD_LENGTHP"].ToString(); ActiveResultNo = dtMP.Rows[0]["ID"].ToString(); GridEdit(dtMP);//轧制计划信息 GetRollingCard();//流通卡赋值 GetMilplanEdit(dtMP);//主计划赋值 GetSawResultEdit(HeatNo);//分切计划信息 NativeMethodNew na = new NativeMethodNew(this.ob); if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6)) { //if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + MainPlan.JudgeStoveNo + "】开始分切?") == DialogResult.No) //{ // return; //} string PLineCode = dtMP.Rows[0]["PLINE_CODE"].ToString(); string LotNo = dtMP.Rows[0]["LOT_NO"].ToString(); string StoveNo = dtMP.Rows[0]["STOVE_NO"].ToString(); //修改主计划状态为 65-开始锯切,新增锯切实绩信息 milSawResultEntity.JudgeStoveNo = HeatNo; milSawResultEntity.ResultNo = ResultNo; milSawResultEntity.LotNo = LotNo; milSawResultEntity.StoveNo = StoveNo; milSawResultEntity.PlineCode = PLineCode; //milSawResultEntity.OrderLength = orderlegth; //milSawResultEntity.CutHeadLength = headlengt; //milSawResultEntity.CutTrailLength = tailegth; milSawResultEntity.OrderLength = ""; milSawResultEntity.CutHeadLength = ""; milSawResultEntity.CutTrailLength = ""; milSawResultEntity.SawNum = SAW_NUM.ToString(); milSawResultEntity.CutType = "被动切尾"; milSawResultEntity.Status = "65"; milSawResultEntity.NodeFurFlag = "0"; milSawResultEntity.StartTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); milSawResultEntity.ColMode = "0"; milSawResultEntity.ColGroup = UserInfo.GetUserGroup(); milSawResultEntity.ColShift = UserInfo.GetUserOrder(); milSawResultEntity.ColUser = UserInfo.GetUserName(); milSawResultEntity.ProPlanId = proPlanId; milSawResultEntity.GxPlanNo = gxPlanNo; //1.更新主表Stutas=65,2、插入分切实绩 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.startSaw", new object[] { milSawResultEntity }, this.ob); na.InsertSTAferDoubleClick(milSawResultEntity.JudgeStoveNo.ToString(), 6, "0", proPlanId, gxPlanNo); int countrack = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackrollLebgth", new object[] { HeatNo, rollLength, orderlegth, proPlanId, gxPlanNo }, this.ob); //刷新主表 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dtPlan, true); //ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); ChangeCellName(); foreach (UltraGridRow ugr_ in this.ultraGridPlan.Rows) { if (ugr_.Cells["JUDGE_STOVE_NO"].Value.ToString() == HeatNo) { ultraGridPlan.ActiveRow = ugr_; } } PlanQuery(); ChangeGridColor(); } else { MessageBox.Show("炉号【" + HeatNo + "】已经开始锯切,不能再次开始!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } /// /// 开始回退 /// private void StartBack() { if (ultraGridPlan.Rows.Count > 0) { if (this.ultraGridPlan.ActiveRow == null) { MessageBox.Show("请选择需要回退的炉号!!!"); return; } UltraGridRow ugr = ultraGridPlan.ActiveRow; string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); string ResultNo = ugr.Cells["ID"].Value.ToString(); //string StartStatus = ugr.Cells["IS_START"].Value.ToString(); string StartStatus = doQueryJugeNoStaus(ResultNo, JudgeStoveNo,PlineCode); if (StartStatus == "1") { MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】已结炉,不能入炉回退!!!!"); return; } if (StartStatus == "3") { MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】未开始分切,不能开始回退!!!!"); return; } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.startBack", new object[] { JudgeStoveNo, ResultNo, 6, PlineCode, proPlanId, gxPlanNo }, this.ob); if (count > 0) { ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.pipsawfastback", new object[] { JudgeStoveNo, ResultNo, PlineCode, proPlanId, gxPlanNo }, this.ob); } GetMatRack(JudgeStoveNo); ChangeGridColor(); ChangeCellName(); PlanQuery(); } } public void CutTypeChange(object sender, CellEventArgs e) { if (!e.Cell.Column.Key.ToString().Equals("CUT_TYPE")) { return; } else { if (this.ultraGridPlan.ActiveRow == null) { return; } if (!this.ultraGridPlan.ActiveRow.Cells["IS_START"].Value.ToString().Equals("已开始分切")) { return; } string heatno = this.ActiveJUDGE_STOVE_NO; DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); if (dtDeatail.Rows.Count > 0) { foreach (DataRow dr in dtDeatail.Rows) { if (!dr["SAW_FLAG"].Equals("3")) { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].Value = "被动切尾"; return; //只针对快速分切,如果是逐排切的话则允许 } } } this.pipeSawResult1.UltraGrid2.Update(); if (this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].Text.ToString().Equals("主动切尾")) { int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.SetResultCutTupe", new object[] { heatno }, this.ob); GetMatRack(heatno); } else { int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.SetResultCutTupeBack", new object[] { heatno }, this.ob); GetMatRack(heatno); } } } /// /// 控件点击事件 /// public void btnCUT_REV(object sender, CellEventArgs e) { MilSawResultDeatilEntity sawresultdetail = new MilSawResultDeatilEntity(); UltraGridRow ugr = this.ultraGridPlan.ActiveRow; if (ugr == null) { MessageBox.Show("您未选择任何计划,请选择计划后再进行管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string HeatNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); string nodeFlag = ""; DataTable dts = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dts.Rows.Count > 0) { nodeFlag = dts.Rows[0]["NODE_FUR_FLAG"].ToString(); } else { MessageBox.Show("判定炉号:【" + HeatNo + "】尚未开始定径,不允许进行管排锯操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.JudgeStoveNo = HeatNo; sawresultdetail.LotNo = ugr.Cells["LOT_NO"].Value.ToString(); //sawresultdetail.LotNo = ugr.Cells["STOVE_NO"].Value.ToString(); sawresultdetail.PlineCode = PlineCode; sawresultdetail.ColGroup = this.UserInfo.GetUserGroup(); sawresultdetail.ColUser = this.UserInfo.GetUserName(); sawresultdetail.ColShift = this.UserInfo.GetUserOrder(); sawresultdetail.ColMode = "1"; sawresultdetail.Change = "0"; string cellname = e.Cell.Column.Key.ToString(); switch (cellname) { case "btnCUT_REV1": if (LimitCut(HeatNo) == 0 && nodeFlag.Equals("1")) { MessageBox.Show("炉号:【" + HeatNo + "】已完成分切操作,请结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this.userRoom == 1)//1# 台,1#锯 { bool isinsert = this.isinsert(HeatNo, 1, 1); if (isinsert == false) { MessageBox.Show("已新增排号未切完不允许再新增排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //查询该炉已切实绩明细 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { for (int i = 0; i < dtdetail.Rows.Count; i++) { int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString()); tempROW_NO1 = (tempROW_NO1 > s) ? tempROW_NO1 : s; } tempROW_NO1 += 1; sawresultdetail.RowNo = tempROW_NO1;//排号 } else { sawresultdetail.RowNo = 1; tempROW_NO1 = 1; } sawresultdetail.SawNo = "1";//锯号 sawresultdetail.SawFlag = "1";//分切标识 //添加管排明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob); if (count > 0) { this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString(); } } if (this.userRoom == 2)//2# 台,3#锯 { bool isinsert = this.isinsert(HeatNo, 1, 3); bool isinserts = this.isinsert(HeatNo, 2, 3); if (isinsert && isinserts)//切头开始 { //查询该炉已切实绩明细 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { for (int i = 0; i < dtdetail.Rows.Count; i++) { int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString()); tempROW_NO1 = (tempROW_NO1 > s) ? tempROW_NO1 : s; } tempROW_NO1 += 1; sawresultdetail.RowNo = tempROW_NO1;//排号 } else { sawresultdetail.RowNo = 1; tempROW_NO1 = 1; } sawresultdetail.SawNoN = "3";//锯号 sawresultdetail.SawFlag = "2";//分切标识 //添加管排明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob); if (count > 0) { this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString(); } } else//切1# 台来料 { //查询符合条件的值 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { foreach (DataRow dr in dtdetail.Rows) { if (dr["SAW_FLAG"].ToString() != "3" && dr["SAW_NO_N"].ToString() == "3") { sawresultdetail.RowNo = dr["ROW_NO"].ToString(); sawresultdetail.SawNo = dr["SAW_NO"].ToString(); sawresultdetail.RowCount = dr["ROW_COUNT"].ToString(); sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString(); } } } tempROW_NO1 = Int16.Parse(sawresultdetail.RowNo.ToString()); sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawNoN = "3"; sawresultdetail.SawFlag = "1"; sawresultdetail.Change = "1"; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString(); this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"] = sawresultdetail.RowCount; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"] = sawresultdetail.CutHeadLength; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"] = sawresultdetail.OrderLength; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"] = sawresultdetail.CutTrailLength; //跟更新明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } } break; case "btnCUT_REV2": if (LimitCut(HeatNo) == 0 && nodeFlag.Equals("1")) { MessageBox.Show("上一道工序已完成且没有可进行管排锯操作的母管", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this.userRoom == 1)//1#台,2#锯 { bool isinserts = this.isinsert(HeatNo, 1, 2); if (isinserts == false) { MessageBox.Show("已新增排号未切完不允许再新增排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //查询该炉已切实绩明细 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { for (int i = 0; i < dtdetail.Rows.Count; i++) { int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString()); tempROW_NO2 = (tempROW_NO2 > s) ? tempROW_NO2 : s; } tempROW_NO2 += 1; sawresultdetail.RowNo = tempROW_NO2;//排号 } else { sawresultdetail.RowNo = 1; tempROW_NO2 = 1; } sawresultdetail.SawNo = "2";//锯号 sawresultdetail.SawFlag = "1";//分切标识 //添加管排明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob); if (count > 0) { this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString(); } } if (this.userRoom == 2)//2#台,4#锯 { bool isinsert = this.isinsert(HeatNo, 1, 4); bool isinserts = this.isinsert(HeatNo, 2, 4); if (isinsert && isinserts)//切头开始 { //查询该炉已切实绩明细 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { for (int i = 0; i < dtdetail.Rows.Count; i++) { int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString()); tempROW_NO2 = (tempROW_NO2 > s) ? tempROW_NO2 : s; } tempROW_NO2 += 1; sawresultdetail.RowNo = tempROW_NO2;//排号 } else { sawresultdetail.RowNo = 1; tempROW_NO2 = 1; } sawresultdetail.SawNoN = "4";//锯号 sawresultdetail.SawFlag = "2";//分切标识 //添加管排明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob); if (count > 0) { this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString(); } } else//切1#/2# 台来料 { //查询符合条件的值 DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob); if (dtdetail.Rows.Count > 0) { foreach (DataRow dr in dtdetail.Rows) { if (dr["SAW_FLAG"].ToString() != "3" && dr["SAW_NO_N"].ToString() == "4") { sawresultdetail.RowNo = dr["ROW_NO"].ToString(); sawresultdetail.SawNo = dr["SAW_NO"].ToString(); sawresultdetail.RowCount = dr["ROW_COUNT"].ToString(); sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString(); } } } tempROW_NO2 = Int16.Parse(sawresultdetail.RowNo.ToString()); sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawNoN = "4"; sawresultdetail.SawFlag = "1"; sawresultdetail.Change = "1"; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString(); this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString(); this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"] = sawresultdetail.RowCount; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"] = sawresultdetail.CutHeadLength; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"] = sawresultdetail.OrderLength; this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"] = sawresultdetail.CutTrailLength; //跟更新明细 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } } break; case "SAW_NO1"://1#锯 break; case "SAW_NO2"://2#锯 break; case "SAW_NO_N1": if (this.userRoom == 1)//1#锯后选择3#锯 { sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "1"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } if (this.userRoom == 2)//3#锯后选择1#锯 { } break; case "SAW_NO_N12": if (this.userRoom == 1)//1#锯后选择4#锯 { sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "1"; sawresultdetail.SawNoN = "4"; sawresultdetail.Change = "0"; int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } if (this.userRoom == 2)//3#锯后选择2#锯 { } break; case "SAW_NO_N2":// if (this.userRoom == 1)//2#锯后选择3#锯 { sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } if (this.userRoom == 2)//4#锯后选择1#锯 { } break; case "SAW_NO_N22": if (this.userRoom == 1)//2#锯后选择3#锯 { sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); } if (this.userRoom == 2)//4#锯后选择1#锯 { } break; case "btnCUT_HEAD1": if (this.userRoom == 1)//1#锯切头 { bool isoperat = isOperate(HeatNo, 1, 1); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "1"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString())) { MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString(); if (sawresultdetail.PlineCode != "C012") { //int s = LimitCut(HeatNo); if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString())) { MessageBox.Show("未输入排支数,请检查后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (int.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) > LimitCut(HeatNo)) { MessageBox.Show("输入排支数超过可切支数,请检查后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString(); sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO1; this.updateROW_NOtoSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } if (this.userRoom == 2)//3#锯切头 { bool isoperat = isOperate(HeatNo, 2, 3); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString())) { MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString())) { MessageBox.Show("未输入排支数,请检查后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString()) > LimitCut(HeatNo)) { MessageBox.Show("输入排完支数超过可切支数,请检查后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString(); sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO1; this.updateROW_NOtoSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切头操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } break; case "btnCUT_Length1": if (this.userRoom == 1)//1#锯定尺 { bool isoperat = isOperate(HeatNo, 1, 1); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "1"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString())) { MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString(); sawresultdetail.RowNo = tempROW_NO1; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切定尺操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } if (this.userRoom == 2)//3#锯定尺 { bool isoperat = isOperate(HeatNo, 2, 3); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString())) { MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString(); this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切定尺操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } break; case "btnCUT_TRAIL1": if (this.userRoom == 1)//1#锯切尾 { bool isoperat = isOperate(HeatNo, 1, 1); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "1"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString())) { MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString())) { MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString(); sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO1; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } if (this.userRoom == 2)//3#锯切尾 { bool isoperat = isOperate(HeatNo, 2, 3); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "3"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString())) { MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString())) { MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString(); sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO1; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); GetMatRack(HeatNo); //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; case "btnCUT_END1": if (this.userRoom == 1)//1#锯 { bool isoperat = isOperate(HeatNo, 1, 1); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (this.userRoom == 2)//3#锯 { bool isoperat = isOperate(HeatNo, 2, 3); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1); if (this.isCut_End(sawresultdetail)) { sawresultdetail.RowNo = tempROW_NO1; sawresultdetail.SawFlag = "3"; sawresultdetail.Change = "0"; RowNum = int.Parse(sawresultdetail.RowCount.ToString()); if (sawresultdetail.PlineCode != "C012") { string colno = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["COL_NO1"].Value.ToString(); colno = colno.Substring(0, 1); int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteRackCOL_NO", new object[] { HeatNo, colno, RowNum, SAW_NUM }, this.ob); } int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTEND", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("管排锯操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); if (LimitCut(HeatNo) == 0) { MessageBox.Show("当前炉已完成管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("还有操作未完成,不允许执行锯切完成操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } break; case "btnCUT_HEAD2": if (this.userRoom == 1)//2#锯切头 { bool isoperat = isOperate(HeatNo, 1, 2); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "2"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString())) { MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString())) { MessageBox.Show("未输入排支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString()) > LimitCut(HeatNo)) { MessageBox.Show("输入排支数大于可切支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString(); sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO2; this.updateROW_NOtoSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); GetMatRack(HeatNo); //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (this.userRoom == 2)//4#锯切头 { bool isoperat = isOperate(HeatNo, 2, 4); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "4"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString())) { MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString())) { MessageBox.Show("未输入排支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString()) > LimitCut(HeatNo)) { MessageBox.Show("输入排支数大于可切支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString(); sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO2; this.updateROW_NOtoSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); GetMatRack(HeatNo); //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; case "btnCUT_Length2": if (this.userRoom == 1)//2#锯定尺 { bool isoperat = isOperate(HeatNo, 1, 2); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "2"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString())) { MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString(); sawresultdetail.RowNo = tempROW_NO2; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切定尺操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } if (this.userRoom == 2)//4#锯定尺 { bool isoperat = isOperate(HeatNo, 2, 4); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "4"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString())) { MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString(); sawresultdetail.RowNo = tempROW_NO2; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切定尺操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } break; case "btnCUT_TRAIL2": if (this.userRoom == 1)//2#锯切尾 { bool isoperat = isOperate(HeatNo, 1, 2); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "1"; sawresultdetail.SawNo = "2"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString())) { MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString())) { MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString(); sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO2; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } if (this.userRoom == 2)//4#锯切尾 { bool isoperat = isOperate(HeatNo, 2, 4); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); sawresultdetail.SawFlag = "2"; sawresultdetail.SawNoN = "4"; sawresultdetail.Change = "0"; if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString())) { MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString(); if (sawresultdetail.PlineCode != "C012") { if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString())) { MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString(); sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString()); } } sawresultdetail.RowNo = tempROW_NO2; this.UpdateSawRack(sawresultdetail); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); GetMatRack(HeatNo); } break; case "btnCUT_END2": if (this.userRoom == 1)//2#锯 { bool isoperat = isOperate(HeatNo, 1, 2); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (this.userRoom == 2)//4#锯 { bool isoperat = isOperate(HeatNo, 2, 4); if (!isoperat) { MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2); if (this.isCut_End(sawresultdetail)) { sawresultdetail.RowNo = tempROW_NO2; sawresultdetail.SawFlag = "3"; sawresultdetail.Change = "0"; RowNum = int.Parse(sawresultdetail.RowCount.ToString()); if (sawresultdetail.PlineCode != "C012") { string colno = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["COL_NO2"].Value.ToString(); colno = colno.Substring(0, 1); int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteRackCOL_NO", new object[] { HeatNo, colno, RowNum, SAW_NUM }, this.ob); } int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTEND", new object[] { sawresultdetail }, this.ob); //MessageBox.Show("管排锯操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); if (LimitCut(HeatNo) == 0) { MessageBox.Show("当前炉已完成管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("还有操作未完成,不允许执行锯切完成操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } break; case "btnCUT_BACK1": if (isback(HeatNo, tempROW_NO1)) { int count3 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTBACK", new object[] { tempROW_NO1, HeatNo }, this.ob); tempROW_NO1 = tempROW_NO1 - 1; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_NO1"].Value = ""; } else { MessageBox.Show("已进行管排锯操作或无该条记录,不能回退。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; case "btnCUT_BACK2": if (isback(HeatNo, tempROW_NO2)) { int count4 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTBACK", new object[] { tempROW_NO2, HeatNo }, this.ob); tempROW_NO2 = tempROW_NO2 - 1; this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_NO2"].Value = ""; } else { MessageBox.Show("已进行管排锯操作或无该条记录,不能回退。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; } } /// /// 是否插入记录//true插入,false不插入 /// /// 判定炉号 /// 分切标识 /// /// public bool isinsert(string Heatno, int Sawflag, int Sawno) { bool result = true;//true插入,false不插入 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { int temp = Int16.Parse(dr["SAW_FLAG"].ToString()); int temp1 = 0; if (!string.IsNullOrEmpty(dr["SAW_NO"].ToString())) { temp1 = Int16.Parse(dr["SAW_NO"].ToString()); } int temp2 = 0; if (!string.IsNullOrEmpty(dr["SAW_NO_N"].ToString())) { temp2 = Int16.Parse(dr["SAW_NO_N"].ToString()); } if (temp == Sawflag) { if (temp1 == Sawno || temp2 == Sawno) { result = false; } } } } return result; } public bool isOperate(string Heatno, int Sawflag, int Sawno) { bool result = false;//true插入,false不插入 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { int temp = Int16.Parse(dr["SAW_FLAG"].ToString()); int temp1 = 0; if (!string.IsNullOrEmpty(dr["SAW_NO"].ToString())) { temp1 = Int16.Parse(dr["SAW_NO"].ToString()); } int temp2 = 0; if (!string.IsNullOrEmpty(dr["SAW_NO_N"].ToString())) { temp2 = Int16.Parse(dr["SAW_NO_N"].ToString()); } if (temp == Sawflag) { if (temp1 == Sawno || temp2 == Sawno) { result = true; } } } } return result; } /// /// 能否回退 /// /// /// private bool isback(string Heatno, int tempno) { bool result = false; DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (!string.IsNullOrEmpty(dr["ROW_NO"].ToString())) { if (int.Parse(dr["ROW_NO"].ToString()) == tempno) { if (string.IsNullOrEmpty(dr["ROW_COUNT"].ToString()) && string.IsNullOrEmpty(dr["ORDER_LENGTH"].ToString()) && string.IsNullOrEmpty(dr["CUT_HEAD_LENGTH"].ToString()) && string.IsNullOrEmpty(dr["CUT_TRAIL_LENGTH"].ToString())) { result = true; } } } } } return result; } /// /// 查询当前符合条件的值,赋值给类,以更新 /// /// /// /// /// /// public MilSawResultDeatilEntity changeENtity(MilSawResultDeatilEntity sawresultdetail, string heatno, int tempROW_NO) { DataTable dtdetail1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { heatno, proPlanId, gxPlanNo }, this.ob); if (dtdetail1.Rows.Count > 0) { foreach (DataRow dr in dtdetail1.Rows) { if (dr["ROW_NO"].ToString() == tempROW_NO.ToString()) { sawresultdetail.SawNo = dr["SAW_NO"].ToString(); sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString(); sawresultdetail.RowCount = dr["ROW_COUNT"].ToString(); sawresultdetail.OrderLength = dr["ORDER_LENGTH"].ToString(); sawresultdetail.CutHeadLength = dr["CUT_HEAD_LENGTH"].ToString(); sawresultdetail.CutTrailLength = dr["CUT_TRAIL_LENGTH"].ToString(); sawresultdetail.CutHeadLengthTotal = dr["CUT_HEAD_LENGTH_TOTAL"].ToString(); sawresultdetail.CutTrailLengthTotal = dr["CUT_TRAIL_LENGTH_TOTAL"].ToString(); } } } return sawresultdetail; } /// /// 获取当前可切最大支数 /// /// /// public int LimitCut(string heatno) { string nodeFlag = ""; int result = 0; //查询定径结炉是否完成 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { heatno, proPlanId, gxPlanNo }, this.ob); if (!string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString())) { nodeFlag = dt.Rows[0]["NODE_FUR_FLAG"].ToString(); DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.LimitCut", new object[] { heatno, nodeFlag }, this.ob); if (nodeFlag == "1")//已结炉 { result = int.Parse(dt1.Rows[0]["Counts"].ToString()); } if (nodeFlag == "0") { CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult"; ccp.MethodName = "scrapMatCheck"; ccp.ServerParams = new Object[] { heatno, 7, proPlanId, gxPlanNo }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo); int temp = int.Parse(dt1.Rows[0]["Counts"].ToString()); result = temp - ScrapNumBefore; } } return result; } /// /// 判断能否锯切完成 /// /// /// /// public bool isCut_End(MilSawResultDeatilEntity sawresultdetail) { bool iscutend = false; if (sawresultdetail.CutTrailLength.ToString() != "" && sawresultdetail.CutHeadLength.ToString() != "" && sawresultdetail.OrderLength.ToString() != "") { iscutend = true; } return iscutend; } /// /// 更新跟踪记录表排号 /// /// 排号 /// 判定炉号 public void updateROW_NOtoSawRack(MilSawResultDeatilEntity MILSAWRACK) { DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawRack", new object[] { MILSAWRACK }, this.ob); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (!string.IsNullOrEmpty(dr["ROW_NO"].ToString())) { if (dr["ROW_NO"].ToString() == MILSAWRACK.RowNo.ToString()) { //MessageBox.Show("已完成切头操作,不允许重复执行", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawRackRowNo", new object[] { MILSAWRACK }, this.ob); } /// /// 更新跟踪记录表 /// /// public void UpdateSawRack(MilSawResultDeatilEntity MILSAWRACK) { int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawRack", new object[] { MILSAWRACK }, this.ob); } /// /// 切头确认 /// /// public void RowResultAdd(int SawNo) { MilSawResultDeatilEntity MilSawResultDeatilAdd = new MilSawResultDeatilEntity(); MilSawRackEntity MilSawRackSave = new MilSawRackEntity(); UltraGridRow ugr = ultraGridPlan.ActiveRow; UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0]; pipeSawResult1.UltraGrid2.UpdateData(); if (ugr != null) { MilSawResultDeatilAdd.JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); MilSawResultDeatilAdd.LotNo = ugr.Cells["LOT_NO"].Value.ToString(); MilSawResultDeatilAdd.PlineCode = ""; if (SawNo == 1) { //排号 MilSawResultDeatilAdd.RowNo = ugr1.Cells["ROW_NO1"].ToString(); //锯号1 MilSawResultDeatilAdd.SawNo = ugr1.Cells["SAW_NO11"].ToString(); //锯号2 MilSawResultDeatilAdd.SawNoN = ugr1.Cells["SAW_NO12"].ToString(); //排支数 MilSawResultDeatilAdd.RowCount = ugr1.Cells["ROW_COUNT1"].ToString(); //切头长度 MilSawResultDeatilAdd.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString(); } else { //排号 MilSawResultDeatilAdd.RowNo = ugr1.Cells["ROW_NO2"].ToString(); //锯号1 MilSawResultDeatilAdd.SawNo = ugr1.Cells["SAW_NO21"].ToString(); //锯号2 MilSawResultDeatilAdd.SawNoN = ugr1.Cells["SAW_NO22"].ToString(); //排支数 MilSawResultDeatilAdd.RowCount = ugr1.Cells["ROW_COUNT2"].ToString(); //切头长度 MilSawResultDeatilAdd.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString(); } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.addRowResult", new object[] { MilSawResultDeatilAdd }, this.ob); //确认管号队列对应管的排号 //排号 MilSawRackSave.RowNo = MilSawResultDeatilAdd.RowNo; //锯号1 MilSawRackSave.SawNo = MilSawResultDeatilAdd.SawNo; //锯号2 MilSawRackSave.SawNo = MilSawResultDeatilAdd.SawNoN; //切头长度 MilSawRackSave.CutHeadLength = MilSawResultDeatilAdd.CutHeadLength; MilSawRackSave.JudgeStoveNo = MilSawResultDeatilAdd.JudgeStoveNo; //支数 int RowCount = int.Parse(MilSawResultDeatilAdd.RowCount.ToString()); int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateMatRowNo", new object[] { MilSawResultDeatilAdd, RowCount, MilSawResultDeatilAdd.JudgeStoveNo }, this.ob); } } /// /// 剔除操作 /// /// /// private void ultraGridMatSeq_ClickCellButton(object sender, CellEventArgs e) { MilSawRackEntity sawrack = new MilSawRackEntity(); MilSlabScrapSeqEntity ScrapSlab = new MilSlabScrapSeqEntity(); UltraGridRow ugr = ultraGridMatSeq.ActiveRow; UltraGridRow ugr1 = ultraGridPlan.ActiveRow; if (ugr == null || ugr1 == null) { MessageBox.Show("您未选择计划或管子,不允许操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //查看结炉标识 string JudgeStoveNo1 = ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString(); string PlanStatuss = ugr1.Cells["IS_START"].Value.ToString(); string ROW_NO = ugr.Cells["ROW_NO"].Value.ToString();//排号 string CUT_HEAD_LENGTH = ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString();//切头长度 string CUT_TRAIL_LENGTH = ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString();//切尾长度 int DBNUM = int.Parse(pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_MUMP"].Value.ToString()); Shift = UserInfo.GetUserOrder(); Group = UserInfo.GetUserGroup(); DataTable dtFlag = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.GetSingleJRLResult", new object[] { JudgeStoveNo1, proPlanId, gxPlanNo }, this.ob); if (dtFlag.Rows.Count > 0) { if (string.IsNullOrEmpty(dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString())) { MessageBox.Show("炉号【" + JudgeStoveNo1 + "】未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString() == "1") { MessageBox.Show("炉号【" + JudgeStoveNo1 + "】已结炉,不允许操作管排锯", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (PlanStatuss != "已开始分切") { MessageBox.Show("炉号【" + JudgeStoveNo1 + "】不是已开始分切,不允许修改管号队列。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int Scrapcount = 0; int ScrapDBcount = 0; if (ugr != null) { string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); int Seq = int.Parse(ugr.Cells["SEQ"].Value.ToString()); string MAT_NO = ugr.Cells["MAT_NO"].Value.ToString(); string PlanStatus = ugr1.Cells["IS_START"].Value.ToString(); string MatStatus = ugr.Cells["STATUS"].Value.ToString(); string shif = ugr.Cells["COL_SHIFT"].Value.ToString(); string group = ugr.Cells["COL_GROUP"].Value.ToString(); NativeMethodNew nasssss = new NativeMethodNew(this.ob); if (nasssss.IsRackOperate(shif, group)) { MessageBox.Show("序号:【" + Seq + "】母管已由" + shif + "," + group + "操作,不允许再进行操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (e.Cell.Column.Key == "SCRAP")//切前剔 { if (MatStatus == "切前剔除" || MatStatus == "切后剔除") { MessageBox.Show("序号:【" + Seq + "】母管已经进行过剔除操作,不允许再次剔除!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //if (MessageUtil.ShowYesNoAndQuestion("是否剔除该坯料") == DialogResult.No) //{ // return; //} DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.FurResult.selectPortBacthSlample", new object[] { MAT_NO }, ob); if (ds.Rows.Count > 0) { if (MessageUtil.ShowYesNoAndQuestion("此管坯已有被取为样管,是否继续剔除?") == DialogResult.No) { return; } } if (!string.IsNullOrEmpty(ROW_NO) || !string.IsNullOrEmpty(CUT_HEAD_LENGTH)) { MessageBox.Show("序号为【" + Seq + "】的管号已开始切头,不允许切前剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } ScrapSlab.JudgeStoveNo = JudgeStoveNo; ScrapSlab.Seq = Seq; ScrapSlab.ProcessNo = "7"; ScrapSlab.Status = "3"; ScrapSlab.Flag = "0"; ScrapSlab.ColMode = "1"; ScrapSlab.MatNo = MAT_NO; ScrapSlab.ColUser = UserInfo.GetUserName(); ScrapSlab.ColGroup = UserInfo.GetUserGroup(); ScrapSlab.ColShift = UserInfo.GetUserOrder(); ScrapSlab.ProPlanId = proPlanId; ScrapSlab.GxPlanNo = gxPlanNo; //剔管操作,:1、插入MIL_SLAB_SCRAP_SEQ表,2、管排锯跟踪记录表状态,3、修改加管排锯实绩表剔除支数 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMat", new Object[] { ScrapSlab }, this.ob); if (count > 0) { //MessageBox.Show("母管序号【" + Seq + "】剔除成功!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("母管序号【" + Seq + "】剔除失败!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } if (e.Cell.Column.Key == "SCRAP_DB")//切后剔 { int counts = 0; if (MatStatus == "切前剔除" || MatStatus == "切后剔除") { MessageBox.Show("序号:【" + Seq + "】母管已经进行过剔除操作,不允许再次剔除!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //if (MessageUtil.ShowYesNoAndQuestion("是否剔除该坯料") == DialogResult.No) //{ // return; //} DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.FurResult.selectPortBacthSlample", new object[] { MAT_NO }, ob); if (ds.Rows.Count > 0) { if (MessageUtil.ShowYesNoAndQuestion("此管坯已有被取为样管,是否继续剔除?") == DialogResult.No) { return; } } //查询前几道工序累计剔除多少半成品管(管坯等进行换算) CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult"; ccp.MethodName = "scrapMatCheck"; ccp.ServerParams = new Object[] { JudgeStoveNo, 8, proPlanId, gxPlanNo }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo); if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq) { MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(ROW_NO) || string.IsNullOrEmpty(CUT_TRAIL_LENGTH)) { MessageBox.Show("序号为【" + Seq + "】的管号未开始切尾,不允许切后剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!String.IsNullOrEmpty(ugr.Cells["SCRAP_DBNUM"].Value.ToString())) { ScrapSlab.ScrapDbnum = ugr.Cells["SCRAP_DBNUM"].Value.ToString(); if (int.Parse(ScrapSlab.ScrapDbnum.ToString()) > SAW_NUM) { MessageBox.Show("输入或选择的切后剔除支数违规,不允许进行切后剔除操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } else { MessageBox.Show("请输入需要剔除的支数后在进行切后剔除操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(ugr.Cells["SCRAP_REASON"].Value.ToString())) { MessageBox.Show("您未输入或选择剔除原因,请重新输入后再进行剔除操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (GetLength(ugr.Cells["SCRAP_REASON"].Value.ToString()) > 100) { MessageUtil.ShowTips("您输入的剔除原因字节过长,请重新输入!"); return; } for (int i = 0; i < int.Parse(ScrapSlab.ScrapDbnum.ToString()); i++) { ScrapSlab.JudgeStoveNo = JudgeStoveNo; ScrapSlab.Seq = ((Seq - 1) * DBNUM + i + 1).ToString(); ScrapSlab.ProcessNo = "8"; ScrapSlab.Status = "4"; ScrapSlab.Flag = "0"; ScrapSlab.ColMode = "1"; ScrapSlab.MatNo = MAT_NO; ScrapSlab.ColUser = UserInfo.GetUserName(); ScrapSlab.ColGroup = UserInfo.GetUserGroup(); ScrapSlab.ColShift = UserInfo.GetUserOrder(); ScrapSlab.ColNo = ugr.Cells["COL_NO"].Value.ToString();//排号 ScrapSlab.GxPlanNo = gxPlanNo; ScrapSlab.ProPlanId = proPlanId; //SCRAP_DBNUM//切后剔支数 //1、插入MIL_SLAB_SCRAP_SEQ表 counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMatDBSEQ", new Object[] { ScrapSlab }, this.ob); } string reason = ugr.Cells["SCRAP_REASON"].Value.ToString(); ScrapSlab.ScrapReason = reason; ScrapSlab.Seq = Seq; //剔管操作,:2、管排锯跟踪记录表状态,设置切后剔除的值,3、修改加管排锯实绩表剔除支数 counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMatDB", new Object[] { ScrapSlab }, this.ob); if (counts > 0) { //MessageBox.Show("母管序号【" + Seq + "】切后剔除【" + ugr.Cells["SCRAP_DBNUM"].Value.ToString() + "】支子管成功!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("母管序号【" + Seq + "】切后剔除【" + ugr.Cells["SCRAP_DBNUM"].Value.ToString() + "】支子管失败!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } if (e.Cell.Column.Key == "DELBACK") { //if (MessageUtil.ShowYesNoAndQuestion("是否回退该剔除的坯料") == DialogResult.No) //{ // return; //} if (!MatStatus.Contains("剔除")) { MessageBox.Show("该坯料未被剔除,请确认后重新选择!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } NativeMethodNew na = new NativeMethodNew(this.ob); if (MatStatus.Equals("切前剔除")) { int counts = na.DeleteSlabSeq(JudgeStoveNo, Seq.ToString(), 7, 1, 0, proPlanId, gxPlanNo); if (counts > 0) { //MessageBox.Show("剔料回退成功", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("剔料回退失败", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (MatStatus.Equals("切后剔除")) { int num = 0; if (!string.IsNullOrEmpty(ultraGridMatSeq.ActiveRow.Cells["SCRAP_DBNUM"].Value.ToString())) { num = int.Parse(ultraGridMatSeq.ActiveRow.Cells["SCRAP_DBNUM"].Value.ToString()); } DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetRackScrpNum", new object[] { JudgeStoveNo, Seq.ToString(), proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { num = int.Parse(dt.Rows[0]["SCRAP_DBNUM"].ToString()); } int counts = na.DeleteSlabSeq(JudgeStoveNo, Seq.ToString(), 8, num, DBNUM, proPlanId, gxPlanNo); if (counts > 0) { //MessageBox.Show("剔料回退成功", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("剔料回退失败", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } if (e.Cell.Column.Key == "RowNoChang")//排号修改 { } #region 原来的交班操作 //if (e.Cell.Column.Key == "ChangShift") //{ // //查询前几道工序累计剔除多少半成品管(管坯等进行换算) // CoreClientParam ccp = new CoreClientParam(); // ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult"; // ccp.MethodName = "scrapMatCheck"; // ccp.ServerParams = new Object[] { JudgeStoveNo, 7 }; // ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); // int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo); // if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq) // { // MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; // } // NativeMethodNew nas = new NativeMethodNew(this.ob); // string Shift = UserInfo.GetUserOrder(); // string Group = UserInfo.GetUserGroup(); // if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("正常")) // { // int count = nas.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1,"0"); // if (count < 1) // { // MessageBox.Show("交接班失败,请查找原因后重新操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; // } // } // if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("交班点"))//回退 // { // NativeMethodNew nass = new NativeMethodNew(this.ob); // nass.ChangeShiftBack(JudgeStoveNo, this.ActiveResultNo, this.PlineCode, Shift, Group, 6); // } //} #endregion //交班 if (e.Cell.Column.Key == "ChangShift") { string seqlast = ""; //查询前几道工序累计剔除多少半成品管(管坯等进行换算) CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult"; ccp.MethodName = "scrapMatCheck"; ccp.ServerParams = new Object[] { JudgeStoveNo, 7, proPlanId, gxPlanNo }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo); if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq) { MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("确认交班") || ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("待接班确认")) { MessageBox.Show("序号:【" + Seq + "】已进行了交接班操作,不允许再次进行", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //找到本台交接班的第一只 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.GetRackChangeFlag", new object[] { JudgeStoveNo, ActiveResultNo, Seq.ToString(), 0, "0", Shift, Group, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { if (!string.IsNullOrEmpty(dt.Rows[0]["SEQ"].ToString())) { seqlast = dt.Rows[0]["SEQ"].ToString(); } else { //seqlast = "1"; } } else { //seqlast = "1"; } if (int.Parse(seqlast) > Seq) { MessageBox.Show("您所选的管号队列交接班支已被上一班操作,不允许进行交接班", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { HOTMethod hm = new HOTMethod(this.ob); hm.UpdateChangeFlag(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, Seq, 0); } } //接班 if (e.Cell.Column.Key == "BTNCHANGECOM") { HOTMethod hm = new HOTMethod(this.ob); int WaitChangeSeq = hm.GetWaitChangeSeq(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, 0, proPlanId, gxPlanNo); if (WaitChangeSeq == 0) { MessageBox.Show("没有待交班确认的管号。"); return; } if (WaitChangeSeq != Seq) { MessageBox.Show("交班管序号与接班管序号不符,请确认后接班。"); return; } if (MessageUtil.ShowYesNoAndQuestion("确认炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】序号:【" + Seq + "】交班?") == DialogResult.No) { return; } if (this.DoRelogin(DoCheck)) { //接班 NativeMethodNew nass = new NativeMethodNew(this.ob); nass.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1, "0", proPlanId, gxPlanNo); } //} //else //{ // NativeMethodNew nass = new NativeMethodNew(this.ob); // nass.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1, "0"); //} } if (ultraGridPlan.Rows == null) { return; } //GetRollingCard(); ////分切计划(实绩)更新 //GetSawResultEdit(JudgeStoveNo); ////管号队列重新赋值 //GetMatRack(JudgeStoveNo); PlanQuery(); foreach (UltraGridRow ugr_1 in ultraGridMatSeq.Rows) { if (ugr_1.Cells["SEQ"].Value.ToString() == Seq.ToString()) { ultraGridMatSeq.ActiveRow = ugr_1; } } ChangeGridColor(); } } public static int GetLength(string str) { if (str.Length == 0) return 0; ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen = 0; byte[] s = ascii.GetBytes(str); for (int i = 0; i < s.Length; i++) { if ((int)s[i] == 63) { tempLen += 2; } else { tempLen += 1; } } return tempLen; } public string DoCheck(CoreUserInfo User) { return ""; } private void ultraGridMatSeq_AfterCellUpdate(object sender, CellEventArgs e) { UltraGridRow ugr = null; UltraGridRow ugr_plan = null; ugr = this.ultraGridMatSeq.ActiveRow; ugr_plan = this.ultraGridPlan.ActiveRow; int rownomax = 0; if (ugr == null) { return; } string heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); string seq = ugr.Cells["SEQ"].Value.ToString(); if (e.Cell.Column.Key == "SCRAP_DBNUM") { //ugr.Cells["SCRAP_DBNUM"].Value = ""; //GetMatRack(heatno); //ChangeGridColor(); //foreach (UltraGridRow ugr111 in this.ultraGridMatSeq.Rows) //{ // if (ugr111.Cells["SEQ"].Value.ToString().Equals(seq)) // { // ultraGridMatSeq.ActiveRow = ugr111; // } //} return; } string status = ugr.Cells["STATUS"].Value.ToString(); int scrapnum = int.Parse(ugr.Cells["SCRAP_DBNUM"].Value.ToString3()); if (status.Contains("剔除") && scrapnum == SAW_NUM) { MessageBox.Show("序号:【" + seq + "】所有子管均被剔除,不允许修改。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } if (ugr_plan.Cells["IS_START"].Value.ToString().Equals("已完成分切")) { MessageBox.Show("炉号:【" + heatno + "】已完成分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); if (dtDeatail.Rows.Count > 0) { foreach (DataRow dr in dtDeatail.Rows) { if (!dr["SAW_FLAG"].Equals("3")) { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; //只针对快速分切,如果是逐排切的话则允许 } rownomax = (rownomax > int.Parse(dr["ROW_NO"].ToString())) ? rownomax : (int.Parse(dr["ROW_NO"].ToString())); } } else { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } // string heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); string Seq = ugr.Cells["SEQ"].Value.ToString(); string remark = ""; string rowno = ""; string cuttype = ""; float cuthead = 0; float cutorder = 0; float cuttail = 0; string sawno = ""; string sawnon = ""; int sawnum = this.SAW_NUM; float lastorder = 0; cuthead = float.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString()); cutorder = float.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString()); cuttail = float.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString()); if (e.Cell.Column.Key == "ROW_NO") { #region 修改排号 string rownobefor = ""; if (this.PlineCode.Equals("C009")) { if (this.TestMethod.Contains("2")) { MessageBox.Show("您的操作台不允许保修改排号。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } } string rownoafter = ugr.Cells["ROW_NO"].Value.ToString(); if (int.Parse(rownoafter) > (rownomax + 1)) { MessageBox.Show("您输入的新排号【" + rownoafter + "】过大,请确认后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetRownoFromRack", new object[] { heatno, Seq }, this.ob); if (dt.Rows.Count > 0) { if (dt.Rows[0]["ROW_NO"] == null || dt.Rows[0]["ROW_NO"] == "") { MessageBox.Show("序号:【" + Seq + "】母管还未进行分切,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } else { rownobefor = dt.Rows[0]["ROW_NO"].ToString(); } } else { MessageBox.Show("序号:【" + Seq + "】母管还未进行分切,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } MilSawRackEntity sawrackrowno = new MilSawRackEntity(); sawrackrowno.JudgeStoveNo = heatno; sawrackrowno.Seq = Seq; sawrackrowno.RowNo = rownoafter; sawrackrowno.ProPlanId = proPlanId; sawrackrowno.GxPlanNo = gxPlanNo; foreach (DataRow drs in dtDeatail.Rows) { if (drs["ROW_NO"].ToString().Equals(rownobefor)) { if (drs["ROW_COUNT"].ToString().Equals("1")) { MessageBox.Show("排号:【" + rownobefor + "】只剩一支母管,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } } } int counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackRowNo", new object[] { sawrackrowno, rownobefor}, this.ob); #endregion } if (e.Cell.Column.Key == "CUT_TYPE") { #region if (ugr.Cells["CUT_TYPE"].Value != null) { MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString(); if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾")) { milsawrack.CutType = "1"; lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = lastorder; } else if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("被动切尾")) { milsawrack.CutType = "0"; //lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = ugr.Cells["LAST_ORDER_LENGTH"].Value.ToString(); } else { MessageBox.Show("错误的切尾类型值,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutType", new object[] { milsawrack }, this.ob); GetMatRack(heatno); ChangeGridColor(); } else { MessageBox.Show("切尾类型为空,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } #endregion } if (e.Cell.Column.Key == "REAL_ROLL_LENGTH") { #region if (ugr.Cells["REAL_ROLL_LENGTH"].Value == null || ugr.Cells["REAL_ROLL_LENGTH"].Value == "") { MessageBox.Show("实际轧制长度为空,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } if (Convert.ToInt16(ugr.Cells["REAL_ROLL_LENGTH"].Value) == 0) { MessageBox.Show("实际轧制长度类型错误或值为0,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString(); if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾")) { milsawrack.CutType = "1"; lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = lastorder; } if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("被动切尾")) { milsawrack.CutType = "0"; //lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = ugr.Cells["LAST_ORDER_LENGTH"].Value.ToString(); } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutType", new object[] { milsawrack }, this.ob); GetMatRack(heatno); ChangeGridColor(); #endregion } if (e.Cell.Column.Key == "SAW_NO") { #region if (ugr.Cells["SAW_NO"].Value.ToString().Equals("1") || ugr.Cells["SAW_NO"].Value.ToString().Equals("2")) { MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString(); milsawrack.SawNo = ugr.Cells["SAW_NO"].Value.ToString(); int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 0, milsawrack.SawNo.ToString(), "0" }, this.ob); GetMatRack(heatno); ChangeGridColor(); } else { MessageBox.Show("锯号1输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } #endregion } if (e.Cell.Column.Key == "SAW_NO_N") { #region if (ugr.Cells["SAW_NO_N"].Value.ToString().Equals("3") || ugr.Cells["SAW_NO_N"].Value.ToString().Equals("4")) { MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString(); milsawrack.SawNoN = ugr.Cells["SAW_NO_N"].Value.ToString(); int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 1, milsawrack.SawNoN.ToString(), "0" }, this.ob); GetMatRack(heatno); ChangeGridColor(); } else { MessageBox.Show("锯号2输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } #endregion } if (e.Cell.Column.Key == "CUT_HEAD_LENGTH") { #region if (double.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString()) <= 0) { MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString(); milsawrack.CutHeadLength = ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString(); double cutheatbefore = 0.0; DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob); if (dt.Rows.Count > 0) { cutheatbefore = double.Parse(dt.Rows[0]["CUT_HEAD_LENGTH"].ToString()); } double temp = cutheatbefore - double.Parse(milsawrack.CutHeadLength.ToString()); double change = temp / 1000; int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 2, milsawrack.CutHeadLength.ToString(), change.ToString() }, this.ob); GetMatRack(heatno); ChangeGridColor(); #endregion } if (e.Cell.Column.Key == "ORDER_LENGTH") { #region if (double.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString()) <= 0) { MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString(); milsawrack.OrderLength = ugr.Cells["ORDER_LENGTH"].Value.ToString(); double cutheatbefore = 0; DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob); if (dt.Rows.Count > 0) { cutheatbefore = Convert.ToDouble(dt.Rows[0]["ORDER_LENGTH"].ToString()); } double temp = cutheatbefore - double.Parse(milsawrack.OrderLength.ToString()); double change = (double)temp * (this.SAW_NUM - 1); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult"; ccp.MethodName = "doUpdatePorcess"; ccp.ServerParams = new object[] { milsawrack, milsawrack.OrderLength.ToString() }; ccp = ob.ExecuteNonQuery(ccp,CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 3, milsawrack.OrderLength.ToString(), change.ToString() }, this.ob); GetMatRack(heatno); ChangeGridColor(); } } else { MessageUtil.ShowTips(ccp.ReturnInfo); } #endregion } if (e.Cell.Column.Key == "CUT_TRAIL_LENGTH") { #region if (double.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString()) <= 0) { MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); GetMatRack(heatno); ChangeGridColor(); return; } MilSawRackEntity milsawrack = new MilSawRackEntity(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = Seq; milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString(); milsawrack.CutTrailLength = ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString(); double cutheatbefore = 0.0; DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob); if (dt.Rows.Count > 0) { cutheatbefore = double.Parse(dt.Rows[0]["CUT_TRAIL_LENGTH"].ToString()); } double temp = cutheatbefore - double.Parse(milsawrack.CutTrailLength.ToString()); double change = temp / 1000; int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 4, milsawrack.CutTrailLength.ToString(), change.ToString() }, this.ob); GetMatRack(heatno); ChangeGridColor(); #endregion } if (e.Cell.Column.Key == "REMARK") { #region if (ugr.Cells["REMARK"].Value != null) { remark = ugr.Cells["REMARK"].Value.ToString(); NativeMethodNew na = new NativeMethodNew(this.ob); int count = na.SaveRackRemark(0, int.Parse(Seq), heatno, remark); } #endregion } //GetMatRack(heatno); } /// /// 保存跟踪记录表备注 /// public void SaveRackRemark() { DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); if (dtDeatail.Rows.Count > 0) { foreach (DataRow dr in dtDeatail.Rows) { if (!dr["SAW_FLAG"].Equals("3")) { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; //只针对快速分切,如果是逐排切的话则允许 } } } else { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } MilSawRackEntity milsawrack = new MilSawRackEntity(); UltraGridRow ugr = null; string heatno = ""; int seq = 0; string remark = ""; string rowno = ""; string cuttype = ""; float cuthead = 0; float cutorder = 0; float cuttail = 0; string sawno = ""; string sawnon = ""; int sawnum = this.SAW_NUM; float lastorder = 0; ugr = this.ultraGridMatSeq.ActiveRow; if (ugr == null) { MessageBox.Show("您未选择任何管号队列数据,请重新选择后再进行保存操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); seq = Convert.ToInt16(ugr.Cells["SEQ"].Value.ToString()); rowno = ugr.Cells["ROW_NO"].Value.ToString(); cuthead = float.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString()); cutorder = float.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString()); cuttail = float.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString()); sawno = ugr.Cells["SAW_NO"].Value.ToString(); sawnon = ugr.Cells["SAW_NO_N"].Value.ToString(); milsawrack.JudgeStoveNo = heatno; milsawrack.Seq = seq; milsawrack.RowNo = rowno; milsawrack.CutHeadLength = cuthead; milsawrack.OrderLength = cutorder; milsawrack.CutTrailLength = cuttail; milsawrack.SawNo = sawno; milsawrack.SawNoN = sawnon; if (!string.IsNullOrEmpty(ugr.Cells["REMARK"].Value.ToString())) { remark = ugr.Cells["REMARK"].Value.ToString(); } else { remark = ""; } milsawrack.Remark = remark; milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString(); if (ugr.Cells["CUT_TYPE"].Value != null && ugr.Cells["CUT_TYPE"].Value != "") { if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾")) { milsawrack.CutType = "1"; lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 100 - cuttail / 100 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = lastorder; } else { milsawrack.CutType = "0"; lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 100 - cuttail / 100 - cutorder * (sawnum - 1); milsawrack.LastOrderLength = lastorder; } } //milsawrack. } /// /// 保存当前实绩(该) /// public void SawResultSave() { string saveflag = "0"; MilSawResultEntity milsawresult = new MilSawResultEntity(); this.pipeSawResult1.UltraGrid2.UpdateData(); milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult); milsawresult.OrderLength = milsawresult.TargetLength; //milsawresult.SawNum = pipeSawResult1.UltraGrid2.// Rows[0]["SAW_NUM"].toString(); milsawresult.SawNum = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NUM"].Value.ToString(); if (this.ultraGridPlan.ActiveRow == null && ActiveJUDGE_STOVE_NO == null) { MessageBox.Show("未选择任何炉号,请选择炉号后进行保存操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (this.ultraGridPlan.ActiveRow == null) { milsawresult.JudgeStoveNo = ActiveJUDGE_STOVE_NO; } else { milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString(); } if (ActiveStatus == "3") { MessageBox.Show("炉号:【" + milsawresult.JudgeStoveNo + "】未开始进行分切,不允许进行保存操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (ActiveStatus == "1") { saveflag = "1"; //MessageBox.Show("炉号:【" + milsawresult.JudgeStoveNo + "】已完成分切操作,不允许进行保存操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); //return; } //if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + milsawresult.JudgeStoveNo + "】保存实绩?") == DialogResult.No) //{ // return; //} milsawresult.NodeFurFlag = "0"; milsawresult.ProPlanId = proPlanId; milsawresult.GxPlanNo = gxPlanNo; //插入实绩表 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawResult", new object[] { milsawresult, saveflag }, this.ob); if (count == 1) { MessageBox.Show("保存操作完成!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.pipeSawResult1.IsCellSelect = false; PlanQuery(); } } /// /// 结炉操作 /// 1、判断上一道工序结炉状态,2、更新实绩表(包括结炉时间,结炉状态),3.更新主表NODE_STATUS /// public void SawesultNode() { SawResultSave(); if (this.PlineCode.Equals("C009")) { //if (this.TestMethod.Contains("1")) //{ // MessageBox.Show("您的操作台不允许进行分切结炉操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} } //判断是否有重复剔除的坯子 foreach (UltraGridRow ugr4 in ultraGridMatSeq.Rows) { if (ugr4.Cells["MAT_NO"].Value.ToString().Equals("") && ugr4.Cells["STATUS"].Value.ToString().Equals("剔除")) { MessageBox.Show("不存在序号第【" + ugr4.Cells["SEQ"].Value.ToString() + "】的管子,它已被其它工序剔除,不能再次剔除", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } HOTMethod hm = new HOTMethod(this.ob); int WaitChangeSeq = hm.GetWaitChangeSeq(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, 0, proPlanId, gxPlanNo); if (WaitChangeSeq > 0) { MessageBox.Show("管号【" + WaitChangeSeq + "】未接班确认,不能结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //UltraGridRow ugrRack = this.ultraGridMatSeq.ActiveRow; //if (ugrRack == null) //{ // return; //} //if (ugrRack.Cells["CUT_HEAD_LENGTH"].Text.Trim() == "") //{ // MessageUtil.ShowTips("分切未成功,请开始回退后再进行分切!"); // return; //} UltraGridRow ugr_plan = this.ultraGridPlan.ActiveRow; //UltraGridRow ugr = ultraGridPlan.ActiveRow; UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0]; UltraGridRow ugr2 = this.rollingCard1.UltraGrid4.Rows[0]; pipeSawResult1.UltraGrid2.UpdateData(); if (ugr_plan != null) { string JudgeStoveNo = ugr_plan.Cells["JUDGE_STOVE_NO"].Value.ToString(); string resultNo = ugr_plan.Cells["ID"].Value.ToString(); //string Status = ugr_plan.Cells["IS_START"].Value.ToString(); string Status = doQueryJugeNoStaus(resultNo, JudgeStoveNo, PlineCode); if (Status == "1") { MessageBox.Show("炉号:【" + JudgeStoveNo + "】已完成分切操作,不允许进行结炉操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //查询定径结炉是否完成 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count == 0) { MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString())) { MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dt.Rows[0]["NODE_FUR_FLAG"].ToString() != "1")// { MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int cut = LimitCut(JudgeStoveNo); if (cut > 0) { MessageBox.Show("炉号:【" + JudgeStoveNo + "】存在【" + cut + "】支母管未进行分切操作,不允许结炉。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + JudgeStoveNo + "】结炉?") == DialogResult.No) { return; } DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); if (dtDeatail.Rows.Count > 0) { int rownomax = 0; foreach (DataRow dr in dtDeatail.Rows) { if (!dr["SAW_FLAG"].Equals("3")) { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; //只针对快速分切,如果是逐排切的话则允许 } rownomax = (rownomax > int.Parse(dr["ROW_NO"].ToString())) ? rownomax : (int.Parse(dr["ROW_NO"].ToString())); } } else { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //保存当前实绩 MilSawResultEntity milsawresult = new MilSawResultEntity(); this.pipeSawResult1.UltraGrid2.UpdateData(); milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult); ////切前剔除支数 //if (!string.IsNullOrEmpty(ugr2.Cells["ScrapNum9"].Value.ToString())) //{ // milsawresult.ScrapNum = ugr2.Cells["ScrapNum9"].Value.ToString(); //} //else //{ // milsawresult.ScrapNum = "0"; //} ////切后剔除支数 //if (!string.IsNullOrEmpty(ugr2.Cells["ScrapNum10"].Value.ToString())) //{ // milsawresult.ScrapDbnum = ugr2.Cells["ScrapNum10"].Value.ToString(); //} //else //{ // milsawresult.ScrapDbnum = "0"; //} //来料支数 int MatNum = 0; if (!string.IsNullOrEmpty(ugr2.Cells["QualifiedNum7"].Value.ToString())) { MatNum = Convert.ToInt32(ugr2.Cells["QualifiedNum7"].Value.ToString()); } //切前合格支数 milsawresult.CutNum = MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString()); //分切数 int sawnum = int.Parse(ugr1.Cells["SAW_MUMP"].Value.ToString()); //切后合格支数 milsawresult.CutDbnum = (MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString())) * sawnum - int.Parse(ugr2.Cells["ScrapNum10"].Value.ToString()); //交接班支数 milsawresult.ChangeNum = ugr1.Cells["CHANGE_NUM"].Value.ToString(); milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString(); //合格吨 //切头切尾重量计算(待修改) double DBHeight = 0; double BurnningRate = 0; double BurnningRate1 = 0; double DBNum = 1; int cutNum = 0; NativeMethodNew na1 = new NativeMethodNew(this.ob); double percent0 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 0); double percent1 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 1); double percent2 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 2); if (percent0 == 100.0) { MessageBox.Show("炉号:【" + JudgeStoveNo + "】尚未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dtDBH = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getDbHeight", new object[] { JudgeStoveNo, ActiveResultNo, proPlanId, gxPlanNo }, this.ob); if (dtDBH.Rows.Count > 0) { if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_HEIGHT"].ToString())) { DBHeight = double.Parse(dtDBH.Rows[0]["DB_HEIGHT"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNNING_RATE"].ToString())) { BurnningRate = double.Parse(dtDBH.Rows[0]["BURNNING_RATE"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNINGRATE"].ToString())) { BurnningRate1 = double.Parse(dtDBH.Rows[0]["BURNINGRATE"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_NUM"].ToString())) { DBNum = double.Parse(dtDBH.Rows[0]["DB_NUM"].ToString()); } if (!string.IsNullOrEmpty(dtDBH.Rows[0]["CUT_NUM"].ToString())) { cutNum = int.Parse(dtDBH.Rows[0]["CUT_NUM"].ToString()); } } //分产线 是否经过再加热炉 if (this.PlineCode == "C008" || this.PlineCode == "C009" || PlineCode == "C012" || PlineCode == "C017" || PlineCode == "C010") { double temp = DBHeight * (1 - (BurnningRate / 100)); double tempnum = double.Parse(milsawresult.CutDbnum.ToString()); milsawresult.QaTon = temp * percent0 / 100 * tempnum; //milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString());//单倍重*(1-烧损率)*定尺长度占比*切合支数 //milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString()); milsawresult.CutHeadHeightTotal = DBHeight * 1.02 * cutNum * percent1 / 1000; milsawresult.CutTrailHeigthTotal = DBHeight * 1.02 * cutNum * percent2 / 1000; milsawresult.CutTrailLengthTotal = double.Parse(milsawresult.CutTrailLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000; milsawresult.CutHeadLengthTotal = double.Parse(milsawresult.CutHeadLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000; } //else //{ // double temp = DBHeight * (1 - (BurnningRate / 100)) * (1 - (BurnningRate1 / 100)); // double tempnum = double.Parse(milsawresult.CutDbnum.ToString()); // milsawresult.QaTon = temp * percent0 / 100 * tempnum; // milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString()); // milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString()); // milsawresult.CutTrailLengthTotal = double.Parse(milsawresult.CutTrailLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000; // milsawresult.CutHeadLengthTotal = double.Parse(milsawresult.CutHeadLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000; //} milsawresult.ColGroup = UserInfo.GetUserGroup(); milsawresult.ColShift = UserInfo.GetUserOrder(); milsawresult.ColUser = UserInfo.GetUserName(); milsawresult.UserId = _UserID; milsawresult.ProPlanId = proPlanId; milsawresult.GxPlanNo = gxPlanNo; milsawresult.JudgeStoveNo = JudgeStoveNo; milsawresult.LotNo = lotNo; milsawresult.PlineCode = PlineCode; //写进程表 CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult"; ccp.MethodName = "updateMilSlab"; ccp.ServerParams = new object[] { JudgeStoveNo, proPlanId, gxPlanNo }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult"; ccp.MethodName = "updateProcessP"; ccp.ServerParams = new object[] { JudgeStoveNo, "7", "7", proPlanId, gxPlanNo, lotNo, PlineCode }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { //插入实绩表 int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawResultNode", new object[] { milsawresult }, this.ob); NativeMethodNew na = new NativeMethodNew(this.ob); na.InsertSTAferDoubleClick(JudgeStoveNo, 6, "1", proPlanId, gxPlanNo); if (count == 1) { //插入MIL_SLAB_SCRAP表 //int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.scrapNodeMat", new object[] { JudgeStoveNo, 7, 0,PlineCode }, this.ob); ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult"; ccp.MethodName = "assignmentMatNo"; ccp.ServerParams = new object[] { JudgeStoveNo, PlineCode, proPlanId, gxPlanNo }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); NativeMethod.CheckNodeMatStatus(JudgeStoveNo, proPlanId, gxPlanNo, 6, this.ob); //MessageBox.Show("炉号【" + JudgeStoveNo + "】结炉完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); //----快速分切结炉时多余料回退 //1.计算已切的料 int CutNum = 0; int CutNumReal = int.Parse(milsawresult.CutNum.ToString()); DataTable dtCutNum = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetCutNum", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob); if (dtCutNum.Rows.Count > 0) { CutNum = int.Parse(dtCutNum.Rows[0]["CutNum"].ToString()); } if (CutNum > CutNumReal) { //执行回退 int countback = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackRowNo", new object[] { JudgeStoveNo, CutNum, CutNumReal, SAW_NUM, proPlanId, gxPlanNo }, this.ob); } //---- this.pipeSawResult1.IsCellSelect = false; //刷新主表 DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob); GridHelper.CopyDataToDatatable(ref dt1, ref dtPlan, true); // ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand); ChangeCellName(); ChangeGridColor(); foreach (UltraGridRow ugrs in this.ultraGridPlan.Rows) { ugrs.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugrs.Cells["JUDGE_STOVE_NO"].Value.ToString()); if (ugrs.Cells["JUDGE_STOVE_NO"].Value.ToString() == JudgeStoveNo) { ultraGridPlan.ActiveRow = ugrs; } } this.QueueDataSet.Clear(); } } } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } } } /// /// 结炉回退 /// private void NodeBack() { if (this.ultraGridPlan.ActiveRow == null) { MessageBox.Show("请选择需要回退的炉号!!!"); return; } UltraGridRow ugr = ultraGridPlan.ActiveRow; string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); string ResultNo = ugr.Cells["ID"].Value.ToString(); string NodeFlag = doQueryJugeNoStaus(ResultNo, JudgeStoveNo,PlineCode); //string NodeFlag = ugr.Cells["IS_START"].Value.ToString(); if (NodeFlag != "1") { MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】未结炉,不能结炉回退!!!!"); return; } DataTable dtMat = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmOffLine.doQueryMatScrap", new object[] { JudgeStoveNo, PlineCode, proPlanId, gxPlanNo }, this.ob); if (dtMat.Rows.Count > 0) { if (int.Parse(dtMat.Rows[0][0].ToString()) > 0) { MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】的废品已发运,不能结炉回退!!!!"); return; } } DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.doNodeBackCheck", new object[] { JudgeStoveNo, ResultNo, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { string NodeProcess = ""; //当前炉次结炉工序 string NodeStatus = dt.Rows[0][0].ToString(); switch (NodeStatus) { case "30": NodeProcess = "穿孔"; break; case "40": NodeProcess = "连轧"; break; case "50": NodeProcess = "再加热炉"; break; case "60": NodeProcess = "定径"; break; case "70": NodeProcess = "分切"; break; case "80": NodeProcess = "矫直"; break; case "90": NodeProcess = "探伤"; break; case "96": NodeProcess = "质检"; break; } if (NodeStatus != "70") { MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】 " + NodeProcess + "工序已结炉,当前工序不能结炉回退"); return; } } string Group = UserInfo.GetUserGroup(); string Shift = UserInfo.GetUserOrder(); //查询结炉班次班组 DataTable dtNodeGroup = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.doNodeBackCheck", new object[] { JudgeStoveNo, ResultNo, 6, proPlanId, gxPlanNo }, this.ob); if (dtNodeGroup.Rows.Count > 0) { string NodeShift = dtNodeGroup.Rows[0][0].ToString(); string NodeGroup = dtNodeGroup.Rows[0][1].ToString(); if (Shift == NodeShift && Group == NodeGroup) { //判断当前炉次下道工序是否结炉 下道工序结炉 - 不允许回退 int Seq = 0; DataTable dt2 = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.changeFlagQuery", new object[] { JudgeStoveNo, ResultNo, 6, proPlanId, gxPlanNo }, this.ob); if (dt2.Rows.Count > 0) { Seq = int.Parse(dt2.Rows[0][0].ToString()); } int count3 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateSlabSeq", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);//情况作废表支材料号 int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.nodeBack", new object[] { JudgeStoveNo, ResultNo, 6, PlineCode, Seq, 0, 7, proPlanId, gxPlanNo, lotNo }, this.ob); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.zgmil.coup.FrmOffLine"; ccp.MethodName = "insertMatScrapBack"; ccp.ServerParams = new object[] { JudgeStoveNo, proPlanId, gxPlanNo, PlineCode, "7" }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); } ChangeGridColor(); PlanQuery(); } else { switch (NodeShift) { case "0": NodeShift = "白班"; break; case "1": NodeShift = "早班"; break; case "2": NodeShift = "中班"; break; case "3": NodeShift = "夜班"; break; } switch (NodeGroup) { case "1": NodeGroup = "甲班"; break; case "2": NodeGroup = "乙班"; break; case "3": NodeGroup = "丙班"; break; case "4": NodeGroup = "丁班"; break; } switch (this.UserInfo.GetUserOrder()) { case "0": Shift = "白班"; break; case "1": Shift = "早班"; break; case "2": Shift = "中班"; break; case "3": Shift = "夜班"; break; } switch (this.UserInfo.GetUserGroup()) { case "1": Group = "甲班"; break; case "2": Group = "乙班"; break; case "3": Group = "丙班"; break; case "4": Group = "丁班"; break; } MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】已由" + NodeGroup + "," + NodeShift + "结炉,当班不能结炉回退"); return; } } } private void ChangeShiftBack() { if (string.IsNullOrEmpty(this.ActiveJUDGE_STOVE_NO)) { MessageBox.Show("您未选择任何计划,不允许进行交班回退操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } UltraGridRow ugr_plan = this.ultraGridPlan.ActiveRow; string Status = ugr_plan.Cells["IS_START"].Value.ToString(); if (Status == "已完成分切") { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】已完成分切操作,不允许进行交班取消!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (Status == "未开始分切") { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】未开始分切操作,不允许进行交班取消!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string Shift = UserInfo.GetUserOrder(); string Group = UserInfo.GetUserGroup(); NativeMethodNew na = new NativeMethodNew(this.ob); if (na.ChangeShiftBackCheck(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "0") || na.ChangeShiftBackCheckelse(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "0", proPlanId, gxPlanNo)) { int count = na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, proPlanId, gxPlanNo, this.PlineCode, Shift, Group, 6); //na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "2"); //if (this.PlineCode.Equals("C010")) //{ // na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "3"); //} if (count < 1) { //MessageBox.Show("交班回退失败, 请确认后重新操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { switch (Shift) { case "1": Shift = "早班"; break; case "2": Shift = "中班"; break; case "3": Shift = "夜班"; break; } switch (Group) { case "1": Group = "甲班"; break; case "2": Group = "乙班"; break; case "3": Group = "丙班"; break; case "4": Group = "丁班"; break; } MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】未在" + Group + "," + Shift + "进行交班操作,不允许进行交班取消操作"); return; } GetSawResultEdit(ActiveJUDGE_STOVE_NO);//分切计划 GetMatRack(ActiveJUDGE_STOVE_NO); ChangeGridColor(); } private void PrintResult() { DateTime SeverTime = NativeMethod.GetSeverTime(this.ob); string Time = SeverTime.ToLongTimeString(); string StartTime = ""; string EndTime = ""; string strurl = ""; if (this.PlineCode.Equals("C009")) { if (this.TestMethod.Contains("2")) { MessageBox.Show("您的操作台不允许保存原始记录。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } switch (PlineCode) { case "C008": //250 Time = Time.Replace(":", ""); if (int.Parse(Time) < 070000) { StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00"; EndTime = SeverTime.ToShortDateString() + " 07:00:00"; string Date2 = SeverTime.ToString("yyyy-MM-dd"); strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult250.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } else { StartTime = SeverTime.ToShortDateString() + " 07:00:00"; EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00"; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult250.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } break; case "C009": //258 //晚班 Time = Time.Replace(":", ""); if (int.Parse(Time) < 070000) { StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00"; EndTime = SeverTime.ToShortDateString() + " 07:00:00"; string Date2 = SeverTime.ToString("yyyy-MM-dd"); strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult258.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } else { StartTime = SeverTime.ToShortDateString() + " 07:00:00"; EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00"; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult258.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } break; case "C072": //508 //晚班 Time = Time.Replace(":", ""); if (int.Parse(Time) < 070000) { StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00"; EndTime = SeverTime.ToShortDateString() + " 07:00:00"; string Date2 = SeverTime.ToString("yyyy-MM-dd"); strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult508.cpt&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } else { StartTime = SeverTime.ToShortDateString() + " 07:00:00"; EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00"; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult508.cpt&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } break; case "C010": //168 Time = Time.Replace(":", ""); if (int.Parse(Time) < 070000) { StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00"; EndTime = SeverTime.ToShortDateString() + " 07:00:00"; string Date2 = SeverTime.ToString("yyyy-MM-dd"); strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult168.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } else { StartTime = SeverTime.ToShortDateString() + " 07:00:00"; EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00"; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult168.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } break; case "C012": //Arssel break; case "C017": //460 Time = Time.Replace(":", ""); if (int.Parse(Time) < 070000) { StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00"; EndTime = SeverTime.ToShortDateString() + " 07:00:00"; string Date2 = SeverTime.ToString("yyyy-MM-dd"); strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult460.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } else { StartTime = SeverTime.ToShortDateString() + " 07:00:00"; EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00"; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult460.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID; } break; } FrmExcel fre = new FrmExcel(this.ob, strurl); // FrmRepExcel fre = new FrmRepExcel(this.ob, strurl); fre.AutoSize = true; fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fre.WindowState = FormWindowState.Maximized; fre.Show(); } /// /// 计划表ROW点击变换判断 /// /// /// private void ultraGridPlan_BeforeRowActivate(object sender, RowEventArgs e) { if (this.pipeSawResult1.IsCellSelect == true) { NativeMethodNew na = new NativeMethodNew(this.ob); if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6)) { this.pipeSawResult1.IsCellSelect = false; return; } //if (MessageBox.Show("提示:探伤实绩可能已修改,是否保存", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) //{ this.pipeSawResult1.IsCellSelect = false; //保存探伤实绩 SawResultSave(); //} //else //{ this.pipeSawResult1.IsCellSelect = false; foreach (UltraGridRow ugr in this.ultraGridPlan.Rows) { if (ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() == ActiveJUDGE_STOVE_NO) { this.ultraGridPlan.ActiveRow = ugr; } } return; //} } } /// /// 排数据保存 /// /// public void RowResultSave(int SawNo) { MilSawResultDeatilEntity MilSawResultDeatilSave = new MilSawResultDeatilEntity(); UltraGridRow ugr = ultraGridPlan.ActiveRow; UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0]; if (ugr != null) { MilSawResultDeatilSave.JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); if (SawNo == 1) { //排号 MilSawResultDeatilSave.RowNo = ugr1.Cells["ROW_NO1"].ToString(); //锯号1 MilSawResultDeatilSave.SawNo = ugr1.Cells["SAW_NO11"].ToString(); //锯号2 MilSawResultDeatilSave.SawNoN = ugr1.Cells["SAW_NO12"].ToString(); //切头 MilSawResultDeatilSave.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString(); //切尾 MilSawResultDeatilSave.CutTrailLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString(); //定尺 MilSawResultDeatilSave.OrderLength = ugr1.Cells["ORDER_LENGTH1"].ToString(); //切头总长度 = 切头 * 排支数 MilSawResultDeatilSave.CutHeadLengthTotal = ugr1.Cells["CUT_HEAD_LENGTH_TOTAL1"].ToString(); //切尾总长度 = 切尾 * 排支数 MilSawResultDeatilSave.CutTrailLengthTotal = ugr1.Cells["CUT_TRAIL_LENGTH_TOTAL1"].ToString(); //切头总重量 MilSawResultDeatilSave.CutHeadHeightTotal = ugr1.Cells["CUT_HEAD_HEIGTH_TOTAL1"].ToString(); //切尾总重量 MilSawResultDeatilSave.CutTrailHeigthTotal = ugr1.Cells["CUT_TRAIL_HEIGTH_TOTAL1"].ToString(); } else { //排号 MilSawResultDeatilSave.RowNo = ugr1.Cells["ROW_NO2"].ToString(); //锯号1 MilSawResultDeatilSave.SawNo = ugr1.Cells["SAW_NO21"].ToString(); //锯号2 MilSawResultDeatilSave.SawNoN = ugr1.Cells["SAW_NO22"].ToString(); //切头 MilSawResultDeatilSave.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString(); //切尾 MilSawResultDeatilSave.CutTrailLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString(); //定尺 MilSawResultDeatilSave.OrderLength = ugr1.Cells["ORDER_LENGTH2"].ToString(); //切头总长度 = 切头 * 排支数 MilSawResultDeatilSave.CutHeadLengthTotal = ugr1.Cells["CUT_HEAD_LENGTH_TOTAL2"].ToString(); //切尾总长度 = 切尾 * 排支数 MilSawResultDeatilSave.CutTrailLengthTotal = ugr1.Cells["CUT_TRAIL_LENGTH_TOTAL2"].ToString(); //切头总重量 MilSawResultDeatilSave.CutHeadHeightTotal = ugr1.Cells["CUT_HEAD_HEIGTH_TOTAL2"].ToString(); //切尾总重量 MilSawResultDeatilSave.CutTrailHeigthTotal = ugr1.Cells["CUT_TRAIL_HEIGTH_TOTAL2"].ToString(); } MilSawResultDeatilSave.ColUser = UserInfo.GetUserName(); MilSawResultDeatilSave.ColGroup = UserInfo.GetUserGroup(); MilSawResultDeatilSave.ColShift = UserInfo.GetUserOrder(); int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateRowResult", new object[] { MilSawResultDeatilSave }, this.ob); } } #endregion //#region 控件赋值 /// /// 轧制信息Grid赋值 /// /// 轧制计划信息datatable public void GridEdit(DataTable dt) { if (dt.Rows.Count > 0) { DataRow row1 = dt.Rows[0]; //熔炼炉号 this.rollingInfomation1.Value.StoveNo = row1["stove_no"].ToString(); //炉号 this.rollingInfomation1.Value.JudgeStoveNo = BaseMethod.getJudgeStoveNo(row1["judge_stove_no"].ToString()); //生产批号 this.rollingInfomation1.Value.LotNo = row1["lot_no"].ToString(); //工序合同号 this.rollingInfomation1.Value.ContractNo = row1["contract_no"].ToString(); //执行工艺号 this.rollingInfomation1.Value.ImpProcess = row1["imp_process"].ToString(); //执行工艺号路径 this.rollingInfomation1.Value.ImpProcessPath = row1["imp_process_path"].ToString(); //产线代码 this.rollingInfomation1.Value.PlineCode = row1["pline_code"].ToString(); //状态 this.rollingInfomation1.Value.Status = row1["STATUS"].ToString(); //监制 this.rollingInfomation1.Value.Producer = row1["producer"].ToString(); //工艺状态 this.rollingInfomation1.Value.ProcessStatus = row1["process_status"].ToString(); //单倍长 this.rollingInfomation1.Value.DbLength = row1["db_length"].ToString(); //单倍重 this.rollingInfomation1.Value.DbHeight = row1["db_height"].ToString(); //轧制长度 this.rollingInfomation1.Value.RollLength = row1["roll_length"].ToString(); //分切数 this.rollingInfomation1.Value.SawNum = row1["saw_num"].ToString(); //目标长度 this.rollingInfomation1.Value.TargetLength = row1["target_length"].ToString(); //最终用户 this.rollingInfomation1.Value.FinishUser = row1["finish_user"].ToString(); //目标库 this.rollingInfomation1.Value.TargetLiabrary = row1["target_liabrary"].ToString(); //品种 this.rollingInfomation1.Value.Varieties = row1["varieties"].ToString(); //成品规格 this.rollingInfomation1.Value.PipeSize = row1["pipe_size"].ToString(); //扣型 this.rollingInfomation1.Value.BuckleType = row1["buckle_type"].ToString(); //长度范围 this.rollingInfomation1.Value.LengthRange = row1["length_range"].ToString(); //轧管判定标准 this.rollingInfomation1.Value.RollStandrad = row1["roll_standrad"].ToString(); //断面 this.rollingInfomation1.Value.PipeSection = row1["pipe_section"].ToString(); //钢种代码 this.rollingInfomation1.Value.SteelCode = row1["steelcode"].ToString(); //钢种名称 this.rollingInfomation1.Value.SteelName = row1["steelname"].ToString(); //钢级代码 this.rollingInfomation1.Value.GradeCode = row1["gradecode"].ToString(); //钢级名称 this.rollingInfomation1.Value.GradeName = row1["gradename"].ToString(); //炼钢判定标准 this.rollingInfomation1.Value.SteelStandrad = row1["steel_standrad"].ToString(); //去向 this.rollingInfomation1.Value.Target = row1["target"].ToString(); //支 this.rollingInfomation1.Value.PlanNum = row1["BRANCH"].ToString(); //吨 this.rollingInfomation1.Value.PlanTon = row1["TON"].ToString(); //切损去向 this.rollingInfomation1.Value.CutTarget = row1["cut_target"].ToString(); //切损长度 this.rollingInfomation1.Value.CutLength = row1["cut_length"].ToString(); //切损重量 this.rollingInfomation1.Value.CutHeight = row1["CUT_WEIGHT"].ToString(); //倍尺数 this.rollingInfomation1.Value.DbNum = row1["DB_NUM"].ToString(); //标准类别代码 this.rollingInfomation1.Value.StdStyle = row1["STD_STYLE"].ToString(); //标准类别描述 this.rollingInfomation1.Value.StdStyleDesc = row1["STD_STYLE_DESC"].ToString(); //成品备注 this.rollingInfomation1.Value.ReMark = row1["ReMark"].ToString(); this.rollingInfomation1.UpdateData(); } } /// /// 流通卡赋值 /// /// public void RollingCardEditGrid(DataTable dt, string heatno) { if (dt.Rows.Count > 0) { //上料切前剔除支数 this.rollingCard1.Value.FeedScrapNum = dt.Rows[0]["SCRAP_FEED"].ToString(); //上料切前合格支数 this.rollingCard1.Value.FeedQualifiedNum = dt.Rows[0]["QUALIFIED_FEED"].ToString(); //上料剔除支数 this.rollingCard1.Value.FeedScrapDBNum = dt.Rows[0]["SCRAP_DBFEED"].ToString(); //上料合格支数 this.rollingCard1.Value.FeedQualifiedDBNum = dt.Rows[0]["QUALIFIED_DBFEED"].ToString(); //加热炉剔除支数 this.rollingCard1.Value.FurScrapNum = dt.Rows[0]["SCRAP_FUR"].ToString(); //加热炉合格支数 this.rollingCard1.Value.FurQualifiedNum = dt.Rows[0]["QUALIFIED_FUR"].ToString(); //穿孔剔除支数 this.rollingCard1.Value.PerScrapNum = dt.Rows[0]["SCRAP_PER"].ToString(); //穿孔合格支数 this.rollingCard1.Value.PerQualifiedNum = dt.Rows[0]["QUALIFIED_PER"].ToString(); //连轧剔除支数 this.rollingCard1.Value.RollingScrapNum = dt.Rows[0]["SCRAP_ROLLING"].ToString(); //连轧合格支数 this.rollingCard1.Value.RollingQualifiedNum = dt.Rows[0]["QUALIFIED_ROLLING"].ToString(); //再加热炉剔除支数 this.rollingCard1.Value.RefurScrapNum = dt.Rows[0]["SCRAP_REFUR"].ToString(); //再加热炉合格支数 this.rollingCard1.Value.RefurQualifiedNum = dt.Rows[0]["QUALIFIED_REFUR"].ToString(); //定径剔除支数 this.rollingCard1.Value.SizingScrapNum = dt.Rows[0]["SCRAP_SIZING"].ToString(); //定径合格支数 this.rollingCard1.Value.SizingQualifiedNum = dt.Rows[0]["QUALIFIED_SIZING"].ToString(); //分切前剔除支数 this.rollingCard1.Value.SawScrapNumBE = dt.Rows[0]["SCRAP_SAW_BE"].ToString(); //分切前合格支数 this.rollingCard1.Value.SawQualifiedNumBE = dt.Rows[0]["QUALIFIED_SAW_BE"].ToString(); //分切剔除支数 this.rollingCard1.Value.SawScrapNum = dt.Rows[0]["SCRAP_SAW"].ToString(); //分切合格支数 this.rollingCard1.Value.SawQualifiedNum = dt.Rows[0]["QUALIFIED_SAW"].ToString(); //矫直剔除支数 this.rollingCard1.Value.StraightScrapNum = dt.Rows[0]["SCRAP_STRAIGHT"].ToString(); //矫直合格支数 this.rollingCard1.Value.StraightQualifiedNum = dt.Rows[0]["QUALIFIED_STRAIGHT"].ToString(); //矫直下线支数 this.rollingCard1.Value.OfflineStraight = dt.Rows[0]["OFFLINE_STRAIGHT"].ToString(); //矫直返线支数 this.rollingCard1.Value.BacklineStraight = dt.Rows[0]["BACKLINE_STRAIGHT"].ToString(); //探伤剔除支数 this.rollingCard1.Value.TestingScrapNum = dt.Rows[0]["SCRAP_TESTING"].ToString(); //探伤合格支数 this.rollingCard1.Value.TestingQualifiedNum = dt.Rows[0]["QUALIFIED_TESTING"].ToString(); NativeMethodNew na = new NativeMethodNew(this.ob); if (na.isBegineNode(heatno, 8) || na.isBegineNode(heatno, 9) || na.isBegineNode(heatno, 10)) { //探伤下线支数 this.rollingCard1.Value.OfflineTesting = dt.Rows[0]["OFFLINE_TESTING"].ToString(); this.rollingCard1.Value.BacklineTesting = dt.Rows[0]["BACKLINE_TESTING"].ToString(); } else { if (dt.Rows[0]["OFFLINE_TESTING"].ToString() == "0") { this.rollingCard1.Value.OfflineTesting = ""; this.rollingCard1.Value.BacklineTesting = ""; } else { //探伤下线支数 this.rollingCard1.Value.OfflineTesting = dt.Rows[0]["OFFLINE_TESTING"].ToString(); this.rollingCard1.Value.BacklineTesting = dt.Rows[0]["BACKLINE_TESTING"].ToString(); } } this.rollingCard1.UpdateData(); } else { this.rollingCard1.ClearData(); } } /// /// 分切计划信息(实绩) /// /// public void GetSawResultEdit(string str) { MilSawResultEntity milsawresult = new MilSawResultEntity(); //查询分切实绩主表 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawResult", new object[] { str, proPlanId, gxPlanNo }, this.ob); if (dt.Rows.Count > 0) { //探伤卡赋值 milsawresult = NativeMethod.GetTableToEntity(dt, milsawresult); this.pipeSawResult1.MilSawResult = milsawresult; //this.crackDetectionResult1.UpdateData(); } else { this.pipeSawResult1.Clear(); milsawresult.Clear(); //this.crackDetectionResult1.milet = milet; //this.crackDetectionResult1.UpdateData(); // GridHelper.InitCardGrid(pipeSawResult1.PipeSawDataSource1,pipeSawResult1.UltraGrid2 ); } } /// /// 主计划信息(七条) /// /// public void GetMilplanEdit(DataTable dtMP) { MilPlan milplan = new MilPlan(); if (dtMP.Rows.Count > 0) { milplan = NativeMethod.GetTableToEntity(dtMP, milplan); } SAW_NUM = Int16.Parse(string.IsNullOrEmpty(milplan.SawNum.ToString())?"0" : milplan.SawNum.ToString()); this.pipeSawResult1.MilPlan = milplan; this.pipeSawResult1.UpdateDate_milplan(); } /// /// 快速分切 /// public void pipsawfast() { if (doQueryJugeNoStaus(this.ultraGridPlan.ActiveRow.Cells["ID"].Value.ToString(), this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString(),PlineCode) != "0") { MessageBox.Show("该计划不是开始分切状态,不允许进行分切。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //if (userRoom == 2) //{ // MessageBox.Show("该台不允许进行快速分切。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} if (string.IsNullOrEmpty(MainPlan.JudgeStoveNo)) { MessageBox.Show("您未选择任何生产计划,请确认后重新进行快速分切操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob); if (dtMP.Rows.Count > 0) { string PlinCode = dtMP.Rows[0]["PLINE_CODE"].ToString(); string HeatNo = dtMP.Rows[0]["JUDGE_STOVE_NO"].ToString(); string OrderLength = dtMP.Rows[0]["TARGET_LENGTH"].ToString(); string HeadLength = dtMP.Rows[0]["CUT_HEAD_LENGTHP"].ToString(); string TailLengeh = dtMP.Rows[0]["CUT_TRAIL_LENGTHP"].ToString(); string lotno = dtMP.Rows[0]["LOT_NO"].ToString(); string stoveno = dtMP.Rows[0]["STOVE_NO"].ToString(); string CUT_HEAD_LENGTHA = dtMP.Rows[0]["CUT_HEAD_LENGTHA"].ToString(); string CUT_TRAIL_LENGTHA = dtMP.Rows[0]["CUT_TRAIL_LENGTHA"].ToString(); string ORDER_LENGTHA = dtMP.Rows[0]["ORDER_LENGTHA"].ToString(); PipSawFast p1 = new PipSawFast(this.ob, PlinCode, HeatNo, proPlanId, gxPlanNo, OrderLength, HeadLength, TailLengeh, lotno, stoveno, SAW_NUM, CUT_HEAD_LENGTHA, CUT_TRAIL_LENGTHA, ORDER_LENGTHA); p1.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; if (p1.ShowDialog() == DialogResult.OK) { GetMatRack(HeatNo); ChangeGridColor(); GetSawResultEdit(HeatNo);//分切计划信息 } } } public void colchang() { if (string.IsNullOrEmpty(ActiveJUDGE_STOVE_NO)) { MessageBox.Show("您未选择任何住计划,不允许执行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DataTable dtResult = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.getPerResult", new object[] { ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); DataTable dtFlag = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.GetSingleJRLResult", new object[] { ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob); if (dtFlag.Rows.Count == 0) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始分切,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString())) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始分切,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString().Equals("1")) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】分切工序尚未结炉,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dtResult.Rows.Count == 0) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(dtResult.Rows[0]["NODE_FUR_FLAG"].ToString())) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dtResult.Rows[0]["NODE_FUR_FLAG"].ToString().Equals("1")) { MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】已完成矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } ColNoChanges col = new ColNoChanges(this.ob, "00", ActiveJUDGE_STOVE_NO, PlineCode, proPlanId, gxPlanNo); if (col.ShowDialog() == DialogResult.OK) { this.GetMatRack(ActiveJUDGE_STOVE_NO); ChangeGridColor(); } } #region /// /// 分切计划信息 /// /// ////public void GetSawResultEdit(string str) //{ // //查询分切实绩主表 // DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawResult", new object[] { str }, this.ob); // if (dt.Rows.Count > 0) // { // //切头长度 // this.pipeSawResult1.Value.CutHeadLength = dt.Rows[0]["CUT_HEAD_LENGTH"].ToString(); // //切尾长度 // this.pipeSawResult1.Value.CutTrailLength = dt.Rows[0]["CUT_TRAIL_LENGTH"].ToString(); // //控制壁厚 // this.pipeSawResult1.Value.ColThick = dt.Rows[0]["COL_THICK"].ToString(); // //分切数 // this.pipeSawResult1.Value.CutNum = dt.Rows[0]["CUT_NUM"].ToString(); // //目标长度 // this.pipeSawResult1.Value.TargetLength = dt.Rows[0]["TARGET_LENGTH"].ToString(); // //切尾类型 // this.pipeSawResult1.Value.CutType = dt.Rows[0]["CUT_TYPE"].ToString(); // //切前剔除支数 // this.pipeSawResult1.Value.ScrapNum = dt.Rows[0]["SCRAP_NUM"].ToString(); // //切后剔除支数 // this.pipeSawResult1.Value.ScrapDbnum = dt.Rows[0]["SCRAP_DBNUM"].ToString(); // //合格支数 // this.pipeSawResult1.Value.CutNum = dt.Rows[0]["CUT_NUM"].ToString(); // //交接班支数 // this.pipeSawResult1.Value.ChangeNum = dt.Rows[0]["CHANGE_NUM"].ToString(); // //备注 // this.pipeSawResult1.Value.Remark = dt.Rows[0]["REMARK"].ToString(); // //开始时间 // this.pipeSawResult1.Value.StartTime = dt.Rows[0]["START_TIME"].ToString(); // //结束时间 // this.pipeSawResult1.Value.EndTime = dt.Rows[0]["ENDTIME"].ToString(); // this.pipeSawResult1.UpdateDate(); // } //} /// /// 1号锯 每排指定锯切刀数 /// public void SawCountEdit1() { } /// /// 2号锯 每排指定锯切刀数 /// public void SawCountEdit2() { } #endregion /* #region 信号处理 /// /// 锯切信号处理 /// /// 0-切头信号 1-切尾信号 2-倍尺信号 /// 长度 public void GetCutSignal(int Flag, string SawNo, double Length) { switch (Flag) { case 0: CutHeadSignal(SawNo, Length); break; case 1: CutTrailSignal(SawNo, Length); break; default: CutTrailSignal(SawNo, Length); break; } } /// /// 切头信号 /// /// 切头长度 /// 锯片号 public void CutHeadSignal(string SawNo, double Length) { //判断当前是否有正在分切的炉次 DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.getStartSawQuery", new object[] { }, this.ob); UltraGridRow ugr = this.pipeSawResult1.UltraGrid2.Rows[0]; if (dt.Rows.Count == 0) { MessageBox.Show("当前没有正在分切的炉次计划,请点击下一炉开始分切,并点击手动切头", "提示:", MessageBoxButtons.OK,MessageBoxIcon.Warning); milSawResultDeatilEntity.CutHeadLength = Length.ToString(); return; } //判断当前锯片需锯切刀数是否完成 if (IsCutDown("1")) { //锯切完成 --- 更新锯切刀数 赋值切头长度 排支数 清空切尾长度 切尾总长度 this.pipeSawResult1.Value.CutHeadLength = Length; } else { int CutHeadCount = Convert.ToInt32(ugr.Cells["CUT_HEAD_COUNT1"].Value.ToString()); if (CutHeadCount < 1) { MessageBox.Show("当前锯片切头刀数为0,不能切头!!!"); return; } } //当前排支数 this.pipeSawResult1.ValueDeatil.RowCount = RowNum; //得到排号 int RowNo = 0; // DataTable dt1 = ServerHelper.GetData(); if (dt.Rows.Count > 0) { RowNo = int.Parse(dt.Rows[0][0].ToString()); } pipeSawResult1.ValueDeatil.RowNo = RowNo; this.pipeSawResult1.Value.CutHeadLength = Length; } /// /// 切头信号确认 /// /// /// public void UltraGrid3_ClickCellButton(object sender, CellEventArgs e) { string JudgeStoveNo = ""; UltraGridRow ugr = this.ultraGridPlan.ActiveRow; if (ugr != null) { JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString(); } //int count = 0; switch (e.Cell.Column.Key) { case "btnCUT_HEAD1": RowResultAdd(1); break; case "btnCUT_HEAD2": RowResultAdd(2); break; } } /// /// 切尾信号 /// /// 切尾长度 /// 锯片号 public void CutTrailSignal(string SawNo, double Length) { //判断切头信号是否已接收 是-继续 否-手动切头后继续手动切尾 if (SawNo == "1") { } else if (SawNo == "2") { } } /// /// 定尺信号 /// /// 定尺长度 /// 锯片号 public void CutOrderSignal(string SawNo, double Length) { //判断切头信号是否已接收 是-继续 否-手动切头后继续手动切定尺 if (SawNo == "1") { } else if (SawNo == "2") { } } /// /// 当前排 锯切是否完成 /// /// 锯片号 /// ture 完成 false 未完成 public bool IsCutDown(string SawNo) { UltraGridRow ugr = this.pipeSawResult1.UltraGrid2.Rows[0]; int CutHeadCount; int CutTrailCount; int CutOrderCount; //1号锯片 if (SawNo == "1") { CutHeadCount = int.Parse(ugr.Cells["CUT_HEAD_COUNT1"].Value.ToString()); CutTrailCount = int.Parse(ugr.Cells["CUT_TRAIL_COUNT1"].Value.ToString()); CutOrderCount = int.Parse(ugr.Cells["CUT_ORDER_COUNT1"].Value.ToString()); } //2号锯片 else { CutHeadCount = int.Parse(ugr.Cells["CUT_HEAD_COUNT2"].Value.ToString()); CutTrailCount = int.Parse(ugr.Cells["CUT_TRAIL_COUNT2"].Value.ToString()); CutOrderCount = int.Parse(ugr.Cells["CUT_ORDER_COUNT2"].Value.ToString()); } if (CutHeadCount == 0 && CutTrailCount == 0 && CutOrderCount == 0) { return true; } else { return false; } } /// /// 修改锯切刀数 /// //public void UpdateSawCount() //{ // FrmPipeSawStart frmSaw = new FrmPipeSawStart(userRoom, SawNum, 1, RowNum); // frmSaw.ShowDialog(); // if (frmSaw.ShowDialog == DialogResult.OK) // { // Flag = frmSaw.Flag; // sawCount1.CutHead = frmSaw.sawCount1.CutHeadCount; // sawCount1.CutTrail = frmSaw.sawCount1.CutTrailCount; // sawCount1.CutOrder = frmSaw.sawCount1.CutOrderCount; // sawCount2.CutHead = frmSaw.sawCount2.CutHeadCount; // sawCount2.CutTrail = frmSaw.sawCount2.CutTrailCount; // sawCount2.CutOrder = frmSaw.sawCount2.CutOrderCount; // frmSaw.Close(); // if (Flag == 1) // { // return; // } // } // milSawResultEntity.CutHeadCount1 = sawCount1.CutHead; // milSawResultEntity.CutTrailCount1 = sawCount1.CutTrail; // milSawResultEntity.CutOrderCount1 = sawCount1.CutOrder; // this.pipeSawResult1.UpdateCutNum1(); // milSawResultEntity.CutHeadCount2 = sawCount2.CutHead; // milSawResultEntity.CutTrailCount2 = sawCount2.CutTrail; // milSawResultEntity.CutOrderCount2 = sawCount2.CutOrder; // this.pipeSawResult1.UpdateCutNum2(); //} #endregion #endregion */ } }