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 Infragistics.Win.UltraWinGrid;
using Infragistics.Win.UltraWinEditors;
using Core.Mes.Client.Comm.Tool;
using System.Collections;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
//先判断是否有成分理化,如果有取内控理化标准
namespace Core.StlMes.Client.Lims.Port
{
public partial class FrmMilConfirmItems : FrmBase
{
private string PlineCode = "";//产线
public FrmMilConfirmItems()
{
InitializeComponent();
}
private void FrmMilConfirmItems_Load(object sender, EventArgs e)
{
dateBegin.Value = dateEnd.DateTime.AddDays(-6);
InitColumnsDataTable();
PlineCode = PublicPort.GetPCode(this.ValidDataPurviewIds, ob);//获取 用户 对应的产线
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
//ultraGrid2.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
ultraGrid2_.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
//ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
ultraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
ultraGrid4_.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
}
private void InitColumnsDataTable()
{
//生产批号、炉号队列
string[] arrColumnsLot = new string[] { "IS_CORRECT", "FLAG_DESC", "PRO_ORDER_NO", "ORDER_NO", "ORDER_SEQ", "ORDER_NO_SEQ", "DELIVERY_NO", "GO_TYPE", "GO_TYPE_DESC", "PROCESS_CODE_C", "PROCESS_DESC_C", "REQ_PROD_WT", "REQ_PROD_NUM", "OUTDIAMETER", "WALLTHICK", "AIMWALLTHICK", "DIAMETER_GP", "STEELNAME", "LENGTHMAX", "LENGTHMAX", "AIMLENGTH", "CRAFT_FILE_NO", "PLINE_CODE", "PLINE_NAME", "PASS_CODE", "PASS_NAME", "ORD_LN_DLY_PK", "CRAFT_SEQ", "DESGIN_KEY" };
string[] arrCaptionLot = new string[] { "状态", "状态", "轧管合同编号", "合同号", "合同行号", "合同号", "交货行号", "去向", "去向", "二级工序代码", "二级工序描述", "待生产量", "待生产支数", "外径", "壁厚", "控制壁厚", "管坯直径", "钢级", "最大长度", "最小长度", "控制长度", "工艺文件号", "产线代码", "产线描述", "孔型代码", "孔型描述", "交货行PK", "工艺序号", "DESGIN_KEY" };
PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable1);
PublicPort.setColumnShowOrHidden(ultraGrid1, new string[] { "IS_CORRECT", "ORDER_NO", "ORDER_SEQ", "PLINE_CODE", "PASS_CODE", "ORD_LN_DLY_PK", "CRAFT_SEQ", "GO_TYPE", "PROCESS_CODE_C", "DESGIN_KEY" }, false);//不需要显示的行
PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable3);
PublicPort.setColumnShowOrHidden(ultraGrid3, new string[] { "IS_CORRECT", "ORDER_NO", "ORDER_SEQ", "PLINE_CODE", "PASS_CODE", "ORD_LN_DLY_PK", "CRAFT_SEQ", "GO_TYPE", "PROCESS_CODE_C", "DESGIN_KEY" }, false);//不需要显示的行
//取样要求队列
string[] arrColumnsSampleReq = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "SAMPLE_STYLE", "DESC_SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "DESC_LENGTH", "WIDTH", "RATE", "DESC_RATE", "BATCH_UNIT", "BATCH_CNT", "POSITION", "DESC_POSITION", "DESC_COUNT", "SAMPLE_COUNT" };
string[] arrCaptionSampleReq = new string[] { "检验项代码", "检验项", "取样码", "取样码描述", "试样码", "试样码描述", "样片类型", "样片类型", "标准代码", "标准名称", "取样长度代码", "取样长度", "取样宽度", "取样频率代码", "取样频率", "分批单位", "分批数量", "取样位置代码", "取样位置", "取样数量", "样条数" };
PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable2);
PublicPort.setColumnShowOrHidden(ultraGrid2, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "RATE", "POSITION" }, false);//不需要显示的行
PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable4);
PublicPort.setColumnShowOrHidden(ultraGrid4, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "RATE", "POSITION" }, false);//不需要显示的行
//检验项目明细
string[] arrColumnsDetail = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "PHY_NAME", "ITEM_CODE_F", "ITEM_NAME_F", "ITEM_CODE_W", "ITEM_NAME_W", "ITEM_CODE_S", "ITEM_NAME_S" };
string[] arrCaptionDetail = new string[] { "检验项代码", "检验项", "取样码", "取样码描述", "试样码", "试样码描述", "检验基础项代码", "检验基础项", "试验方向代码", "试验方向", "试验温度代码", "试验温度", "试样尺寸代码", "试样尺寸" };
PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable2_);
PublicPort.setColumnShowOrHidden(ultraGrid2_, new string[] { "SAMPLE_KEY_DESC", "PHY_NAME" }, true);//不需要显示的行
PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable4_);
PublicPort.setColumnShowOrHidden(ultraGrid4_, new string[] { "SAMPLE_KEY_DESC", "PHY_NAME" }, true);//不需要显示的行
}
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
//新增、修改修约值、审核、删除、退出
switch (ToolbarKey)
{
case "Query":
if (ultraTabControl1.SelectedTab.Index == 0)
{
//查询轧管工序合同
QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010");
}
else if (ultraTabControl1.SelectedTab.Index == 1)
{
QueryPln_Order_Zg(dataTable4, ultraGrid3, "11");
}
//else if (ultraTabControl1.SelectedTab.Index == 2)
//{
// QueryLotNoAndStoveNo_LOG_LOG();
//}
//else if (ultraTabControl1.SelectedTab.Index == 3)
//{
// QueryLotNoAndStoveNo_LOG_LOG_LOG();
//}
break;
case "Confirm":
ConfirmPhy();//确认检验项目是否合格
break;
case "Cancel":
CancelConfirmPhy();
break;
case "Close":
if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes)
{
this.Close();
}
break;
}
}
//获取轧管工序合同
private void QueryPln_Order_Zg(DataTable dataTable, UltraGrid ultraGrid, string param)
{
try
{
ArrayList arrayList = new ArrayList();
//产线、批次号、炉号
arrayList.Add(param);//性能批号标志位
arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
arrayList.Add(ultraQuerySTEELNAME.Text.Trim());
arrayList.Add(txtQueryORDER_NO.Text.Trim());
DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryPln_Order_Zg",
new Object[] { arrayList, PlineCode }, ob);
if (dt == null || dt.Rows.Count == 0)
{
dataTable.Rows.Clear();
return;
}
GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1
GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
}
}
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
try
{
dataTable2_.Rows.Clear();//取样码整改eeee
dataTable2.Rows.Clear();
//先判断是否有成分理化
ArrayList arrayList = new ArrayList();
//产线、批次号、炉号
arrayList.Add(ultraGrid1.ActiveRow.Cells["ORDER_SEQ"].Text.Trim());
arrayList.Add(ultraGrid1.ActiveRow.Cells["ORDER_NO"].Text.Trim());
QueryGetSampleReq_Desgin_Process(arrayList, ultraGrid1);
QueryGetSampleReq(arrayList, dataTable2, ultraGrid2);
QueryGetSampleReqDetail_Phy(arrayList, dataTable2_, ultraGrid2_);
//GridHelper.RefreshAndAutoSize(ultraGrid2);//刷新Grid
if (chkChem.Checked == false)
{
MessageUtil.ShowWarning("轧制工序不经过成品成分工序点请注意是否维护有误!");
return;
}
else if ((chkChem.Checked == true || chkPhy.Checked == true) && dataTable2.Rows.Count == 0)
{
MessageUtil.ShowWarning("请维护取样码!");
return;
}
else if (chkPhy.Checked == true && dataTable2_.Rows.Count == 0)
{
MessageUtil.ShowTips("请维护内控标准检验项目!");
return;
}
}
catch (Exception ex)
{
MessageUtil.ShowWarning(ex.Message);
}
}
//查询合同轧制制程是否经过成分和理化
private void QueryGetSampleReq_Desgin_Process(ArrayList arrayList, UltraGrid ultraGrid)
{
DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReq_Desgin_Process",
new Object[] { arrayList }, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows.Count == 1)
{
if (dt.Rows[0]["STATION_CODE"].ToString() == "40230" || dt.Rows[0]["STATION_DESC"].ToString() == "成品成分")
{
chkChem.Checked = true;
chkPhy.Checked = false;
}
else
{
chkChem.Checked = false;
chkPhy.Checked = true;
}
}
else
{
chkChem.Checked = true;
chkPhy.Checked = true;
}
}
else
{
chkChem.Checked = false;
chkPhy.Checked = false;
}
}
//根据冶金规范查找MSC下的取样要求 COM_MSC_STD_PIC - BATCH_LOCA 组批位置 COM_BASE_SAMPLE - BATCH_CNT 每批支数
//1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK
//2.通过ORD_LN_DLY_PK 找到 SLM_ORDER_LINE 里的MSC
//3.通过MSC找到COM_MSC_STD_PIC 和 COM_MSC_PHY_SAMPLE 里的PIC
//4.通过PIC找到COM_BASE_SAMPLE 找到 SIC 取样要求
//根据质量设计查找DESGIN_KEY下的取样要求
//1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK , CRAFT_ORD_DESIGN
//2.通过交货行号ORD_LN_DLY_PK 找到 SLM_ORDER_LINE_DELIVERY里的ORD_LN_PK 通过 ORD_LN_PK 找到CRAFT_ORD_DESIGN里的DESGIN_KEY
//3.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC 里的检验项目
//4.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC_SMP 里的取样要求
//通过轧管合同号找取样要求
private void QueryGetSampleReq(ArrayList arrayList, DataTable dataTable, UltraGrid ultraGrid)
{
//try
//{
DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReq",
new Object[] { arrayList }, ob);
if (dt == null || dt.Rows.Count == 0)
{
return;
}
GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1
GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid
//}
//catch (Exception e)
//{
// MessageUtil.ShowWarning(e.Message);
//}
}
//查询检验项目明细
private void QueryGetSampleReqDetail_Phy(ArrayList arrayList, DataTable dataTable, UltraGrid ultraGrid)
{
//try
//{
DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReqDetail_Phy",
new Object[] { arrayList }, ob);
if (dt == null || dt.Rows.Count == 0)
{
return;
}
GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1
GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid
//}
//catch (Exception e)
//{
// MessageUtil.ShowWarning(e.Message);
//}
}
//确认检验项目是否正确
private void ConfirmPhy()
{
try
{
if (dataTable1 == null || dataTable1.Rows.Count == 0 || ultraGrid1.ActiveRow.Activated == false)
{
return;
}
if (ultraTabControl1.SelectedTab.Index != 0)
{
MessageUtil.ShowTips("只有选择了不合格页才能进行检验确认操作!");
return;
}
//if (MessageUtil.ShowYesNoAndQuestion("是否检验确认?") == DialogResult.Yes)
//{
PhyItemsConfirmResult pc = new PhyItemsConfirmResult();
pc.ShowDialog();
if (pc.DialogResult != DialogResult.OK)
{
return;
}
string flag = pc.StrIS_CORRECT;
string strPRO_ORDER_NO = ultraGrid1.ActiveRow.Cells["PRO_ORDER_NO"].Text.Trim();
//检验记录写在LOG表 做分批取样
ArrayList alAll = new ArrayList();
alAll.Add(this.Text + "确认" + (flag == "10" ? "不成立" : "成立") + "由于" + pc.StrRemark + "(" + UserInfo.GetUserName() + " " + DateTime.Now.ToString("yyyy-mm-dd hh:MM:ss") + ")");
alAll.Add(flag);
alAll.Add("00");
alAll.Add(strPRO_ORDER_NO);
PublicServer.SetData("com.steering.mes.port.mil.FrmMilConfirmItems.UpdatePln_Order_Zg",
new Object[] { alAll }, this.ob);
QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010");
//QueryPln_Order_Zg(dataTable1, ultraGrid1, "11");
PublicPort.ActiveOperateRow(ultraGrid1, "PRO_ORDER_NO", strPRO_ORDER_NO);
MessageUtil.ShowTips("检验确认成功!");
//}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
}
}
private void ultraGrid4_AfterRowActivate(object sender, EventArgs e)
{
try
{
dataTable4.Rows.Clear();
dataTable4_.Rows.Clear();
ArrayList arrayList = new ArrayList();
//产线、批次号、炉号
arrayList.Add(ultraGrid4.ActiveRow.Cells["ORDER_SEQ"].Text.Trim());
arrayList.Add(ultraGrid4.ActiveRow.Cells["ORDER_NO"].Text.Trim());
QueryGetSampleReq(arrayList, dataTable4, ultraGrid4);
QueryGetSampleReqDetail_Phy(arrayList, dataTable4_, ultraGrid4_);
//GridHelper.RefreshAndAutoSize(ultraGrid4);//刷新Grid
}
catch (Exception ex)
{
MessageUtil.ShowWarning(ex.Message);
}
}
//取消确认检验项目是否正确
private void CancelConfirmPhy()
{
try
{
if (dataTable4 == null || dataTable4.Rows.Count == 0 || ultraGrid3.ActiveRow.Activated == false)
{
return;
}
if (ultraTabControl1.SelectedTab.Index != 1)
{
MessageUtil.ShowTips("只有选择了已合格页才能进行取消检验确认操作!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否取消检验确认?") == DialogResult.Yes)
{
string strPRO_ORDER_NO = ultraGrid3.ActiveRow.Cells["PRO_ORDER_NO"].Text.Trim();
ArrayList alConfirmLogParams = new ArrayList();//历史记录表
alConfirmLogParams.Add("00");
alConfirmLogParams.Add("");
alConfirmLogParams.Add(ultraGrid3.ActiveRow.Cells["IS_CORRECT"].Text.Trim());
alConfirmLogParams.Add(strPRO_ORDER_NO);
PublicServer.SetData("com.steering.mes.port.mil.FrmMilConfirmItems.UpdatePln_Order_Zg",
new Object[] { alConfirmLogParams }, this.ob);
QueryPln_Order_Zg(dataTable4, ultraGrid3, "11");
//QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010");
//PublicPort.ActiveOperateRow(ultraGrid1, "PRO_ORDER_NO", strPRO_ORDER_NO);
MessageUtil.ShowTips("取消确认成功!");
}
}
catch (Exception e)
{
MessageUtil.ShowWarning(e.Message);
}
}
}
}