using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.ZGMil.Result;
using CoreFS.CA06;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Core.StlMes.Client.ZGMil.NodeResultQuery
{
public partial class FrmScrap : FrmBase
{
private ArrayList list = null;
private string plineCode = "";
public FrmScrap(ArrayList arr,string pline_Code,OpeBase ob)
{
InitializeComponent();
list = arr;
this.ob = ob;
plineCode = pline_Code;
}
///
/// 查询所有合格管序号
///
private void QuerySeq(ArrayList list)
{
DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQuerySeq", new object[] { list }, ob);
GridHelper.CopyDataToDatatable(ref ds, ref dataTable4, true);
}
public string alamNum = "";
public string scrapNum = "";
public string testOfflineNum = "";
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "Save":
Save();
break;
case "Close":
CloseFrm();
break;
}
}
int alarmTotalNum = 0;//报警总支数
int scarpTotalNum = 0;//废品总支数
int offlineTotalNum = 0;//下线总支数
private void CloseFrm()
{
alamNum = alarmTotalNum.ToString();
scrapNum = scarpTotalNum.ToString();
testOfflineNum = offlineTotalNum.ToString();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
///
/// 保存可疑、剔除品
///
private void Save()
{
this.ultraGridDetailDes1.UpdateData();
this.ultraGridDetailDes2.UpdateData();
this.ultraGridDetailDes3.UpdateData();
string strInbound = "800707";//入库类型
string strInMemo = "";
alarmTotalNum = 0;
scarpTotalNum = 0;
offlineTotalNum = 0;
IQueryable checkAlarmRows = this.ultraGridDetailDes1.Rows.AsQueryable().Where(" CHK = 'True'");
IQueryable checkScrapRows = this.ultraGridDetailDes2.Rows.AsQueryable().Where(" CHK = 'True'");
IQueryable checkOffineRow = this.ultraGridDetailDes3.Rows.AsQueryable().Where(" CHK = 'True'");
ArrayList alarmlist = new ArrayList();
ArrayList scraplist = new ArrayList();
ArrayList offlinelist = new ArrayList();
foreach (UltraGridRow uRow in checkAlarmRows)
{
ArrayList list1 = new ArrayList();
if (uRow.Cells["REASON"].Value.ToString() == "")
{
MessageUtil.ShowTips("报警品原因不能为空,请选择!");
return;
}
if (uRow.Cells["ACT_COUNT"].Value.ToString() == "" || uRow.Cells["ACT_COUNT"].Value.ToString() == "0")
{
MessageUtil.ShowTips("报警支数不能为空或者为零支,请输入!");
return;
}
if (!uRow.Cells["ACT_COUNT"].Value.ToString().TryParseInt())
{
MessageUtil.ShowTips("报警支数请输入整数!");
return;
}
alarmTotalNum = alarmTotalNum + int.Parse(uRow.Cells["ACT_COUNT"].Value.ToString3());
list1.Add(uRow.Cells["REASON"].Text.Trim());
list1.Add(uRow.Cells["ACT_COUNT"].Value.ToString3());
list1.Add(alarmTotalNum.ToString());
alarmlist.Add(list1);
}
int n = 0;
foreach (UltraGridRow ugr in checkScrapRows)
{
string alarmReason = ugr.Cells["REASON1"].Text.Trim();
int num = 0;
foreach (UltraGridRow ugr1 in checkAlarmRows)
{
if (ugr1.Cells["REASON"].Text.Trim().Equals(alarmReason))
{
num = num + int.Parse(ugr1.Cells["ACT_COUNT"].Value.ToString3());
}
}
if (num < int.Parse(ugr.Cells["ACT_COUNT"].Value.ToString3()))
{
n = n + 1;
}
}
if (n > 0)
{
MessageUtil.ShowTips("废品支数不能超出对应的报警原因下的支数!");
return;
}
foreach (UltraGridRow row in checkScrapRows)
{
ArrayList list2 = new ArrayList();
if (row.Cells["REASON1"].Value.ToString2() == "")
{
MessageUtil.ShowTips("报警原因不能为空,请选择!");
return;
}
if (row.Cells["REASON"].Value.ToString() == "")
{
MessageUtil.ShowTips("废品原因不能为空,请选择!");
return;
}
if (row.Cells["ACT_COUNT"].Value.ToString() == "" || row.Cells["ACT_COUNT"].Value.ToString() == "0")
{
MessageUtil.ShowTips("废品支数不能为空或者为零支,请输入!");
return;
}
if (!row.Cells["ACT_COUNT"].Value.ToString().TryParseInt())
{
MessageUtil.ShowTips("废品支数请输入整数!");
return;
}
scarpTotalNum = scarpTotalNum + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3());
list2.Add(row.Cells["REASON"].Text.Trim());
list2.Add(row.Cells["ACT_COUNT"].Value.ToString3());
list2.Add(scarpTotalNum.ToString());
list2.Add(row.Cells["REASON1"].Text.Trim());
scraplist.Add(list2);
}
foreach (UltraGridRow offlineRow in checkOffineRow)
{
ArrayList list3 = new ArrayList();
if (offlineRow.Cells["REASON"].Value.ToString() == "")
{
MessageUtil.ShowTips("下线品原因不能为空,请选择!");
return;
}
if (offlineRow.Cells["ACT_COUNT"].Value.ToString() == "" || offlineRow.Cells["ACT_COUNT"].Value.ToString() == "0")
{
MessageUtil.ShowTips("下线支数不能为空或者为零支,请输入!");
return;
}
if (!offlineRow.Cells["ACT_COUNT"].Value.ToString().TryParseInt())
{
MessageUtil.ShowTips("下线支数请输入整数!");
return;
}
offlineTotalNum = offlineTotalNum + int.Parse(offlineRow.Cells["ACT_COUNT"].Value.ToString3());
list3.Add(offlineRow.Cells["REASON"].Text.Trim());
list3.Add(offlineRow.Cells["ACT_COUNT"].Value.ToString3());
list3.Add(offlineTotalNum.ToString());
offlinelist.Add(list3);
}
DataTable dtMemo = PipeManageClass.getComTypeInfo(strInbound, ob);
if (dtMemo.Rows.Count >= 1)
{
strInMemo = dtMemo.Rows[0]["MEMO"].ToString();
}
if (scarpTotalNum + offlineTotalNum - alarmTotalNum > 0)
{
MessageUtil.ShowTips("废品和已探伤下线都是在报警品之下,废品支数加已探伤下线支数不能大于报警支数!");
return;
}
DataTable ds1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.doQueryPort", new object[] { list[0].ToString(), plineCode }, ob);
DataTable dtxx = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmOffLine.doQueryXxOfflinNum", new object[] { list[2].ToString(), plineCode, list[6].ToString(), list[7].ToString() }, ob);
if (dtxx.Rows.Count > 0)
{
int xxOfflineNum = int.Parse(dtxx.Rows[0]["OFFLINE_NUM"].ToString3());
if (scarpTotalNum + offlineTotalNum + xxOfflineNum > int.Parse(ds1.Rows[0]["QUALIFIED_NUM"].ToString3()))
{
MessageBox.Show("交库点已交库和离线了" + xxOfflineNum + "支,请确认数据再做离线!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
ArrayList parm = new ArrayList();
DataTable ds = getStoreNo(plineCode);
if (ds == null)
{
MessageUtil.ShowTips("无轧管在线库基础信息,请维护!");
return;
}
parm.Add(ds.Rows[0]["STORAGE_NO"].ToString());
parm.Add(ds.Rows[0]["STORAGE_NO"].ToString() + "10101");
parm.Add(ds.Rows[0]["STORAGE_TYPE_NO"].ToString());
parm.Add(ds.Rows[0]["STORAGE_TYPE_NAME"].ToString());
parm.Add(this.UserInfo.GetUserName());
parm.Add(this.UserInfo.GetDeptid());
parm.Add(this.UserInfo.GetDepartment());
parm.Add(PipeManageClass.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob));
parm.Add(PipeManageClass.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob));
parm.Add(UserInfo.GetUserOrder());
parm.Add(UserInfo.GetUserGroup());
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult";
ccp.MethodName = "saveScrapData";
ccp.ServerParams = new object[] { alarmlist, scraplist, offlinelist, list, strInbound, strInMemo, plineCode, parm };
ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnInfo.Equals("保存成功!"))
{
alamNum = alarmTotalNum.ToString();
scrapNum = scarpTotalNum.ToString();
testOfflineNum = offlineTotalNum.ToString();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
else
{
MessageUtil.ShowTips(ccp.ReturnInfo);
}
}
}
///
/// 查询仓库信息
///
///
///
private DataTable getStoreNo(string plineCode)
{
DataTable ds = ServerHelper.GetData("com.steering.mes.signature.FrmInOnlineStore.doQueryStoreNo", new object[] { plineCode }, ob);
if (ds.Rows.Count > 0)
{
return ds;
}
else
{
return null;
}
}
private void FrmScrap_Load(object sender, EventArgs e)
{
Init(plineCode);
doQuery();
//QuerySeq(list);
}
public void Init(string plineCode)
{
ValueList va1 = new ValueList();
ValueList va2 = new ValueList();
ValueList va3 = new ValueList();
ValueList va4 = new ValueList();
if (plineCode != null)
{
if (plineCode.Equals("C009") || plineCode.Equals("C017") || plineCode.Equals("C008") || plineCode.Equals("C072"))
{
va1.ValueListItems.Add("");
va1.ValueListItems.Add("LOD");
va1.ValueListItems.Add("LID");
va1.ValueListItems.Add("TOD");
va1.ValueListItems.Add("TID");
va4.ValueListItems.Add("");
va4.ValueListItems.Add("LOD");
va4.ValueListItems.Add("LID");
va4.ValueListItems.Add("TOD");
va4.ValueListItems.Add("TID");
va2.ValueListItems.Add("");
va2.ValueListItems.Add("内折");
va2.ValueListItems.Add("内结疤");
va2.ValueListItems.Add("内划伤");
va2.ValueListItems.Add("拉凹");
va2.ValueListItems.Add("内棱");
va2.ValueListItems.Add("取样废");
va2.ValueListItems.Add("内壁伤");
va2.ValueListItems.Add("内鼓包");
va2.ValueListItems.Add("外折");
va2.ValueListItems.Add("外结疤");
va2.ValueListItems.Add("外划伤");
va2.ValueListItems.Add("裂纹");
va2.ValueListItems.Add("靑线");
va2.ValueListItems.Add("轧折");
va2.ValueListItems.Add("碰伤");
va2.ValueListItems.Add("孔洞");
va2.ValueListItems.Add("其他");
va3.ValueListItems.Add("");
va3.ValueListItems.Add("内折");
va3.ValueListItems.Add("内结疤");
va3.ValueListItems.Add("内划伤");
va3.ValueListItems.Add("拉凹");
va3.ValueListItems.Add("内棱");
va3.ValueListItems.Add("取样废");
va3.ValueListItems.Add("内壁伤");
va3.ValueListItems.Add("内鼓包");
va3.ValueListItems.Add("外折");
va3.ValueListItems.Add("外结疤");
va3.ValueListItems.Add("外划伤");
va3.ValueListItems.Add("裂纹");
va3.ValueListItems.Add("靑线");
va3.ValueListItems.Add("轧折");
va3.ValueListItems.Add("碰伤");
va3.ValueListItems.Add("孔洞");
va3.ValueListItems.Add("其他");
}
else if (plineCode.Equals("C010"))
{
va1.ValueListItems.Add("");
va1.ValueListItems.Add("孔洞");
va1.ValueListItems.Add("外折");
va1.ValueListItems.Add("划伤");
va1.ValueListItems.Add("内伤");
va1.ValueListItems.Add("误报");
va2.ValueListItems.Add("");
va2.ValueListItems.Add("孔洞");
va2.ValueListItems.Add("外折");
va2.ValueListItems.Add("内伤");
va3.ValueListItems.Add("");
va3.ValueListItems.Add("孔洞");
va3.ValueListItems.Add("外折");
va3.ValueListItems.Add("内伤");
va4.ValueListItems.Add("");
va4.ValueListItems.Add("孔洞");
va4.ValueListItems.Add("外折");
va4.ValueListItems.Add("划伤");
va4.ValueListItems.Add("内伤");
va4.ValueListItems.Add("误报");
//this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON1"].Hidden = true;
}
}
this.ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va1;
this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va2;
this.ultraGridDetailDes3.DisplayLayout.Bands[0].Columns["REASON"].ValueList = va3;
this.ultraGridDetailDes2.DisplayLayout.Bands[0].Columns["REASON1"].ValueList = va4;
}
///
/// 查询可疑品、剔除品
///
public void doQuery()
{
dataTable1.Clear();
dataTable2.Clear();
dataTable3.Clear();
DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryAlarmNum", new object[] { list }, ob);
GridHelper.CopyDataToDatatable(ref dt,ref dataTable1,true);
DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryScrapNum", new object[] { list }, ob);
GridHelper.CopyDataToDatatable(ref ds, ref dataTable2, true);
DataTable dd = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryOffineNum", new object[] { list }, ob);
GridHelper.CopyDataToDatatable(ref dd, ref dataTable3, true);
}
private void ultraGridDetailDes1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
UltraGrid ug = (UltraGrid)sender;
this.ultraGridDetailDes1.UpdateData();
if (e.Cell.Column.Key == "REASON")
{
if (e.Cell.Value == "")
{
MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int temp = 0;
for (int i = 0; i < ug.Rows.Count(); i++)
{
UltraGridRow ugr = ug.Rows[i];
if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString()))
{
temp = temp + 1;
}
}
if (temp > 1)
{
MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
e.Cell.Row.Cells["REASON"].Value = "";
}
}
//if(e.Cell.Column.Key == "ACT_COUNT")
//{
// int total = 0;
// foreach(UltraGridRow row in this.ultraGridDetailDes1.Rows)
// {
// if (Convert.ToBoolean(row.Cells["CHK"].Text) == true)
// {
// total = total + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3());
// }
// }
// ultraGrid1.BeginUpdate();
// foreach (UltraGridRow uRow in this.ultraGrid1.Rows)
// {
// if (total >= uRow.Index + 1)
// {
// uRow.Cells["CHK1"].Value = true;
// }
// else
// {
// uRow.Cells["CHK1"].Value = false;
// }
// }
// ultraGrid1.EndUpdate();
//}
}
private void ultraGridDetailDes2_CellChange(object sender, CellEventArgs e)
{
UltraGrid ug = (UltraGrid)sender;
this.ultraGridDetailDes2.UpdateData();
if (e.Cell.Column.Key == "REASON")
{
if (e.Cell.Value == "")
{
MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int temp = 0;
for (int i = 0; i < ug.Rows.Count(); i++)
{
UltraGridRow ugr = ug.Rows[i];
if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString()) && e.Cell.Row.Cells["REASON1"].Value.ToString2().Equals(ugr.Cells["REASON1"].Value.ToString2()))
{
temp = temp + 1;
}
}
if (temp > 1)
{
MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
e.Cell.Row.Cells["REASON"].Value = "";
}
}
if (e.Cell.Column.Key == "REASON1")
{
if (e.Cell.Value == "")
{
MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int temp1 = 0;
for (int i = 0; i < ug.Rows.Count(); i++)
{
UltraGridRow ugr = ug.Rows[i];
if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON1"].Value.ToString()) && e.Cell.Row.Cells["REASON"].Value.ToString2().Equals(ugr.Cells["REASON"].Value.ToString2()))
{
temp1 = temp1 + 1;
}
}
if (temp1 > 1)
{
MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
e.Cell.Row.Cells["REASON"].Value = "";
}
}
//if (e.Cell.Column.Key == "ACT_COUNT")
//{
// int total = 0;
// foreach (UltraGridRow row in this.ultraGridDetailDes2.Rows)
// {
// if (Convert.ToBoolean(row.Cells["CHK"].Text) == true)
// {
// total = total + int.Parse(row.Cells["ACT_COUNT"].Value.ToString3());
// }
// }
// ultraGrid1.BeginUpdate();
// IQueryable checkAlarmRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK1 = 'True' and CHK3 = 'False' ORDER BY TO_NUMBER(SEQ) ASC");
// if (checkAlarmRows.Count() < total)
// {
// MessageUtil.ShowTips("废品总支数不能大于报警总支数");
// return;
// }
// else
// {
// int i = 1;
// foreach (UltraGridRow uRow in checkAlarmRows)
// {
// uRow.Cells["CHK2"].Value = false;
// if (i <= total)
// {
// uRow.Cells["CHK2"].Value = true;
// }
// i++;
// }
// }
// ultraGrid1.EndUpdate();
//}
}
private void ultraGridDetailDes3_CellChange(object sender, CellEventArgs e)
{
UltraGrid ug = (UltraGrid)sender;
this.ultraGridDetailDes3.UpdateData();
if (e.Cell.Column.Key == "REASON")
{
if (e.Cell.Value == "")
{
MessageBox.Show("您未选择任何选项,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int temp = 0;
for (int i = 0; i < ug.Rows.Count(); i++)
{
UltraGridRow ugr = ug.Rows[i];
if (e.Cell.Value.ToString().Equals(ugr.Cells["REASON"].Value.ToString()))
{
temp = temp + 1;
}
}
if (temp > 1)
{
MessageBox.Show(e.Cell.Value.ToString() + "选项已被选取,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
e.Cell.Row.Cells["REASON"].Value = "";
}
}
}
private void FrmScrap_Leave(object sender, EventArgs e)
{
FrmTestingResult frmTestingResult = new FrmTestingResult();
frmTestingResult.ETResultSave();
}
}
}