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 Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using com.steering.mes.zgmil.entity;
using System.Collections;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.ZGMil.Entity;
using Core.StlMes.Client.ZGMil.Signature;
using Core.StlMes.Client.ZGMil.Common;
namespace Core.StlMes.Client.ZGMil.Popup
{
public partial class FrmBackSlab : FrmBase
{
private UltraGridRow ActUgr = null;
private string ActContractNo = "";
private UltraGridRow ActUgr1 = null;
FeedRowPlan Feedplan = new FeedRowPlan();
private string ActJudgeStoveNo = "";
private string ActID = "";
private string proPlanId = null;//轧管订单编号
private string gxPlanNo = null;//工序排产序号
private string _UserName = "";
private string _Shift = "";
private string _Group = "";
private string _PlineCode = "";
private OpeBase _ob;
public FrmBackSlab(string Shift, string Group, string User, OpeBase ob, string PlineCode)
{
InitializeComponent();
_Shift = Shift;
_Group = Group;
_UserName = User;
_ob = ob;
_PlineCode = PlineCode;
BackSlabQuery();
BlacPlanQuery();
}
///
/// 页面加载事件
///
///
///
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ultraGrid_GHDL.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
chkNodeQuery.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.getContractNo", new object[] { _PlineCode }, this._ob);
cmbContrack.DataSource = dt;
cmbContrack.ValueMember = "contract_no";
cmbContrack.DisplayMember = "contract_no";
//TubeRoll.SetComboItemHeight(cmbContrack);
//天淮508机组产线自动生成炉号
if (_PlineCode.Equals("C072"))
{
ultraLabel1.Visible = false;
ultraLabel2.Visible = false;
txtZPLotNo.Visible = false;
txtZPJudgeNo.Visible = false;
}
}
///
/// 待组回炉坯查询按钮
///
///
///
private void btnQuery_Click(object sender, EventArgs e)
{
if (chkContractNo.Checked)
{
if (string.IsNullOrEmpty(txtContractNo.Text))
{
MessageBox.Show("请输入需查询的合同号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
BackSlabQuery();
}
///
/// 已组回炉坯查询按钮
///
///
///
private void ultraButton2_Click(object sender, EventArgs e)
{
if (chkContractNo1.Checked)
{
if (string.IsNullOrEmpty(txtContractNo1.Text))
{
MessageBox.Show("请输入需查询的合同号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (this.chkJudgeNo1.Checked)
{
if (string.IsNullOrEmpty(this.txtJudgeStoveNo.Text))
{
MessageBox.Show("请输入需查询的炉号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (this.chkLotNo1.Checked)
{
if (string.IsNullOrEmpty(this.txtLotNo.Text))
{
MessageBox.Show("请输入需查询的批号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
BlacPlanQuery();
}
///
/// 初始化控件
///
private void InitCol()
{
if (chkContractNo.Checked)
{
txtContractNo.Enabled = true;
}
else
{
txtContractNo.Enabled = false;
}
if (chkSteelName.Checked)
{
txtSteelName.Enabled = true;
}
else
{
txtSteelName.Enabled = false;
}
if (chkLength.Checked)
{
txtLength.Enabled = true;
}
else
{
txtLength.Enabled = false;
}
if (chkSection.Checked)
{
txtSection.Enabled = true;
}
else
{
txtSection.Enabled = false;
}
if (chkLotNo1.Checked)
{
txtLotNo.Enabled = true;
}
else
{
txtLotNo.Enabled = false;
}
if (chkJudgeNo1.Checked)
{
txtJudgeStoveNo.Enabled = true;
}
else
{
txtJudgeStoveNo.Enabled = false;
}
if (chkContractNo1.Checked)
{
txtContractNo1.Enabled = true;
}
else
{
txtContractNo1.Enabled = false;
}
if (chkDate.Checked )
{
this.udtDate.Enabled = true;
}
else
{
this.udtDate.Enabled = false;
}
}
///
/// Grid记录更改颜色
///
private void ChangeGridColor()
{
foreach (UltraGridRow ugr in ultraGrid2.Rows)
{
if (ugr.Cells["STATUS"].Value.ToString() != "00")
{
ugr.Appearance.BackColor = Color.YellowGreen;
}
}
}
///
/// 回炉坯合同查询
///
private void BackSlabQuery()
{
string Key1 = "";
string Key2 = "";
string Key3 = "";
// string ContractNo = "";
string Length = "";
string SteelName = "";
string Section = "";
string date = "";
UltraGridRow ugr = this.chkNodeQuery.ActiveRow;
if (ugr != null)
{
Key1 = ugr.Cells["GRADENAME"].Value.ToString();
Key2 = ugr.Cells["DB_LENGTH"].Value.ToString();
Key3 = ugr.Cells["PIPE_SECTION"].Value.ToString();
}
//if (chkContractNo.Checked == true)
//{
// ContractNo = this.txtContractNo.Text;
//}
//else
//{
// ContractNo = "";
//}
if (chkDate.Checked == true)
{
date = DateTime.Parse(this.udtDate.Value.ToString()).ToString("yyyyMMdd");
}
else
{
date = "";
}
if (chkSteelName.Checked == true)
{
SteelName = this.txtSteelName.Text;
}
else
{
SteelName = "";
}
if (chkLength.Checked == true)
{
Length = this.txtLength.Text;
}
else
{
Length = "";
}
if (chkSection.Checked == true)
{
Section = this.txtSection.Text;
}
else
{
Section = "";
}
dtContratNo.Clear();
dataTable1.Clear();
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.getContractNo", new object[] { SteelName, Length, Section, _PlineCode, date }, this._ob);
GridHelper.CopyDataToDatatable(ref dt, ref dtContratNo, true);
if (dt.Rows.Count > 0)
{
if (ugr != null)
{
foreach (UltraGridRow ugr1 in chkNodeQuery.Rows)
{
if (ugr1.Cells["GRADENAME"].Value.ToString() == Key1 && ugr1.Cells["DB_LENGTH"].Value.ToString() == Key2 && ugr1.Cells["PIPE_SECTION"].Value.ToString() == Key3)
{
ugr1.Activated = true;
}
}
}
}
}
///
/// 已组回炉坯计划查询
///
private void BlacPlanQuery()
{
string PrimaKey = "";
string JudgeStoveNo = "";
string LotNo = "";
string ContractNo = "";
string Flag = "0";
UltraGridRow ugr = this.ultraGrid2.ActiveRow;
if (ugr != null)
{
PrimaKey = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
}
if (chkLotNo1.Checked == true)
{
LotNo = this.txtLotNo.Text;
}
else
{
LotNo = "";
}
if (chkJudgeNo1.Checked == true)
{
JudgeStoveNo = this.txtJudgeStoveNo.Text;
}
else
{
JudgeStoveNo = "";
}
if (chkContractNo1.Checked == true)
{
ContractNo = this.txtContractNo1.Text;
}
else
{
ContractNo = "";
}
if (chkIsStart.Checked == true)
{
Flag = "1";
}
else
{
Flag = "0";
}
dtBackPlan.Clear();
dataTable2.Clear();
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.getBackSlabPlan", new object[] { JudgeStoveNo, LotNo, ContractNo, Flag, _PlineCode }, this._ob);
GridHelper.CopyDataToDatatable(ref dt, ref dtBackPlan, true);
if (dt.Rows.Count > 0)
{
if (ugr != null)
{
foreach (UltraGridRow ugr1 in ultraGrid2.Rows)
{
if (ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString() == PrimaKey)
{
ugr1.Activated = true;
}
}
}
}
ChangeGridColor();
}
///
/// 合同、计划激活行单击事件
///
///
///
private void chkNodeQuery_AfterRowActivate(object sender, EventArgs e)
{
if (chkNodeQuery.ActiveRow == null)
{
return;
}
else
{
ActUgr = chkNodeQuery.ActiveRow;
//ActContractNo = ActUgr.Cells["CONTRACT_NO"].Value.ToString();
string Length = ActUgr.Cells["DB_LENGTH"].Value.ToString();
string GradeName = ActUgr.Cells["GRADENAME"].Value.ToString();
string Section = ActUgr.Cells["PIPE_SECTION"].Value.ToString();
dataTable1.Clear();
ugbColClear();
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.getBackSlabForContractNo", new object[] { GradeName, Length, Section, _PlineCode }, this._ob);
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
}
}
///
/// 已组炉计划激活行单击事件
///
///
///
private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
{
if (ultraGrid2.ActiveRow == null)
{
return;
}
ActUgr1 = ultraGrid2.ActiveRow;
ActJudgeStoveNo = ActUgr1.Cells["JUDGE_STOVE_NO"].Value.ToString();
proPlanId = ActUgr1.Cells["PRO_PLAN_ID"].Value.ToString();
gxPlanNo = ActUgr1.Cells["GX_PLAN_NO"].Value.ToString();
ActID = ActUgr1.Cells["ID"].Value.ToString();
dataTable2.Clear();
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.getBackSlabForJudgeStoveNo", new object[] { ActJudgeStoveNo }, this._ob);
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);
}
private void chkContractNo_CheckedChanged(object sender, EventArgs e)
{
if (chkContractNo.Checked)
{
txtContractNo.Enabled = true;
}
else
{
txtContractNo.Enabled = false;
}
if (chkLotNo1.Checked)
{
txtLotNo.Enabled = true;
}
else
{
txtLotNo.Enabled = false;
}
if (chkJudgeNo1.Checked)
{
txtJudgeStoveNo.Enabled = true;
}
else
{
txtJudgeStoveNo.Enabled = false;
}
if (chkContractNo1.Checked)
{
txtContractNo1.Enabled = true;
}
else
{
txtContractNo1.Enabled = false;
}
if (chkSteelName.Checked)
{
txtSteelName.Enabled = true;
}
else
{
txtSteelName.Enabled = false;
}
if (chkLength.Checked)
{
txtLength.Enabled = true;
}
else
{
txtLength.Enabled = false;
}
if (chkSection.Checked)
{
txtSection.Enabled = true;
}
else
{
txtSection.Enabled = false;
}
if (chkDate.Checked)
{
this.udtDate.Enabled = true;
}
else
{
this.udtDate.Enabled = false;
}
}
///
/// 组炉回退
///
///
///
private void ultraButton1_Click(object sender, EventArgs e)
{
if (ultraGrid2.ActiveRow == null)
{
return;
}
if (ultraGrid2.ActiveRow.Cells["STATUS"].Value.ToString() != "00")
{
MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(ActJudgeStoveNo) + "】已开始轧制,不能回退", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + BaseMethod.getJudgeStoveNo(ActJudgeStoveNo) + "】回退?") == DialogResult.No)
{
return;
}
string ValueList = "";
if (ultraGrid1.Rows.Count > 1)
{
int i = 1;
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
if (i == 1)
{
ValueList += "( '" + ugr.Cells["MAT_NO"].Value.ToString() + "'";
}
else if (i == ultraGrid1.Rows.Count)
{
ValueList += ",'" + ugr.Cells["MAT_NO"].Value.ToString() + "')";
}
else
{
ValueList += ",'" + ugr.Cells["MAT_NO"].Value.ToString() + "'";
}
i++;
}
}
else
{
ValueList += "( '" + ultraGrid1.ActiveRow.Cells["MAT_NO"].Value.ToString() + "')";
}
int Count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FrmHotCheck.BackFurSlab", new object[] { ActJudgeStoveNo, ActID, ValueList, proPlanId, gxPlanNo }, this._ob);
//MessageBox.Show("回退成功。");
BlacPlanQuery();
}
//勾选主炉号的行
public static List UltraGridGetCHKMAINRows(UltraGrid grid, string columnName = "CHKMAIN")
{
grid.UpdateData();
List list = new List();
RowsCollection rows = grid.Rows;
foreach (var item in rows)
{
try
{
if (Convert.ToBoolean(item.Cells[columnName].Value) == true && item.Hidden == false && item.IsFilteredOut == false)
{
list.Add(item);
}
}
catch { }
}
return list;
}
///
/// 回炉坯组炉
///
///
///
private void btnZP_Click(object sender, EventArgs e)
{
if (chkNodeQuery.ActiveRow == null)
{
return;
}
string JudgeStoveNo = "";
string proPlanId1 = "";
string gxPlanNo1 = "";
string ValueList = "";
string contractNo = "";//修改合同号
string RollLength = "";//修改轧制长度
string RESULT_NO = "";
if (ckrContrack.Checked)
{
if (cmbContrack.Value.Equals(""))
{
MessageBox.Show("请输入或选择合同号号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else {
contractNo = cmbContrack.Value.ToString();
}
}
if (ckrRollLength.Checked)
{
if (cmbRollLength.Text.Trim().ToString().Equals(""))
{
MessageBox.Show("请输入或选择合同号号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
RollLength = cmbRollLength.Text.Trim().ToString();
}
}
//天淮508机组产线自动生成炉号
if (_PlineCode.Equals("C072"))
{
List list = UltraGridGetCHKMAINRows(ultraGrid_GHDL);
if (list.Count == 0) {
MessageBox.Show("请勾选主炉生产批号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//批号
txtZPLotNo.Text = list[0].Cells["LOT_NO"].Value.ToString();
//炉号
txtZPJudgeNo.Text = ServerHelper.GetData("com.steering.mes.signature.FrmDownlineManage.doQueryZpJudgeStoveNo", new Object[] { "D" }, this.ob).Rows[0][0].ToString();
}
else
{
if (string.IsNullOrEmpty(txtZPJudgeNo.Text))
{
MessageBox.Show("请输入回炉坯组炉炉号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.txtZPLotNo.Text))
{
MessageBox.Show("请输入回炉坯组炉批号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (txtZPJudgeNo.Text.Trim().Length != 6)
{
MessageBox.Show("请输入6位组炉炉号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
//查询该炉号是否已经存在
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.IsUsedJudgeStoveNo", new object[] { txtZPJudgeNo.Text + "-01" }, this._ob);
if (dt.Rows.Count > 0)
{
MessageBox.Show("炉号【" + txtZPJudgeNo.Text + "】已存在,请更换组炉炉号!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
ultraGrid_GHDL.UpdateData();
IQueryable urows = ultraGrid_GHDL.Rows.AsQueryable().Where("CHK = 'True'");
int MatNum = urows.Count();
if (MatNum == 0)
{
MessageBox.Show("请选择需要组炉的回炉坯料!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int i = 1;
if (MatNum > 1)
{
string CONTRACT_NO = "";
foreach (UltraGridRow ugr in urows)
{
if (CONTRACT_NO.Equals(""))
{
CONTRACT_NO = ugr.Cells["CONTRACT_NO"].Value.ToString();
}
else
{
if (!ugr.Cells["CONTRACT_NO"].Value.ToString().Equals(CONTRACT_NO))
{
MessageBox.Show("合同号不一致,不允许组炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
//查询组炉的炉号之前是不是回炉坯炉号
DataTable dtZp = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmHotCheck.IsZpJudgeStoveNo", new object[] { ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() }, this._ob);
if (dtZp.Rows.Count > 0)
{
MessageBox.Show("炉号【" + ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() + "】是回炉坯炉号,不允许再次组炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (i == 1)
{
JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
proPlanId1 = ugr.Cells["PRO_PLAN_ID"].Value.ToString();
gxPlanNo1 = ugr.Cells["GX_PLAN_NO"].Value.ToString();
RESULT_NO = ugr.Cells["RESULT_NO"].Value.ToString();
ValueList += "( '" + ugr.Cells["MAT_NO"].Value.ToString() + "'";
}
else if (i == MatNum)
{
ValueList += ",'" + ugr.Cells["MAT_NO"].Value.ToString() + "')";
}
else
{
ValueList += ",'" + ugr.Cells["MAT_NO"].Value.ToString() + "'";
}
i++;
}
}
else
{
JudgeStoveNo = ultraGrid_GHDL.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString();
proPlanId1 = ultraGrid_GHDL.ActiveRow.Cells["PRO_PLAN_ID"].Value.ToString();
gxPlanNo1 = ultraGrid_GHDL.ActiveRow.Cells["GX_PLAN_NO"].Value.ToString();
RESULT_NO = ultraGrid_GHDL.ActiveRow.Cells["RESULT_NO"].Value.ToString();
ValueList += "( '" + ultraGrid_GHDL.ActiveRow.Cells["MAT_NO"].Value.ToString() + "')";
}
Feedplan.ResultNo = RESULT_NO;
Feedplan.LotNo = txtZPLotNo.Text;
Feedplan.JudgeStoveNo = txtZPJudgeNo.Text + "-01";
Feedplan.StoveNo = "";
Feedplan.PlineCode = _PlineCode;
Feedplan.ProPlanId = proPlanId1;
Feedplan.GxPlanNo = gxPlanNo1;
int Count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FrmHotCheck.BackSlabGroup", new object[] { JudgeStoveNo, txtZPJudgeNo.Text, txtZPLotNo.Text, MatNum, ValueList, _UserName, _Shift, _Group, contractNo, RollLength, proPlanId1, gxPlanNo1, Feedplan }, this._ob);
if (Count > 0)
{
MessageBox.Show("组炉成功。");
}
BackSlabQuery();
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
BackSlabQuery();
BlacPlanQuery();
}
private void chkDate_CheckedChanged(object sender, EventArgs e)
{
if (ckrContrack.Checked) { cmbContrack.Enabled = true; } else { cmbContrack.Enabled = false; }
if (ckrRollLength.Checked) { cmbRollLength.Enabled = true; } else { cmbRollLength.Enabled = false; }
}
private void FrmBackSlab_Load(object sender, EventArgs e)
{
}
///
/// ugbColr的Clear()方法
///
private void ugbColClear()
{
txtZPLotNo.Text = "";
txtZPJudgeNo.Text = "";
cmbContrack.Text = "";
cmbRollLength.Text = "";
ckrContrack.Checked = false;
ckrRollLength.Checked = false;
}
}
}