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.StlMes.Client.YdmBase;
using Core.StlMes.Client.YdmPipeManage.Tool;
using System.Collections;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Tool;
using Infragistics.Win;
namespace Core.StlMes.Client.YdmPipeManage
{
public partial class FrmManageBlock : FrmBase
{
string[] arr = null;
private string MNG_LOCK_RSN_CODE="";
private string MNG_LOCK_REMARK="";
private string UNLOCK_REMARK = "";
public FrmManageBlock()
{
InitializeComponent();
}
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
DoQuery();
break;
case "Add":
DoAdd();
break;
case "Delete":
DoDelete();
break;
case "Export":
Export();
break;
case "Close":
this.Close();
break;
}
}
private void FrmManageBlock_Load(object sender, EventArgs e)
{
YdmBaseClass.InitComboEditor(cmbStorgeNo, "com.steering.pss.ydm.pipemanage.CorePipeInTemp.getStorageDetail", "STORAGE_NO", this.ob, false);
arr = BaseMethod.InitPermissions(this.ValidDataPurviewIds, ob);
}
///
/// 查询
///
private void DoQuery()
{
if (!ValidQuery()) return;
if (ultraTabControl1.SelectedTab.Key.Equals("0"))
{
DoQueryMat();
}
else
{
DoQueryLockLog();
}
}
///
/// 查询成品库存
///
private void DoQueryMat()
{
string orderNo = "";
string jusNo = "";
string storgeNo = "";
string strFeng = "";
string strMatLb = "";
if (chkOrder.Checked)
{
orderNo = cmbOrder.Text.Trim();
}
if (chkHeatNo.Checked) { jusNo = txtJusNo.Text.Trim(); }
if (chkStorge.Checked) { storgeNo = cmbStorgeNo.Value.ToString(); }
if (chkFeng.Checked) { strFeng = cmbFeng.Value.ToString(); }
if (ultraCheckEditor1.Checked) { strMatLb=cmbMatLB.Value.ToString(); }
DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmManageBlock.queryInListData", new object[] { orderNo, jusNo, storgeNo, arr, strFeng, strMatLb }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (uRow.Cells["MNG_LOCK_FLAG"].Text.Trim().Equals("已封锁"))
{
uRow.Cells["ACT_COUNT"].Appearance.BackHatchStyle = BackHatchStyle.Default;
uRow.Cells["ACT_COUNT"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
}
else
{
uRow.Cells["ACT_COUNT"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
uRow.Cells["ACT_COUNT"].Appearance.BackHatchStyle = BackHatchStyle.None;
uRow.Cells["ACT_COUNT"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
}
}
private void DoQueryLockLog()
{
string jusNo = "";
string strFeng = "";
if (chkHeatNo.Checked) { jusNo = txtJusNo.Text.Trim(); }
if (chkFeng.Checked) { strFeng = cmbFeng.Value.ToString(); }
DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmManageBlock.queryLockLog", new object[] {jusNo, arr }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
}
///
/// 封锁
///
private void DoAdd()
{
ArrayList list1 = new ArrayList();
UltraGridRow urg=ultraGrid1.ActiveRow;
if (urg == null) { MessageUtil.ShowTips("无数据,不能进行此操作!"); return; }
int count = 0;
string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHK"].Text) == true)
{
count += 1;
if (uRow.Cells["ACT_COUNT"].Value.ToString().Equals("0"))
{
MessageUtil.ShowTips("封锁支数不能为0!");
return;
}
if (uRow.Cells["MNG_LOCK_FLAG"].Text.Trim().Equals("已封锁"))
{
MessageUtil.ShowTips("你选择的数据已封锁!");
return;
}
}
} if (count == 0)
{
MessageUtil.ShowTips("请选择要操作的数据!");
return;
}
FrmBlockReason fpdc = new FrmBlockReason(ob);
fpdc.AutoSize = true;
fpdc.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
fpdc.Text = "封锁原因";
fpdc.ShowDialog();
if (fpdc.DialogResult == System.Windows.Forms.DialogResult.OK)
{
//获取弹出窗体的属性值
MNG_LOCK_RSN_CODE = fpdc.LockCode;
MNG_LOCK_REMARK = fpdc.Lockmeno;
}
else { return; }
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHK"].Text) == true)
{
string lockflag = "";
if (uRow.Cells["MNG_LOCK_FLAG"].Text.Trim().Equals("未封锁"))
{
lockflag = "0";
}
else { lockflag = "1"; }
ArrayList list = new ArrayList();
list.Add(uRow.Cells["ACT_COUNT"].Value.ToString());
list.Add(uRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
list.Add(uRow.Cells["BATCH_NO"].Text.Trim());
list.Add(uRow.Cells["BATCH_GROUD_NO"].Text.Trim());
list.Add(MNG_LOCK_RSN_CODE);
list.Add(MNG_LOCK_REMARK);
list.Add(this.UserInfo.GetUserName());
list.Add(dtime);
list.Add(lockflag);
list1.Add(list);
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认封锁?") == DialogResult.No) return;
CoreClientParam ccp = new CoreClientParam();
try
{
this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
if (Constant.WaitingForm == null)
{
Constant.WaitingForm = new WaitingForm();
}
Constant.WaitingForm.ShowToUser = true;
Constant.WaitingForm.Show();
Constant.WaitingForm.Update();
ccp.ServerName = "com.steering.pss.ydm.pipemanage.FrmManageBlock";
ccp.MethodName = "addBlock";
ccp.ServerParams = new object[] { list1 };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
catch (Exception ex)
{
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
if (ccp.ReturnCode != -1)
{
MessageUtil.ShowTips(ccp.ReturnInfo);
if (ccp.ReturnInfo.Equals("封锁成功!"))
{
DoQueryMat();
}
}
}
///
/// 撤销封锁
///
private void DoDelete()
{
ArrayList list1 = new ArrayList();
UltraGridRow urg = ultraGrid1.ActiveRow;
if (urg == null) { MessageUtil.ShowTips("无数据,不能进行此操作!"); return; }
int count = 0;
string dtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHK"].Text) == true)
{
count += 1;
if (uRow.Cells["MNG_LOCK_FLAG"].Text.Trim().Equals("未封锁"))
{
MessageUtil.ShowTips("你选择的数据未封锁!");
return;
}
}
} if (count == 0)
{
MessageUtil.ShowTips("请选择要操作的数据!");
return;
}
FrmUnBlockReason fpdc = new FrmUnBlockReason();
fpdc.AutoSize = true;
fpdc.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
fpdc.Text = "解锁原因";
fpdc.ShowDialog();
if (fpdc.DialogResult == System.Windows.Forms.DialogResult.OK)
{
//获取弹出窗体的属性值
UNLOCK_REMARK = fpdc.Unlockmeno;
}
else { return; }
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHK"].Text) == true)
{
string lockflag = "";
if (uRow.Cells["MNG_LOCK_FLAG"].Text.Trim().Equals("未封锁"))
{
lockflag = "0";
}
else { lockflag = "1"; }
if (this.UserInfo.GetUserName() != uRow.Cells["MNG_LOCK_MAKER"].Text.Trim()) { MessageUtil.ShowTips("解锁人与封锁人不一致,不能进行此操作!"); return; }
ArrayList list = new ArrayList();
list.Add(uRow.Cells["ACT_COUNT"].Value.ToString());
list.Add(uRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
list.Add(uRow.Cells["BATCH_NO"].Text.Trim());
list.Add(uRow.Cells["BATCH_GROUD_NO"].Text.Trim());
list.Add(UNLOCK_REMARK);
list.Add(this.UserInfo.GetUserName());
list.Add(dtime);
list.Add(lockflag);
list.Add(uRow.Cells["LOCK_ID"].Text.Trim());
list1.Add(list);
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认解锁?") == DialogResult.No) return;
CoreClientParam ccp = new CoreClientParam();
try
{
this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
if (Constant.WaitingForm == null)
{
Constant.WaitingForm = new WaitingForm();
}
Constant.WaitingForm.ShowToUser = true;
Constant.WaitingForm.Show();
Constant.WaitingForm.Update();
ccp.ServerName = "com.steering.pss.ydm.pipemanage.FrmManageBlock";
ccp.MethodName = "deleteBlock";
ccp.ServerParams = new object[] { list1 };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
catch (Exception ex)
{
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
if (ccp.ReturnCode != -1)
{
MessageUtil.ShowTips(ccp.ReturnInfo);
if (ccp.ReturnInfo.Equals("解锁成功!"))
{
DoQueryMat();
}
}
}
///
/// 导出
///
private void Export()
{
if (ultraTabControl1.SelectedTab.Key.Equals("0"))
{
GridHelper.ulGridToExcel(ultraGrid1, "成品库存信息");
}
else
{
GridHelper.ulGridToExcel(ultraGrid2, "成品库存封锁日志信息");
}
}
///
/// 查询时验证必填项
///
///
private bool ValidQuery()
{
if (chkOrder.Checked && string.IsNullOrEmpty(cmbOrder.Text.Trim()))
{
MessageBox.Show("请输入原管理号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkHeatNo.Checked && string.IsNullOrEmpty(txtJusNo.Text.Trim()))
{
MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkStorge.Checked && string.IsNullOrEmpty(cmbStorgeNo.Text.Trim()))
{
MessageBox.Show("请选择仓库!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
private void chkOrder_CheckedChanged(object sender, EventArgs e)
{
this.cmbOrder.Enabled = this.chkOrder.Checked;
}
private void chkHeatNo_CheckedChanged(object sender, EventArgs e)
{
this.txtJusNo.Enabled = this.chkHeatNo.Checked;
}
private void chkStorge_CheckedChanged(object sender, EventArgs e)
{
this.cmbStorgeNo.Enabled = this.chkStorge.Checked;
}
private void chkFeng_CheckedChanged(object sender, EventArgs e)
{
this.cmbFeng.Enabled = this.chkFeng.Checked;
}
///
/// 输入支数变重量
///
///
///
private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
UltraGridRow urg = ultraGrid1.ActiveRow;
if (e.Cell.Column.Key.Equals("ACT_COUNT"))
{
if (e.Cell.Row.Cells["ACT_COUNT"].Value == null)
{
e.Cell.Row.Cells["ACT_COUNT"].Value = "0";
e.Cell.Row.Cells["ACT_WEIGHT"].Value = "0";
}
else
{
ultraGrid1.UpdateData();
string actCount = e.Cell.Row.Cells["ACT_COUNT"].Value.ToString();
if (!StringUtil.IsInt(actCount) || actCount == "0")//actCount == "" || int.Parse(actCount)==0
{
e.Cell.Row.Cells["ACT_COUNT"].Value = "0";
e.Cell.Row.Cells["ACT_WEIGHT"].Value = "0";
}
else
{
ArrayList list = new ArrayList();
list.Add(e.Cell.Row.Cells["STORAGE_NO"].Text.Trim());
list.Add(e.Cell.Row.Cells["JUDGE_STOVE_NO"].Text.Trim());
list.Add(e.Cell.Row.Cells["BATCH_NO"].Text.Trim());
list.Add(e.Cell.Row.Cells["BATCH_GROUD_NO"].Text.Trim());
list.Add((int.Parse(actCount)+1).ToString());
DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmManageBlock.checkMatWeight", new object[] { list }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
e.Cell.Row.Cells["ACT_WEIGHT"].Value = dt.Rows[0]["ACT_WEIGHT"].ToString();
e.Cell.Row.Cells["ACT_COUNT"].Value = dt.Rows[0]["ACT_COUNT"].ToString();
}
else
{
e.Cell.Row.Cells["ACT_COUNT"].Value = "0";
e.Cell.Row.Cells["ACT_WEIGHT"].Value = "0";
}
}
}
}
}
private void FrmManageBlock_Shown(object sender, EventArgs e)
{
if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; }
if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; }
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
if (toolMenu == null) return;
if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
{
if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; }
if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; }
chkOrder.Visible = true;
cmbOrder.Visible = true;
chkStorge.Visible = true;
cmbStorgeNo.Visible = true;
chkFeng.Visible = true;
cmbFeng.Visible = true;
ultraCheckEditor1.Visible = true;
cmbMatLB.Visible = true;
}
else
{
if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; }
if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False; }
chkOrder.Visible = false;
cmbOrder.Visible = false;
chkStorge.Visible = false;
cmbStorgeNo.Visible = false;
chkFeng.Visible = false;
cmbFeng.Visible = false;
ultraCheckEditor1.Visible = false;
cmbMatLB.Visible = false;
}
}
private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e)
{
this.cmbMatLB.Enabled = this.ultraCheckEditor1.Checked;
}
}
}