You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4772 lines
204 KiB
4772 lines
204 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.Linq;
|
|
using System.Linq;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraGrid.Views.BandedGrid;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using DevExpress.XtraGrid;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using ICSSoft.Base.Language.Tool;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
using ICSSoft.Base.UserControl.MessageControl;
|
|
using ICSSoft.Base.Config.DBHelper;
|
|
using ICSSoft.Base.Report.Filter;
|
|
using ICSSoft.Base.UserControl.FormControl;
|
|
using ICSSoft.Base.Report.GridReport;
|
|
using ICSSoft.Base.ReferForm.AppReferForm;
|
|
using ICSSoft.Frame.Data.BLL;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
using System.Text.RegularExpressions;
|
|
using Newtonsoft.Json;
|
|
using System.Net;
|
|
using System.Configuration;
|
|
using Newtonsoft.Json.Linq;
|
|
namespace ICSSoft.Frame.APP
|
|
{
|
|
public partial class FormICSProductionReport : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
|
|
private FramDataContext _domainDataProvider = null;
|
|
private string sqltxt = "";
|
|
private string sqlconn = "";
|
|
//String guid = AppConfig.GetGuid();
|
|
private DataTable dataSource = null;
|
|
//string ID = "";
|
|
string ItemCode = string.Empty;
|
|
string ItemName = string.Empty; string INVDESC = string.Empty; string RCVCode = string.Empty; string LotNo = string.Empty;
|
|
Decimal TotalQty = 0;
|
|
Decimal YLOTQTY = 0; Decimal UYLOTQTY = 0;
|
|
string OPCode = string.Empty;
|
|
string lotno = "";
|
|
private const string PAUSE = "暂停";
|
|
private const string CANCELPAUSE = "取消暂停";
|
|
private const string START = "开工";
|
|
private const string END = "完工";
|
|
private string Status;
|
|
private string routeCode;
|
|
private string EQPType;
|
|
private string partCode = "";
|
|
private string partSpec = "";
|
|
|
|
string RouteCode = string.Empty;
|
|
private const string STARTSTATUS = "COLLECT_BEGIN";
|
|
private const string ENDSTATUS = "COLLECT_END";
|
|
String guid = "";
|
|
FormICSECGUIModel ecgUIModel;
|
|
int Flag;
|
|
DataTable palINVdt = new DataTable();
|
|
//DataTable grvdt = new DataTable();
|
|
//DataTable connectgrvdt = new DataTable();
|
|
int MainKniefQTY = 0;
|
|
string MOSEQ = "";
|
|
bool InvControl = false;
|
|
bool MouldContorl = false;
|
|
string OPCodeCurrent = "";
|
|
string OPCodeNext = "";
|
|
string opseq="";
|
|
DataTable dataUpOPDetail = new DataTable();
|
|
|
|
#region 构造函数
|
|
public FormICSProductionReport()
|
|
{
|
|
InitializeComponent();
|
|
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
|
|
this.WindowState = FormWindowState.Maximized;
|
|
initType();
|
|
this.txtLotNo.Focus();
|
|
panelMap.Dock = DockStyle.Fill;
|
|
panelOP.Dock = DockStyle.Fill;
|
|
//panel8WebMap.Dock = DockStyle.Fill;
|
|
|
|
this.label23.Visible = false;
|
|
panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
|
|
this.txtReturnMateralSave.Visible = false;
|
|
|
|
labelControl1.Visible = false;
|
|
txtSBItemCode.Visible = false;
|
|
labelControl2.Visible = false;
|
|
txtSBItemCodeQty.Visible = false;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 构造函数
|
|
public FormICSProductionReport(string _ItemCode, string _ItemName, string _INVDESC, string _RCVCode, string _LotNo, Decimal _TotalQty, Decimal _YLOTQTY, Decimal _UYLOTQTY)
|
|
{
|
|
InitializeComponent();
|
|
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
|
|
this.WindowState = FormWindowState.Maximized;
|
|
//txtMOCode.Text = ItemCode = _ItemCode;
|
|
//txtItemName.Text = ItemName = _ItemName;
|
|
txtLotNo.Text = LotNo = _LotNo;
|
|
//txtItemINVDESC.Text = INVDESC = _INVDESC;
|
|
//txtTotalQty.Text = _TotalQty.ToString();
|
|
|
|
TotalQty = _TotalQty;
|
|
RCVCode = _RCVCode;
|
|
|
|
Decimal YLOTQTY = _YLOTQTY; Decimal UYLOTQTY = _UYLOTQTY;
|
|
//init();
|
|
|
|
BandData(ItemCode, LotNo, OPCode);
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 初始化查询条件
|
|
private void init()
|
|
{
|
|
#region
|
|
string sql = @"SELECT a.CKListCode ,
|
|
b.CKITENAME ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL,
|
|
a.InspectionStandard, IQC.S1,IQC.S2,IQC.S3,IQC.S4,IQC.S5,IQC.S6,IQC.S7,IQC.S8,IQC.S9,IQC.S10,IQC.CCResult
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
LEFT JOIN ICSOQCCKGROUP2LISTCheckResult IQC ON IQC.CKListCode=a.CKListCode AND a.CKITEMCODE =IQC.CKITEMCODE AND IQC.RCVCode='" + RCVCode + "' AND IQC.LotNo='" + LotNo + "' AND IQC.VALUEMAX=A.VALUEMAX AND IQC.VALUEMIN=A.VALUEMIN " +
|
|
" WHERE a.CKITEMCODE = '" + ItemCode + "' AND IQC.CheckoutAttribute = '量化'";//AND a.IsUse = '1'
|
|
sql = string.Format(sql, AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
bool istrue = false;
|
|
foreach (DataRow item in dt.Rows)
|
|
{
|
|
string resultCC = item["CCResult"].ToString();
|
|
if (resultCC == "NG")
|
|
{
|
|
istrue = false;
|
|
break;
|
|
}
|
|
if (resultCC == "OK")
|
|
{
|
|
istrue = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
string sqlUn = @"SELECT a.CKListCode ,
|
|
b.CKITENAME ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL,
|
|
a.InspectionStandard,'' S1,'' S2,'' S3,'' S4,'' S5,'' S6,'' S7,'' S8,'' S9,'' S10
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
WHERE a.CKITEMCODE = '" + ItemCode + "' AND a.IsUse = '1' AND a.CheckoutAttribute = '尺寸'";
|
|
sqlUn = string.Format(sqlUn, AppConfig.WorkPointCode);
|
|
DataTable dtun = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlUn).Tables[0];
|
|
//gridControlcc.DataSource = dtun;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
string sql2 = @"SELECT a.CKListCode CKListCode1 ,
|
|
b.CKITENAME CKITENAME1 ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL ,
|
|
a.InspectionStandard ,IQC.Qualified,IQC.UnQualified,IQC.WGResult
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
LEFT JOIN ICSOQCCKGROUP2LISTCheckResult IQC ON IQC.CKListCode=a.CKListCode AND a.CKITEMCODE =IQC.CKITEMCODE AND IQC.RCVCode='" + RCVCode + "' AND IQC.LotNo='" + LotNo + "' AND A.AQL=IQC.AQL AND A.InspectionStandard=IQC.InspectionStandard " +
|
|
" WHERE a.CKITEMCODE = '" + ItemCode + "' AND a.IsUse = '1' AND IQC.CheckoutAttribute = '外观'";
|
|
sql2 = string.Format(sql2, AppConfig.WorkPointCode);
|
|
DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
|
|
|
|
if (dt2 != null && dt2.Rows.Count > 0)
|
|
{
|
|
//gridControl1.DataSource = dt2;
|
|
if (dt2 != null && dt2.Rows.Count > 0)
|
|
{
|
|
bool istrue = false;
|
|
foreach (DataRow item in dt2.Rows)
|
|
{
|
|
string resultCC = item["WGResult"].ToString();
|
|
if (resultCC == "NG")
|
|
{
|
|
istrue = false;
|
|
break;
|
|
}
|
|
if (resultCC == "OK")
|
|
{
|
|
istrue = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string sql2Un = @"SELECT a.CKListCode CKListCode1 ,
|
|
b.CKITENAME CKITENAME1 ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL ,
|
|
a.InspectionStandard ,'' Qualified,'' UnQualified
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
WHERE a.CKITEMCODE = '" + ItemCode + "' AND a.IsUse = '1' AND a.CheckoutAttribute = '外观'";
|
|
sql2Un = string.Format(sql2Un, AppConfig.WorkPointCode);
|
|
DataTable dt2Un = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2Un).Tables[0];
|
|
//gridControl1.DataSource = dt2Un;
|
|
}
|
|
}
|
|
|
|
private void initType()
|
|
{
|
|
#region 暂停
|
|
string sql2 = @"SELECT DISTINCT EnumValue [暂停类型编码] ,EnumText [暂停类型] FROM Sys_EnumValues WHERE EnumKey='00022'
|
|
UNION SELECT '' [暂停类型编码],'' [暂停类型] FROM Sys_EnumValues ";
|
|
sql2 = string.Format(sql2, AppConfig.WorkPointCode);
|
|
DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
|
|
txtStopType.Properties.ValueMember = "暂停类型";
|
|
txtStopType.Properties.DisplayMember = "暂停类型";
|
|
txtStopType.Properties.DataSource = dt2;
|
|
txtStopType.Properties.NullText = "";//空时的值
|
|
txtStopType.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
|
|
txtStopType.Properties.ValidateOnEnterKey = true;//回车确认
|
|
txtStopType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
|
|
txtStopType.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
|
|
//自适应宽度
|
|
txtStopType.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
|
|
#endregion
|
|
//this.txtLotNo.SelectAll();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void init_()
|
|
{
|
|
#region
|
|
string sql = @"SELECT a.CKListCode ,
|
|
b.CKITENAME ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL,
|
|
a.InspectionStandard
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
WHERE a.CKITEMCODE = '" + ItemCode + "' AND a.IsUse = '1' AND a.CheckoutAttribute = '尺寸'";
|
|
sql = string.Format(sql, AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
//gridControlcc.DataSource = dt;
|
|
#endregion
|
|
|
|
string sql2 = @"SELECT a.CKListCode CKListCode1 ,
|
|
b.CKITENAME CKITENAME1 ,
|
|
a.CKGROUP,
|
|
a.CKITEMCODE,
|
|
a.VALUEMAX ,
|
|
a.VALUEMIN ,
|
|
a.UNIT,
|
|
a.AQL ,
|
|
a.InspectionStandard
|
|
FROM ICSOQCCKGROUP2LIST a
|
|
LEFT JOIN ICSOQCCKLIST b ON a.CKListCode = b.CKITEMCODE
|
|
WHERE a.CKITEMCODE = '" + ItemCode + "' AND a.IsUse = '1' AND a.CheckoutAttribute = '外观'";
|
|
sql2 = string.Format(sql2, AppConfig.WorkPointCode);
|
|
DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql2).Tables[0];
|
|
//gridControl1.DataSource = dt2;
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 根据存货编码查询列表信息
|
|
private void BandData(string itemCode, string LotNo, string OPCode)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"SELECT EnumName FROM Sys_EnumKey WHERE EnumKey='00006'";
|
|
//sql = string.Format(sql, itemCode);
|
|
string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
return;
|
|
object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
return;
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + itemCode + OpCode + ".pdf";
|
|
string fileName = name.ToString() + itemCode + "\\" + itemCode + LotNo + OPCode + ".pdf";
|
|
|
|
if (!string.IsNullOrEmpty(fileName))
|
|
{
|
|
|
|
axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
#region 操作权限
|
|
public DataTable RightOfExute()
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BtnName");
|
|
rData.Columns.Add("ActionName");
|
|
//查看权限(必须有)
|
|
DataRow seeRow = rData.NewRow();
|
|
seeRow["BtnName"] = "see";
|
|
seeRow["ActionName"] = "查看";
|
|
rData.Rows.Add(seeRow);
|
|
|
|
List<Control> ControlList = new List<Control>();
|
|
//ControlList.Add(simpleButton2);
|
|
//ControlList.Add(simpleButton3);
|
|
//ControlList.Add(btnOutPut);
|
|
foreach (Control ctr in ControlList)
|
|
{
|
|
|
|
if (ctr.GetType() == typeof(SimpleButton))
|
|
{
|
|
DataRow dr = rData.NewRow();
|
|
dr["BtnName"] = ctr.Name;
|
|
dr["ActionName"] = ctr.Text;
|
|
rData.Rows.Add(dr);
|
|
}
|
|
}
|
|
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
public DataTable RightOfData()// 数据权限
|
|
{
|
|
DataTable rData = new DataTable();
|
|
rData.Columns.Add("BodyName");
|
|
rData.Columns.Add("ControlName");
|
|
rData.Columns.Add("ControlCaption");
|
|
|
|
rData.AcceptChanges();
|
|
return rData;
|
|
}
|
|
#endregion
|
|
|
|
#region 退出
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
AppConfig.CloseFormShow(this.Text);
|
|
this.Close();
|
|
}
|
|
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
AppConfig.CloseFormShow(this.Text);
|
|
this.Close();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 移动窗体
|
|
private const int WM_NCHITTEST = 0x84;
|
|
private const int HTCLIENT = 0x1;
|
|
private const int HTCAPTION = 0x2;
|
|
//首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
|
|
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
|
|
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
|
|
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
|
|
|
|
//重写窗体,使窗体可以不通过自带标题栏实现移动
|
|
protected override void WndProc(ref Message m)
|
|
{
|
|
|
|
|
|
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
|
|
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
|
|
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
|
|
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
|
|
switch (m.Msg)
|
|
{
|
|
case WM_NCHITTEST:
|
|
base.WndProc(ref m);
|
|
if ((int)m.Result == HTCLIENT)
|
|
m.Result = (IntPtr)HTCAPTION;
|
|
return;
|
|
}
|
|
//拦截双击标题栏、移动窗体的系统消息
|
|
if (m.Msg != 0xA3)
|
|
{
|
|
base.WndProc(ref m);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 列表
|
|
private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
|
|
{
|
|
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤
|
|
//private string tempTableName = "";
|
|
//private void btnFilter_Click(object sender, EventArgs e)
|
|
//{
|
|
// FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
|
|
// filter.OldTempTableName = tempTableName;
|
|
// if (filter.ShowDialog() == DialogResult.OK)
|
|
// {
|
|
// DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
|
|
// try
|
|
// {
|
|
|
|
// _wait.Show();
|
|
// tempTableName = filter.NewTempTableName;
|
|
// sqltxt = filter.SqlText;
|
|
// sqlconn = filter.FilterConnectString;
|
|
// dataSource = filter.FilterData.Tables[0];
|
|
// grdDetail.DataSource = dataSource;
|
|
// grvDetail.BestFitColumns();
|
|
// rptPage.RecordNum = dataSource.Rows.Count;
|
|
// rptPage.PageSize = 499;
|
|
// rptPage.PageIndex = 1;
|
|
// rptPage.ReLoad();
|
|
// rptPage.PageSize = 500;
|
|
// rptPage.PageIndex = 1;
|
|
// rptPage.ReLoad();
|
|
// _wait.Close();
|
|
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
// _wait.Close();
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
#endregion
|
|
|
|
#region 绑定数据源
|
|
private void btnConfig_Click(object sender, EventArgs e)
|
|
{
|
|
//if (AppConfig.UserCode.ToLower() != "demo")
|
|
//{
|
|
// ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
|
|
// return;
|
|
//}
|
|
//FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
|
|
//fdata.ShowDialog();
|
|
}
|
|
#endregion
|
|
|
|
#region 分页
|
|
private void rptPage_PageIndexChanged(object Sender, EventArgs e)
|
|
{
|
|
//DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
|
|
////DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
|
|
//grdDetail.DataSource = data;
|
|
}
|
|
#endregion
|
|
|
|
#region 过滤方法
|
|
private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
//AppConfig.DropTemTable(tempTableName);
|
|
}
|
|
#endregion
|
|
|
|
#region 全选
|
|
private void btnSelectAll_Click(object sender, EventArgs e)
|
|
{
|
|
//grvDetail.PostEditor();
|
|
//this.Validate();
|
|
//for (int i = 0; i < grvDetail.RowCount; i++)
|
|
//{
|
|
// grvDetail.SetRowCellValue(i, colisSelect, "Y");
|
|
//}
|
|
}
|
|
#endregion
|
|
|
|
#region 全消
|
|
private void btnCancelAll_Click(object sender, EventArgs e)
|
|
{
|
|
//grvDetail.PostEditor();
|
|
//this.Validate();
|
|
//for (int i = 0; i < grvDetail.RowCount; i++)
|
|
//{
|
|
// grvDetail.SetRowCellValue(i, colisSelect, "");
|
|
//}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 刷新
|
|
private void btnFalsh_Click(object sender, EventArgs e)
|
|
{
|
|
//FormICSCREW_Load(null, null);
|
|
//txtMOCode.Text = ItemCode;
|
|
//txtItemName.Text = ItemName;
|
|
txtLotNo.Text = LotNo;
|
|
//txtItemINVDESC.Text = INVDESC;
|
|
//txtTotalQty.Text = TotalQty.ToString();
|
|
|
|
//init_();
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
//private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
|
|
//{
|
|
// AppConfig.DropTemTable(tempTableName);
|
|
//}
|
|
|
|
#region 页面加载
|
|
private void FormICSCREW_Load(object sender, EventArgs e)
|
|
{
|
|
//btnFilter_Click(sender, e);
|
|
//button1.Enabled = false;
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
#region 导入模板下载
|
|
|
|
#endregion
|
|
|
|
#region 导入
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 保存
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
private bool CheckIsDecmil(string KeyValue)
|
|
{
|
|
try
|
|
{
|
|
Decimal.Parse(KeyValue);
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
// private void txtUserCode_TextChanged(object sender, EventArgs e)
|
|
// {
|
|
// #region
|
|
// string chksql = @"SELECT UserCode,UserName,StartFlag FROM Sys_User WHERE UserCode='{0}' AND WorkPointCode='{1}' and StartFlag='1' ";
|
|
// chksql = string.Format(chksql, this.txtUserCode.Text.Trim(), AppConfig.WorkPointCode);
|
|
// DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, chksql).Tables[0];
|
|
|
|
// if (dt.Rows.Count == 0)
|
|
// {
|
|
// ICSBaseSimpleCode.AppshowMessageBox("该人员不存在或者账号已经停用!!");
|
|
// return;
|
|
// }
|
|
// //else
|
|
// //{
|
|
// // if (dt.Rows[0]["EATTRIBUTE6"].ToString() == "")
|
|
// // {
|
|
// // ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号未绑定零件号,请先绑定再发料!!");
|
|
// // return;
|
|
// // }
|
|
// //}
|
|
// #endregion
|
|
// string LotNo = txtLotNo.Text.Trim();
|
|
// string sql = @"SELECT DISTINCT
|
|
// a.ID,
|
|
// a.LOTNO,
|
|
// a.LOTQTY,
|
|
// b.MOCODE,
|
|
// b.ITEMCODE,
|
|
// a.VenderLotNO,
|
|
// c.INVNAME AS ItemName,
|
|
// d.LOTStatus,
|
|
// CASE d.CollectStatus WHEN 'COLLECT_BEGIN' THEN 'WG' ELSE 'KG' END AS Status
|
|
// FROM
|
|
// ICSITEMLot a WITH (nolock)
|
|
// LEFT JOIN ICSMO b WITH (nolock) ON a.TransNO = b.MOCODE AND a.TransLine=b.MOSEQ
|
|
// LEFT JOIN ICSINVENTORY c WITH (nolock) ON b.ITEMCODE = c.INVCODE
|
|
// LEFT JOIN ICSLOTSIMULATION d WITH(nolock) ON a.LOTNO = d.LOTNO
|
|
// WHERE
|
|
// a.LOTNO = '{0}'";
|
|
// sql = string.Format(sql, LotNo);
|
|
// DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
|
|
// if (data.Rows.Count > 0)
|
|
// {
|
|
// foreach (DataRow dr in data.Rows)
|
|
// {
|
|
// txtLotNo.Text = dr["LOTNO"].ToString();
|
|
// txtItemCode.Text = dr["ITEMCODE"].ToString();
|
|
// txtItemName.Text = dr["ItemName"].ToString();
|
|
|
|
// }
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
// private void txtLotNo_TextChanged(object sender, EventArgs e)
|
|
// {
|
|
// #region
|
|
// string chksql = @"select LotNO ,b.ISSMT from ICSITEMLot a
|
|
// LEFT JOIN ICSINVENTORY b ON a.ItemCODE=b.INVCODE
|
|
// where LotNO='{0}' AND a.WorkPoint='{1}'";
|
|
// chksql = string.Format(chksql, txtLotNo.Text.Trim(), AppConfig.WorkPointCode);
|
|
// DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, chksql).Tables[0];
|
|
// if (dt.Rows.Count == 0)
|
|
// {
|
|
// ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不存在!!");
|
|
// return;
|
|
// }
|
|
// else
|
|
// {
|
|
// if (dt.Rows[0]["LotNO"].ToString() == "")
|
|
// {
|
|
// ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号未绑定零件号,请先绑定再发料!!");
|
|
// return;
|
|
// }
|
|
// if (dt.Rows[0]["ISSMT"].ToString() == "1")
|
|
// {
|
|
// ICSBaseSimpleCode.AppshowMessageBox("该批次产品只能单件报工!!");
|
|
// return;
|
|
// }
|
|
// }
|
|
// #endregion
|
|
// string LotNo = txtLotNo.Text.Trim();
|
|
// string sql = @"SELECT DISTINCT
|
|
// a.ID,
|
|
// a.LOTNO,
|
|
// a.LOTQTY,
|
|
// b.MOCODE,
|
|
// b.ITEMCODE,
|
|
// a.VenderLotNO,
|
|
// c.INVNAME AS ItemName,
|
|
// d.LOTStatus,
|
|
// CASE d.CollectStatus WHEN 'COLLECT_BEGIN' THEN 'WG' ELSE 'KG' END AS Status
|
|
// FROM
|
|
// ICSITEMLot a WITH (nolock)
|
|
// LEFT JOIN ICSMO b WITH (nolock) ON a.TransNO = b.MOCODE AND a.TransLine=b.MOSEQ
|
|
// LEFT JOIN ICSINVENTORY c WITH (nolock) ON b.ITEMCODE = c.INVCODE
|
|
// LEFT JOIN ICSLOTSIMULATION d WITH(nolock) ON a.LOTNO = d.LOTNO
|
|
// WHERE
|
|
// a.LOTNO = '{0}'";
|
|
// sql = string.Format(sql, LotNo);
|
|
// DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
|
|
// if (data.Rows.Count > 0)
|
|
// {
|
|
// foreach (DataRow dr in data.Rows)
|
|
// {
|
|
// txtLotNo.Text = dr["LOTNO"].ToString();
|
|
// txtItemCode.Text = dr["ITEMCODE"].ToString();
|
|
// txtItemName.Text = dr["ItemName"].ToString();
|
|
// txtMOCode.Text = dr["MOCODE"].ToString();
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
|
|
//private void txtOPCode_TextChanged(object sender, EventArgs e)
|
|
//{
|
|
// OPCodeCurrent = this.txtOPCode.Text;
|
|
//}
|
|
|
|
//private void txtMachineCode_TextChanged(object sender, EventArgs e)
|
|
//{
|
|
|
|
//}
|
|
|
|
|
|
private void txtLotNo_KeyPress(object sender, KeyPressEventArgs e)
|
|
|
|
{
|
|
try
|
|
{
|
|
#region`
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
txtOPCode.Enabled = true;
|
|
txtUserCode.ReadOnly = false;
|
|
txtEQPCode.ReadOnly = false;
|
|
foreach (Control control in tableLayoutPanel2.Controls)
|
|
{
|
|
if (control is TextBox && control.Name != "txtLotNo")
|
|
{
|
|
TextBox box = control as TextBox;
|
|
box.Text = "";
|
|
}
|
|
}
|
|
|
|
#region
|
|
// string chksql = @"select LotNO ,a.LOTQTY,b.ISSMT from ICSITEMLot a
|
|
// LEFT JOIN ICSINVENTORY b ON a.ItemCODE=b.INVCODE
|
|
// where LotNO='{0}' AND a.WorkPoint='{1}'";
|
|
string chksql = @"select LotNO ,a.LOTQTY,b.ISSMT from ICSITEMLot a
|
|
LEFT JOIN ICSINVENTORY b ON a.MCODE=b.INVCODE
|
|
where LotNO='{0}' AND a.WorkPoint='{1}'";
|
|
|
|
chksql = string.Format(chksql, txtLotNo.Text.Trim(), AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, chksql).Tables[0];
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号不存在!!");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (dt.Rows[0]["LotNO"].ToString() == "")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("产品跟踪单号未绑定零件号,请先绑定再发料!!");
|
|
return;
|
|
}
|
|
if (dt.Rows[0]["ISSMT"].ToString() == "1")
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("该批次产品只能单件报工!!");
|
|
return;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
string LotNo = txtLotNo.Text.Trim();
|
|
txtLONTQty.Text = dt.Rows[0]["LOTQTY"].ToString();
|
|
|
|
string sql = @"SELECT DISTINCT
|
|
a.ID, a.LOTNO, b.MOPLANQTY, a.LOTQTY,d.NGQTY,D.GOODQTY, b.MOCODE,b.MOSEQ, b.ITEMCODE, a.VenderLotNO, c.INVNAME AS ItemName, d.LOTStatus,b.MOPLANQTY,a.EATTRIBUTE5,
|
|
CASE d.CollectStatus WHEN 'COLLECT_BEGIN' THEN 'WG' ELSE 'KG' END AS Status
|
|
FROM ICSITEMLot a WITH (nolock)
|
|
LEFT JOIN ICSMO b WITH (nolock) ON a.TransNO = b.MOCODE AND a.TransLine=b.MOSEQ
|
|
LEFT JOIN ICSINVENTORY c WITH (nolock) ON b.ITEMCODE = c.INVCODE
|
|
LEFT JOIN ICSLOTSIMULATION d WITH(nolock) ON a.LOTNO = d.LOTNO
|
|
WHERE a.LOTNO = '{0}'";
|
|
sql = string.Format(sql, LotNo);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
string NGQTY = string.Empty;
|
|
string GOODQTY = string.Empty;
|
|
string MOQTY = string.Empty;
|
|
|
|
Decimal _NGQTY = 0;
|
|
Decimal _LOTQTY = 0;
|
|
Decimal _GOODQTY = 0;
|
|
Decimal _MOQTY = 0;
|
|
|
|
|
|
if (data.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
//新增返修条码判断逻辑
|
|
txtLotNo.Text = dr["LOTNO"].ToString();
|
|
txtItemCode.Text = dr["ITEMCODE"].ToString();
|
|
txtItemName.Text = dr["ItemName"].ToString();
|
|
this.txtMOCode.Text = dr["MOCODE"].ToString();
|
|
NGQTY = dr["NGQTY"].ToString();
|
|
GOODQTY = dr["GOODQTY"].ToString();
|
|
this.txtMOQty.Text = dr["MOPLANQTY"].ToString();
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(GOODQTY))
|
|
{
|
|
_GOODQTY = Decimal.Parse(GOODQTY);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(NGQTY))
|
|
{
|
|
_NGQTY = Decimal.Parse(NGQTY);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(dr["LOTQTY"].ToString()))
|
|
{
|
|
_LOTQTY = Decimal.Parse(dr["LOTQTY"].ToString());
|
|
}
|
|
//this.txtLONTQty.Text = (_LOTQTY - _NGQTY - _GOODQTY).ToString();
|
|
MOSEQ = dr["MOSEQ"].ToString();
|
|
|
|
}
|
|
lotno = this.txtLotNo.Text.Trim();
|
|
ItemCode = txtItemCode.Text.Trim();
|
|
txtOPCode.SelectAll();
|
|
txtOPCode.Focus();
|
|
//新增 自动带出当前追踪单进行中的工序
|
|
string opcodenew = GetLotNoOp(lotno);
|
|
if (opcodenew != "") {
|
|
txtOPCode.Text = opcodenew;
|
|
txtOPCode_KeyPress(null, new KeyPressEventArgs((char)Keys.Enter));
|
|
if (txtMessage.ForeColor == Color.Red)
|
|
return;
|
|
txtUserCode.Text = AppConfig.UserCode;
|
|
txtUserCode_KeyPress(null, new KeyPressEventArgs((char)Keys.Enter));
|
|
if (txtMessage.ForeColor == Color.Red)
|
|
return;
|
|
|
|
}
|
|
|
|
SetMessage("", Color.Blue);
|
|
//button1.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
txtItemCode.Text = "";
|
|
txtItemName.Text = "";
|
|
txtLotNo.SelectAll();
|
|
txtLotNo.Focus();
|
|
SetMessage("产品跟踪单号不存在!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
//button1.Enabled = false;
|
|
}
|
|
|
|
SetMessage("产品跟踪单扫码成功!", Color.Blue);
|
|
this.btnOPOption.Enabled = true;
|
|
|
|
|
|
return;
|
|
}
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMessage(ex.Message, Color.Red);
|
|
}
|
|
}
|
|
|
|
private void txtOPCode_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
string OpCode = txtOPCode.Text.Trim();
|
|
OPCodeCurrent = OpCode;
|
|
string LOTNO = txtLotNo.Text.Trim();
|
|
|
|
string sql = @"
|
|
SELECT DISTINCT
|
|
a.ID,d.BeginTime,
|
|
a.OPCode,
|
|
a.OPDESC,d.LOTQTY, D.NGQTY,D.GOODQTY,
|
|
b.RouteCode,f.OPSEQ,
|
|
b.EQPCode,
|
|
b.EQPName,d.LOTStatus,d.EATTRIBUTE2,
|
|
CASE d.CollectStatus WHEN 'COLLECT_BEGIN' THEN 'WG' WHEN 'COLLECT_END' THEN 'KG' ELSE '' END AS Status,
|
|
Type,ISNULL(b.EATTRIBUTE1,0) AS EATTRIBUTE1
|
|
FROM ICSOP a WITH (nolock)
|
|
LEFT JOIN ICSMO2User b WITH(nolock) ON a.OPCODE = b.OPCODE
|
|
LEFT JOIN ICSLOTSIMULATION d WITH(nolock) ON b.LOTNO = d.LOTNO and b.OPCODE=d.OPCODE
|
|
LEFT JOIN ICSEquipment e WITH(nolock) ON b.EQPCode=e.EQPCode
|
|
LEFT JOIN ICSITEMROUTE2OPLot f ON f.lotno=b.lotno and f.OPCODE=a.OPCODE
|
|
WHERE b.OPCODE = '{0}' AND b.LOTNO = '{1}'
|
|
|
|
";
|
|
sql = string.Format(sql, OpCode, LOTNO);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
|
|
if (data.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
txtOPCode.Text = dr["OPCODE"].ToString();
|
|
txtOPName.Text = dr["OPDESC"].ToString();
|
|
RouteCode = dr["RouteCode"].ToString();
|
|
txtStopType.Text = dr["EATTRIBUTE2"].ToString();
|
|
opseq = dr["OPSEQ"].ToString();
|
|
//工序完成
|
|
if (dr["Status"].ToString() == "KG")
|
|
{
|
|
string OPSEQ = dr["OPSEQ"].ToString();
|
|
|
|
|
|
int _OPSEQ = Int32.Parse(OPSEQ) - 10;
|
|
if (_OPSEQ == 0)
|
|
{
|
|
SetMessage("该工序已经完工,请扫描下道工序!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
|
|
bool isOK = CheckIsOK(_OPSEQ);
|
|
if (!isOK)
|
|
{
|
|
SetMessage("上道工序检验结果不合格,不能开工!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
SetMessage("当前工序已经完工,请扫描下道工序!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
//Decimal _LOTQTY = 0;
|
|
//Decimal _GOODQTY = 0;
|
|
//Decimal _NGQTY = 0;
|
|
|
|
//if (!string.IsNullOrWhiteSpace(dr["LOTQTY"].ToString()))
|
|
//{
|
|
// _LOTQTY = Decimal.Parse(dr["LOTQTY"].ToString());
|
|
//}
|
|
//if (!string.IsNullOrWhiteSpace(dr["GOODQTY"].ToString()))
|
|
//{
|
|
// _GOODQTY = Decimal.Parse(dr["GOODQTY"].ToString());
|
|
//}
|
|
//if (!string.IsNullOrWhiteSpace(dr["NGQTY"].ToString()))
|
|
//{
|
|
// _NGQTY = Decimal.Parse(dr["NGQTY"].ToString());
|
|
//}
|
|
|
|
//if (_LOTQTY <= _GOODQTY + _NGQTY && _LOTQTY > 0)
|
|
//{
|
|
// SetMessage("当前工序所有数量已经完工,请扫描下道工序!", Color.Red);
|
|
// this.btnOPOption.Enabled = false;
|
|
// return;
|
|
//}
|
|
|
|
// string sql_ = @"SELECT DISTINCT
|
|
// d.LOTQTY,
|
|
// D.NGQTY,
|
|
// D.GOODQTY,
|
|
// a.ID,
|
|
// a.OPCODE,
|
|
// a.OPDESC
|
|
// FROM ICSOP a WITH (nolock)
|
|
// LEFT JOIN ICSMO2User b WITH (nolock) ON a.OPCODE = b.OPCODE
|
|
// LEFT JOIN ICSLOTSIMULATION d WITH (nolock) ON b.LOTNO = d.LOTNO
|
|
// AND b.OPCODE = d.OPCODE
|
|
// LEFT JOIN ICSROUTE2OP f ON f.ROUTECODE = b.RouteCode
|
|
// AND f.OPCODE = a.OPCODE
|
|
// WHERE f.OPSEQ = '" + _OPSEQ + "' AND b.LOTNO = '" + LOTNO + "' AND d.CollectStatus = 'COLLECT_END' ";
|
|
// DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql_).Tables[0];
|
|
// if (_data != null && _data.Rows.Count > 0)
|
|
// {
|
|
// //txtLONTQty.Text = _data.Rows[0]["GOODQTY"].ToString();
|
|
// //txtLONTQty.Text = _data.Rows[0]["LOTQTY"].ToString();
|
|
// //txtUPOPAllQty.Text = _data.Rows[0]["GOODQTY"].ToString();
|
|
// }
|
|
// else
|
|
// {
|
|
// SetMessage("上道工序还没有已经完工,请先扫描上道工序!", Color.Red);
|
|
// this.btnOPOption.Enabled = false;
|
|
// return;
|
|
// }
|
|
//this.btnOPOption.Enabled = true;
|
|
}
|
|
else if (dr["Status"].ToString() == "WG")
|
|
{
|
|
string NGQTY = dr["NGQTY"].ToString();
|
|
string GOODQTY = dr["GOODQTY"].ToString();
|
|
string LOTStatus = dr["LOTStatus"].ToString();
|
|
if (LOTStatus == "暂停")
|
|
{
|
|
this.btnPauseBegin.Text = "取消暂停";
|
|
}
|
|
|
|
Decimal _GOODQTY = 0;
|
|
Decimal _NGQTY = 0;
|
|
Decimal _LOTQTY = 0;
|
|
|
|
if (!string.IsNullOrWhiteSpace(GOODQTY))
|
|
{
|
|
_GOODQTY = Decimal.Parse(GOODQTY);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(NGQTY))
|
|
{
|
|
_NGQTY = Decimal.Parse(NGQTY);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(dr["LOTQTY"].ToString()))
|
|
{
|
|
_LOTQTY = Decimal.Parse(dr["LOTQTY"].ToString());
|
|
}
|
|
//this.txtLONTQty.Text = (_LOTQTY - _NGQTY - _GOODQTY).ToString();
|
|
//Decimal LsaterLontQty = _LOTQTY - _NGQTY - _GOODQTY;
|
|
//if (LsaterLontQty <= 0)
|
|
//{
|
|
// SetMessage("当前工序所有数量已经完工,请扫描下道工序!", Color.Red);
|
|
// this.btnOPOption.Enabled = false;
|
|
// return;
|
|
//}
|
|
|
|
string OPSEQ = dr["OPSEQ"].ToString();
|
|
if (OPSEQ == "10")
|
|
{
|
|
//上工序总数
|
|
//txtMOQty.Text = "";
|
|
}
|
|
else
|
|
{
|
|
int _OPSEQ = Int32.Parse(OPSEQ) - 10;
|
|
string sql_ = @"SELECT sum(a.LOTQTY) FROM ICSLOTONWIP a
|
|
LEFT JOIN ICSROUTE2OP b ON a.ROUTECODE=b.ROUTECODE AND a.OPCODE=b.OPCODE
|
|
WHERE LOTNO='" + LOTNO + "' AND b.OPSEQ='" + _OPSEQ + "' ";
|
|
DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql_).Tables[0];
|
|
if (_data != null && _data.Rows.Count > 0)
|
|
{
|
|
//txtMOQty.Text = _data.Rows[0][0].ToString();
|
|
//this.txtLONTQty.Text = _data.Rows[0][0].ToString();
|
|
}
|
|
bool isOK = CheckIsOK(_OPSEQ);
|
|
if (!isOK)
|
|
{
|
|
SetMessage("上道工序检验结果不合格,不能开工!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
}
|
|
string sqlAll = @"SELECT SUM( a.GOODQTY) GOODQTY, SUM( a.NGQTY) NGQTY FROM ICSLOTONWIP a
|
|
LEFT JOIN ICSROUTE2OP b ON a.ROUTECODE=b.ROUTECODE AND a.OPCODE=b.OPCODE
|
|
WHERE LOTNO='" + LOTNO + "' AND b.OPCODE='" + OpCode + "' ";
|
|
DataTable _dataAll = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlAll).Tables[0];
|
|
|
|
if (_dataAll != null && _dataAll.Rows.Count > 0)
|
|
{
|
|
//txtThisOPOKQty.Text = _dataAll.Rows[0][0].ToString();
|
|
//txtThisOPNGQty.Text = _dataAll.Rows[0][1].ToString();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string OPSEQ = dr["OPSEQ"].ToString();
|
|
int _OPSEQ = Int32.Parse(OPSEQ) - 10;
|
|
if (_OPSEQ == 0)
|
|
{
|
|
SetMessage("工序扫码成功!", Color.Blue);
|
|
this.btnOPOption.Enabled = true;
|
|
txtUserCode.SelectAll();
|
|
txtUserCode.Focus();
|
|
|
|
#region 根据批批号和员工条码获取当前采集状态
|
|
if (sender == null)
|
|
{
|
|
|
|
string statussql = @"SELECT
|
|
a.ACTIONRESULT,a.UserCodeEnd,b.CollectStatus,b.MUSER,
|
|
b.LOTStatus
|
|
FROM ICSLOTONWIP a
|
|
LEFT JOIN ICSLOTSIMULATION b ON a.LOTNO=b.LOTNO AND a.OPCODE=b.OPCODE AND a.UserCodeBegin=b.MUSER
|
|
WHERE a.LOTNO = '" + txtLotNo.Text + "' AND a.OPCODE = '" + txtOPCode.Text + "' ORDER BY a.MTIME DESC ";
|
|
|
|
// AND a.UserCodeBegin = '" + txtUserCode.Text + "'
|
|
DataTable statusdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, statussql).Tables[0];
|
|
if (statusdt.Rows.Count == 0)
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
else
|
|
{
|
|
if (statusdt.Rows[0]["ACTIONRESULT"].ToString() == "COLLECT_BEGIN")
|
|
{
|
|
btnOPOption.Text = "完工";
|
|
initCheck();
|
|
}
|
|
else
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
}
|
|
if (statusdt.Rows[0]["LOTStatus"].ToString() == "暂停")
|
|
{
|
|
btnPauseBegin.Text = "取消暂停";
|
|
}
|
|
else
|
|
{
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
try
|
|
{
|
|
GetPLMCKDATA(ItemCode, RouteCode, opseq);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
bool isOK = CheckIsOK(_OPSEQ);
|
|
if (!isOK)
|
|
{
|
|
SetMessage("上道工序检验结果不合格,不能开工!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
Decimal _LOTQTY = 0;
|
|
Decimal _GOODQTY = 0;
|
|
Decimal _NGQTY = 0;
|
|
|
|
if (!string.IsNullOrWhiteSpace(dr["LOTQTY"].ToString()))
|
|
{
|
|
_LOTQTY = Decimal.Parse(dr["LOTQTY"].ToString());
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(dr["GOODQTY"].ToString()))
|
|
{
|
|
_GOODQTY = Decimal.Parse(dr["GOODQTY"].ToString());
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(dr["NGQTY"].ToString()))
|
|
{
|
|
_NGQTY = Decimal.Parse(dr["NGQTY"].ToString());
|
|
}
|
|
|
|
string sql_ = @"SELECT DISTINCT
|
|
d.LOTQTY,
|
|
D.NGQTY,
|
|
D.GOODQTY,
|
|
a.ID,
|
|
a.OPCODE,
|
|
a.OPDESC
|
|
FROM ICSOP a WITH (nolock)
|
|
LEFT JOIN ICSMO2User b WITH (nolock) ON a.OPCODE = b.OPCODE
|
|
LEFT JOIN ICSLOTSIMULATION d WITH (nolock) ON b.LOTNO = d.LOTNO
|
|
AND b.OPCODE = d.OPCODE
|
|
LEFT JOIN ICSROUTE2OP f ON f.ROUTECODE = b.RouteCode
|
|
AND f.OPCODE = a.OPCODE
|
|
WHERE f.OPSEQ = '" + _OPSEQ + "' AND b.LOTNO = '" + LOTNO + "' AND d.CollectStatus = 'COLLECT_END' ";
|
|
DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql_).Tables[0];
|
|
if (_data != null && _data.Rows.Count > 0)
|
|
{
|
|
txtLONTQty.Text = _data.Rows[0]["GOODQTY"].ToString();
|
|
//txtMOQty.Text = _data.Rows[0]["GOODQTY"].ToString();
|
|
}
|
|
else
|
|
{
|
|
//20200618
|
|
//SetMessage("上道工序还没有完工,请先扫描上道工序!", Color.Red);
|
|
//this.btnOPOption.Enabled = false;
|
|
//return;
|
|
}
|
|
|
|
//if (string.IsNullOrWhiteSpace(dr["BeginTime"].ToString()))
|
|
//{
|
|
// SetMessage("工序扫码成功!", Color.Blue);
|
|
// this.btnOPOption.Enabled = true;
|
|
// txtUserCode.SelectAll();
|
|
// txtUserCode.Focus();
|
|
|
|
// //initCheck();
|
|
// return;
|
|
//}
|
|
}
|
|
}
|
|
txtUserCode.SelectAll();
|
|
txtUserCode.Focus();
|
|
|
|
SetMessage("工序扫描成功!", Color.Blue);
|
|
this.btnOPOption.Enabled = true;
|
|
IsWriteAll();
|
|
|
|
#region 根据批批号和员工条码获取当前采集状态
|
|
if (sender == null)
|
|
{
|
|
|
|
string statussql = @"SELECT
|
|
a.ACTIONRESULT,a.UserCodeEnd,b.CollectStatus,b.MUSER,
|
|
b.LOTStatus
|
|
FROM ICSLOTONWIP a
|
|
LEFT JOIN ICSLOTSIMULATION b ON a.LOTNO=b.LOTNO AND a.OPCODE=b.OPCODE AND a.UserCodeBegin=b.MUSER
|
|
WHERE a.LOTNO = '" + txtLotNo.Text + "' AND a.OPCODE = '" + txtOPCode.Text + "' ORDER BY a.MTIME DESC ";
|
|
|
|
// AND a.UserCodeBegin = '" + txtUserCode.Text + "'
|
|
DataTable statusdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, statussql).Tables[0];
|
|
if (statusdt.Rows.Count == 0)
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
else
|
|
{
|
|
if (statusdt.Rows[0]["ACTIONRESULT"].ToString() == "COLLECT_BEGIN")
|
|
{
|
|
btnOPOption.Text = "完工";
|
|
initCheck();
|
|
}
|
|
else
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
}
|
|
if (statusdt.Rows[0]["LOTStatus"].ToString() == "暂停")
|
|
{
|
|
btnPauseBegin.Text = "取消暂停";
|
|
}
|
|
else
|
|
{
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
try
|
|
{
|
|
GetPLMCKDATA(ItemCode, RouteCode, opseq);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
|
|
return;
|
|
}
|
|
//initCheck();
|
|
}
|
|
else
|
|
{
|
|
txtOPName.Text = "";
|
|
txtEQPCode.Text = "";
|
|
txtMachineName.Text = "";
|
|
txtOPCode.SelectAll();
|
|
txtOPCode.Focus();
|
|
SetMessage("该批次工序对应的派工信息不存在!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMessage(ex.Message, Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
}
|
|
}
|
|
|
|
private void IsWriteAll()
|
|
{
|
|
if (!string.IsNullOrEmpty(txtOPName.Text) && !string.IsNullOrEmpty(txtUserName.Text) && !string.IsNullOrEmpty(txtMachineName.Text)) {
|
|
txtOPCode.Enabled = true;
|
|
txtUserCode.ReadOnly = true;
|
|
txtEQPCode.ReadOnly = true;
|
|
}
|
|
}
|
|
|
|
private void initCheck()
|
|
{
|
|
string _OQCSql = @"SELECT a.SetValueMax,a.SetValueMin,a.CKGROUPCode,b.CKGROUPDESC,b.CKGROUPDNAME,'' Remark,'' CheckResult,standvalue as standresult,CAST (ISNULL(0, 0) AS BIT) AS OK,CAST (ISNULL(0, 0) AS BIT) AS NG,ptype, a.id FROM ICSOQCCKLIST a
|
|
LEFT JOIN ICSOQCCKGROUP b ON a.CKGROUPCode=b.CKGROUP
|
|
WHERE INVCode='" + txtItemCode.Text + "' AND a.CKGROUPATTR='量化' and a.ISREF='是' AND a.OPCode='" + txtOPCode.Text + "' and a.CKGROUPMETH='工序检验' ";//0906
|
|
|
|
DataTable _OQCdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _OQCSql).Tables[0];
|
|
_OQCdt.PrimaryKey = new DataColumn[] { _OQCdt.Columns["id"] };
|
|
List<DataRow> list = _OQCdt.AsEnumerable().Where(a => Convert.ToDecimal(a["ptype"]) > 1).ToList();
|
|
|
|
if (list.Count > 0)
|
|
{
|
|
foreach (DataRow row in list)
|
|
{
|
|
int num = Convert.ToInt32(row["ptype"]);
|
|
for (int i = 0; i < num; i++)
|
|
{
|
|
DataRow newrow = _OQCdt.NewRow();
|
|
newrow["SetValueMax"] = row["SetValueMax"];
|
|
newrow["SetValueMin"] = row["SetValueMin"];
|
|
newrow["CKGROUPCode"] = row["CKGROUPCode"];
|
|
newrow["CKGROUPDESC"] = row["CKGROUPDESC"];
|
|
newrow["CKGROUPDNAME"] = row["CKGROUPDNAME"];
|
|
newrow["Remark"] = row["Remark"];
|
|
newrow["CheckResult"] = row["CheckResult"];
|
|
newrow["standresult"] = row["standresult"];
|
|
newrow["OK"] = row["OK"];
|
|
newrow["NG"] = row["NG"];
|
|
newrow["ptype"] = "1";
|
|
newrow["id"] = AppConfig.GetGuid();
|
|
_OQCdt.Rows.Add(newrow);
|
|
}
|
|
_OQCdt.Rows.Remove(row);
|
|
|
|
}
|
|
|
|
}
|
|
gridControlcc.DataSource = _OQCdt;
|
|
|
|
|
|
string _OQCWGSql = @"SELECT a.CKGROUPATTR,a.CKGROUPMETH,a.CKGROUPCode CKGROUPCode1,b.CKGROUPDESC CKGROUPDESC1,b.CKGROUPDNAME,'' AS Remark1,CAST (ISNULL(0, 0) AS BIT) AS OK ,
|
|
CAST (ISNULL(0, 0) AS BIT) AS NG,ptype,a.id FROM ICSOQCCKLIST a
|
|
LEFT JOIN ICSOQCCKGROUP b ON a.CKGROUPCode=b.CKGROUP
|
|
WHERE INVCode='" + txtItemCode.Text + "' AND a.CKGROUPATTR='外观' and a.ISREF='是' AND a.OPCode='" + txtOPCode.Text + "' and a.CKGROUPMETH='工序检验' ";//0906
|
|
DataTable _OQCWGdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _OQCWGSql).Tables[0];
|
|
_OQCWGdt.PrimaryKey = new DataColumn[] { _OQCWGdt.Columns["id"] };
|
|
list = _OQCWGdt.AsEnumerable().Where(a => Convert.ToDecimal(a["ptype"]) > 1).ToList();
|
|
|
|
if (list.Count > 0)
|
|
{
|
|
foreach (DataRow row in list)
|
|
{
|
|
int num = Convert.ToInt32(row["ptype"]);
|
|
for (int i = 0; i < num; i++)
|
|
{
|
|
DataRow newrow = _OQCWGdt.NewRow();
|
|
newrow["CKGROUPATTR"] = row["CKGROUPATTR"];
|
|
newrow["CKGROUPMETH"] = row["CKGROUPMETH"];
|
|
newrow["CKGROUPCode1"] = row["CKGROUPCode1"];
|
|
newrow["CKGROUPDESC1"] = row["CKGROUPDESC1"];
|
|
newrow["CKGROUPDNAME"] = row["CKGROUPDNAME"];
|
|
newrow["Remark1"] = row["Remark1"];
|
|
newrow["OK"] = row["OK"];
|
|
newrow["ptype"] = "1";
|
|
newrow["id"] = AppConfig.GetGuid();
|
|
_OQCWGdt.Rows.Add(newrow);
|
|
}
|
|
_OQCWGdt.Rows.Remove(row);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gridControl2.DataSource = _OQCWGdt;
|
|
}
|
|
|
|
|
|
private bool CheckIsOK(int OPSEQ)
|
|
{
|
|
bool isfalse = false;
|
|
string _OQCSql ="";
|
|
|
|
_OQCSql = @"SELECT DISTINCT ACTION FROM ICSLOTONWIP bb WITH (nolock)
|
|
LEFT JOIN ICSLOTONWIPCHECK CC ON BB.ID=CC.ONWIPID
|
|
INNER JOIN ICSITEMROUTE2OPLot a WITH (nolock) ON bb.lotno=a.lotno and bb.opcode=a.opcode
|
|
WHERE bb.LotNo='" + txtLotNo.Text + "' AND a.OPSEQ='" + OPSEQ + "' AND CC.RESULT='不合格' ";
|
|
|
|
DataTable _OQCdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _OQCSql).Tables[0];
|
|
|
|
|
|
|
|
if (_OQCdt != null && _OQCdt.Rows.Count > 0)
|
|
{
|
|
isfalse = false;
|
|
//foreach (DataRow item in _OQCdt.Rows)
|
|
//{
|
|
// if (item["CCorWGResult"].ToString() == "NG")
|
|
// {
|
|
// isfalse = false;
|
|
// SetMessage("上道工序检验结果不合格,不能开工!", Color.Red);
|
|
// this.btnOPOption.Enabled = false;
|
|
// return isfalse;
|
|
// }
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
isfalse = true;
|
|
}
|
|
return isfalse;
|
|
}
|
|
|
|
|
|
private void txtUserCode_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
|
|
string chksql = @"SELECT UserCode,UserName,StartFlag FROM Sys_User WHERE UserCode='{0}' AND WorkPointCode='{1}' and StartFlag='1' ";
|
|
chksql = string.Format(chksql, this.txtUserCode.Text.Trim(), AppConfig.WorkPointCode);
|
|
DataTable chkdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, chksql).Tables[0];
|
|
|
|
if (chkdt.Rows.Count == 0)
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("该人员不存在或者账号已经停用!!");
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
|
|
if (txtLotNo.Text.Trim() != "")
|
|
{
|
|
string JNsql = @"SELECT DISTINCT a.OPCODE, a.UserCode
|
|
FROM ICSOP2User a
|
|
WHERE 1 = 1 AND a.UserCode='" + this.txtUserCode.Text + "' AND a.OPCODE='" + this.txtOPCode.Text + "' ORDER BY a.OPCODE ";
|
|
|
|
DataTable JNdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, JNsql).Tables[0];
|
|
if (JNdt.Rows.Count == 0 || JNdt == null)
|
|
{
|
|
SetMessage("该人员:" + this.txtUserCode.Text + "对应工序:" + txtOPCode.Text + ",不存在,请先维护!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
|
|
|
|
string LotNo = txtLotNo.Text.Trim();
|
|
string UserCode = txtUserCode.Text.Trim();
|
|
string sql = @"SELECT UserCode,UserName,StartFlag FROM Sys_User WHERE UserCode='{0}' AND WorkPointCode='{1}' and StartFlag='1' ";
|
|
sql = string.Format(sql, UserCode, AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
SetMessage("员工条码不存在,请确认后重新输入!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
txtUserCode.SelectAll();
|
|
txtUserCode.Focus();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
|
|
txtUserName.Text = dt.Rows[0]["UserName"].ToString();
|
|
#region 根据批批号和员工条码获取当前采集状态
|
|
|
|
string statussql = @"SELECT
|
|
a.ACTIONRESULT,a.UserCodeEnd,b.CollectStatus,b.MUSER,
|
|
b.LOTStatus
|
|
FROM ICSLOTONWIP a
|
|
LEFT JOIN ICSLOTSIMULATION b ON a.LOTNO=b.LOTNO AND a.OPCODE=b.OPCODE AND a.UserCodeBegin=b.MUSER
|
|
WHERE a.LOTNO = '" + txtLotNo.Text + "' AND a.OPCODE = '" + txtOPCode.Text + "' ORDER BY a.MTIME DESC ";
|
|
|
|
// AND a.UserCodeBegin = '" + txtUserCode.Text + "'
|
|
statussql = string.Format(statussql, LotNo, UserCode);
|
|
DataTable statusdt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, statussql).Tables[0];
|
|
if (statusdt.Rows.Count == 0)
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
else
|
|
{
|
|
if (statusdt.Rows[0]["ACTIONRESULT"].ToString() == "COLLECT_BEGIN")
|
|
{
|
|
btnOPOption.Text = "完工";
|
|
initCheck();
|
|
}
|
|
else
|
|
{
|
|
btnOPOption.Text = "开工";
|
|
}
|
|
if (statusdt.Rows[0]["LOTStatus"].ToString() == "暂停")
|
|
{
|
|
btnPauseBegin.Text = "取消暂停";
|
|
}
|
|
else
|
|
{
|
|
btnPauseBegin.Text = "暂停";
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
txtEQPCode.SelectAll();
|
|
txtEQPCode.Focus();
|
|
SetMessage("员工条码扫描成功!", Color.Blue);
|
|
IsWriteAll();
|
|
this.btnOPOption.Enabled = true;
|
|
|
|
return;
|
|
}
|
|
else {
|
|
string UserCode = txtUserCode.Text.Trim();
|
|
string sql = @"SELECT UserCode,UserName,StartFlag FROM Sys_User WHERE UserCode='{0}' AND WorkPointCode='{1}' and StartFlag='1' ";
|
|
sql = string.Format(sql, UserCode, AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
SetMessage("员工条码不存在,请确认后重新输入!", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
txtUserCode.SelectAll();
|
|
txtUserCode.Focus();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
|
|
txtUserName.Text = dt.Rows[0]["UserName"].ToString();
|
|
SetMessage("员工条码扫描成功!", Color.Blue);
|
|
txtEQPCode.SelectAll();
|
|
txtEQPCode.Focus();
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//消息提示
|
|
private void SetMessage(string Msg, Color color)
|
|
{
|
|
txtMessage.Text = Msg;
|
|
txtMessage.ForeColor = color;
|
|
}
|
|
|
|
|
|
|
|
|
|
public class SearchPart
|
|
{
|
|
/// <summary>
|
|
/// 关键字
|
|
/// </summary>
|
|
public string ItemCode { get; set; }
|
|
public int size { get; set; }
|
|
/// <summary>
|
|
/// 可以通过扩展字段参数,指定需要额外获取的字段清单
|
|
/// </summary>
|
|
public string extra { get; set; }
|
|
public string routecode { get; set; }
|
|
public string opseq { get; set; }
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 开工
|
|
//消息提示
|
|
private void SetMsg(Color color, string Msg)
|
|
{
|
|
txtMessage.Text = Msg;
|
|
txtMessage.ForeColor = color;
|
|
}
|
|
#region 检查输入数据
|
|
public string check()
|
|
{
|
|
string msg = "";
|
|
if (txtUserName.Text.Trim() == "")
|
|
{
|
|
msg += "请重新扫描员工条码!\n";
|
|
}
|
|
if (txtLotNo.Text.Trim() == "")
|
|
{
|
|
msg += "请重新扫描产品批号!\n";
|
|
}
|
|
if (txtOPCode.Text.Trim() == "")
|
|
{
|
|
msg += "请重新扫描工序条码!\n";
|
|
}
|
|
if (txtUserCode.Text.Trim() == "")
|
|
{
|
|
msg += "请重新扫描人员条码!\n";
|
|
}
|
|
if (txtEQPCode.Text.Trim() == "")
|
|
{
|
|
msg += "请重新扫描设备条码!\n";
|
|
}
|
|
if (txtMachineName.Text.Trim() == "") {
|
|
msg += "请重新扫描设备条码!\n";
|
|
}
|
|
return msg;
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
/// 0906获取单据号
|
|
public static string GetSerialCode(string connectString, string tbName, string colName, string Pre, int numLen)
|
|
{
|
|
string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
|
|
sql = string.Format(sql, new object[] { "",tbName, colName, Pre, numLen});
|
|
return DBHelper.ExecuteScalar(connectString, CommandType.Text, sql).ToString();
|
|
}
|
|
|
|
|
|
//0913不合格传入NCR
|
|
private void SendNCR(List<string> codeList, string strResult, decimal QTY, string itemcode, string mocode, string OPCODE, string LotNo)
|
|
{//
|
|
try
|
|
{
|
|
string codeStr = "";
|
|
foreach (string str in codeList)
|
|
{
|
|
codeStr += str + ",";
|
|
}
|
|
codeStr = codeStr.TrimEnd(',');
|
|
string NewCartonNo = "NCR" + AppConfig.GetSeverDateTime("yyyy-MM-dd").ToString("yyyyMMdd");
|
|
NewCartonNo = GetSerialCode(AppConfig.FrameConnectString, "ICSNCRDoc", "SecDocNO", NewCartonNo, 3);
|
|
ICSSecDocType secDocType = ICSSecDocTypeBLL.select("QC_Collect", AppConfig.FrameConnectString);
|
|
|
|
#region 20210816
|
|
//获取对应的接收人和抄送人
|
|
//ICSSecDocTypeStep docTypeStep = ICSSecDocTypeStepBLL.selectStepBySeq(secDocType.guid, "1", AppConfig.FrameConnectString);
|
|
//string ToUserList = "";
|
|
//ToUserList = ICSNCRDocBLL.QualityEngineer(CKType, AppConfig.AppConnectString);
|
|
#endregion
|
|
|
|
//string CCUserList = ICSNCRDocBLL.QualityEngineer("经理", AppConfig.AppConnectString);
|
|
//string sql = @"SELECT a.ProjectCode FROM ICSMO a WHERE a.MOCODE='{0}'";
|
|
//sql = string.Format(sql, mocode);
|
|
//DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
string ProjectCode = "";
|
|
//if (dt != null && dt.Rows.Count > 0)
|
|
//{
|
|
// ProjectCode = dt.Rows[0]["ProjectCode"].ToString();
|
|
//}
|
|
|
|
ICSNCRDoc SecDoc = new ICSNCRDoc();
|
|
SecDoc.SecDocNO = NewCartonNo;
|
|
SecDoc.SecDocType = secDocType.guid;
|
|
SecDoc.SecDocStatus = "已发送";
|
|
SecDoc.SecDocSeq = 1;
|
|
SecDoc.SecDocCreateUser = AppConfig.UserCode;
|
|
SecDoc.SecDocCreateUserName = AppConfig.UserName;
|
|
SecDoc.SecDocCreateTime = AppConfig.GetSeverDateTime("");
|
|
//SecDoc.ErrorType = CKType;
|
|
SecDoc.ErrorType = "自检";//modify on 20230317 NCRtype修改
|
|
SecDoc.EQPCode = "";
|
|
SecDoc.ItemCode = itemcode;
|
|
SecDoc.ProjectCode = ProjectCode;
|
|
SecDoc.TimeLimit = "1";
|
|
SecDoc.ContentDesc = strResult;
|
|
// SecDoc.EATTRIBUTE2 = CKType;
|
|
|
|
//SecDoc.ToUserList = ToUserList;
|
|
//SecDoc.CCUserList = CCUserList;
|
|
|
|
//SecDoc.ToUserList = ToUserList;
|
|
//SecDoc.CCUserList = CCUserList;
|
|
|
|
SecDoc.LOTNO = LotNo;
|
|
SecDoc.OPCode = OPCODE;
|
|
SecDoc.SecDocOKTime = Convert.ToDateTime("1990-01-01");
|
|
SecDoc.Qty = QTY;
|
|
SecDoc.SrcDocInfo = LotNo;
|
|
|
|
|
|
ICSNCRDoc NCR = new ICSNCRDoc();
|
|
// NCR = ICSNCRDocBLL.selectBySrcDocInfo(codeStr, AppConfig.AppConnectString);
|
|
NCR = null;//modify on 20200418
|
|
if (NCR == null)
|
|
{
|
|
ICSNCRDocBLL.CreateNCR(SecDoc, AppConfig.AppConnectString);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(codeStr + "已产生NCR单号:" + NCR.SecDocNO + ",不能新增NCR单");
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 点击开工/完工
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnOPOption_Click(object sender, EventArgs e)
|
|
{
|
|
SetMsg(Color.Blue, "");
|
|
var FXSTATUS = false;
|
|
string msg = check();
|
|
if (msg != "")
|
|
{
|
|
SetMsg(Color.Red, msg);
|
|
return;
|
|
}
|
|
|
|
///////////////////////////////////////////////////0906
|
|
List<string> codeList = new List<string>();
|
|
string strResult = "";
|
|
decimal QTY = 1;//批次数量
|
|
///////////////////////////////////////////////////0906
|
|
|
|
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在处理...请稍等...");
|
|
try
|
|
{
|
|
_wait.Show();
|
|
string OpCode = txtOPCode.Text.Trim();
|
|
string LOTNO = txtLotNo.Text.Trim();
|
|
string sql = @"SELECT DISTINCT
|
|
a.ID,
|
|
a.OPCODE,
|
|
a.OPDESC,
|
|
b.RouteCode,
|
|
b.EQPCode,
|
|
b.EQPName,d.LOTStatus,
|
|
CASE d.CollectStatus WHEN 'COLLECT_BEGIN' THEN 'WG' ELSE 'KG' END AS Status,
|
|
E.Type,ISNULL(b.EATTRIBUTE1,0) AS EATTRIBUTE1,f.eattribute5
|
|
FROM
|
|
ICSOP a WITH (nolock)
|
|
LEFT JOIN ICSMO2User b WITH(nolock) ON a.OPCODE = b.OPCODE
|
|
LEFT JOIN ICSLOTSIMULATION d WITH(nolock) ON b.LOTNO = d.LOTNO and b.OPCODE=d.OPCODE
|
|
LEFT JOIN ICSEquipment e WITH(nolock) ON b.EQPCode=e.EQPCode
|
|
LEFT JOIN ICSITEMLOT f on d.lotno=f.lotno
|
|
WHERE
|
|
b.OPCODE = '{0}' AND b.LOTNO = '{1}'";
|
|
sql = string.Format(sql, OpCode, LOTNO);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (data.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
if (dr["EATTRIBUTE1"].ToString() == "1")
|
|
{
|
|
txtOPName.Text = "";
|
|
txtEQPCode.Text = "";
|
|
txtMachineName.Text = "";
|
|
Status = "";
|
|
routeCode = "";
|
|
EQPType = "";
|
|
txtOPCode.SelectAll();
|
|
txtOPCode.Focus();
|
|
_wait.Close();
|
|
SetMsg(Color.Red, "所扫描的工序为委外工序,无法开工,请确认!");
|
|
return;
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
//返修条码提示
|
|
sql = "select eattribute5 from icsitemlot where lotno='"+ LOTNO+"'";
|
|
data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (data.Rows.Count > 0 && data.Rows[0]["eattribute5"].ToString() == "返修中") {
|
|
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("该条码是返修条码,是否返修完成?") != DialogResult.OK)
|
|
{
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
FXSTATUS = true;
|
|
}
|
|
}
|
|
#region simulation
|
|
ICSLOTSIMULATION simulationNew = new ICSLOTSIMULATION();
|
|
simulationNew.MUSER = txtUserCode.Text.Trim();
|
|
simulationNew.LOTNO = txtLotNo.Text.Trim();
|
|
simulationNew.OPCODE = txtOPCode.Text.Trim();
|
|
simulationNew.EQPCODE = txtEQPCode.Text.Trim();
|
|
simulationNew.SHELFNO = "";
|
|
if (FXSTATUS)
|
|
simulationNew.SHELFNO = "返修完成";
|
|
|
|
#endregion
|
|
List<ICSOQCCKGROUP2LISTCheckResult> entityList = new List<ICSOQCCKGROUP2LISTCheckResult>();
|
|
ICSQualityCKDATA QualityCKDATA = new ICSQualityCKDATA();
|
|
if (btnOPOption.Text.Trim().Equals(START))
|
|
{
|
|
simulationNew.EATTRIBUTE1 = "COLLECT_BEGIN";
|
|
}
|
|
else
|
|
{
|
|
//0826注释
|
|
//if (gridViewCC.DataRowCount == 0 || gridView2.DataRowCount == 0)
|
|
//{
|
|
// SetMsg(Color.Red, "没有维护自检信息,请确认!");
|
|
// _wait.Close();
|
|
// return;
|
|
//}
|
|
|
|
#region 完工 检验上道工序是否有不合格的
|
|
QualityCKDATA.EATTRIBUTE3 = "";//参与人
|
|
QualityCKDATA.LOTNO ="";
|
|
QualityCKDATA.OPCode = this.txtOPCode.Text.Trim();
|
|
QualityCKDATA.MOCODE = txtMOCode.Text.Trim();
|
|
QualityCKDATA.CKUserCode = txtUserCode.Text.Trim();
|
|
QualityCKDATA.Type = "GX";
|
|
|
|
if ((txtCCResult.Text == "OK"||gridViewCC.RowCount<=0) && (txtWGResult.Text == "OK"|| gridView2.RowCount <= 0))
|
|
{
|
|
QualityCKDATA.CKResult = "1";
|
|
}
|
|
else
|
|
{
|
|
QualityCKDATA.CKResult = "0";
|
|
//QualityCKDATA.LOTNO = txtLotNo.Text;
|
|
}
|
|
if (gridViewCC.RowCount <= 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
{
|
|
ICSOQCCKGROUP2LISTCheckResult entity = new ICSOQCCKGROUP2LISTCheckResult();
|
|
#region MyRegion
|
|
Decimal OKQty = 0; Decimal NGQty = 0;
|
|
|
|
if (gridViewCC.RowCount > 0)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(txtCCResult.Text))
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("尺寸还没有检验!!!");
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
if (string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("存在未填写的检验值!请确认!");
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
string ok = gridViewCC.GetRowCellValue(k, CCOK).ToString();
|
|
string ng = gridViewCC.GetRowCellValue(k, CCNG).ToString();
|
|
if ((string.IsNullOrEmpty(ok) && string.IsNullOrEmpty(ng) || (ok == "False" && ng == "False")))
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("存在检验项目未勾选合格或不合格!请确认!");
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
}
|
|
//entity.CKITEMCODE = txtUserName.Text;// gridViewCC.GetRowCellValue(k, colCKITEMCODE).ToString();
|
|
|
|
|
|
///0826 设置尺寸检验------------------------------------------------------------------
|
|
entity.CKListCode = gridViewCC.GetRowCellValue(k, colCKGROUPCode).ToString();
|
|
entity.RCVCode = RCVCode;
|
|
entity.INVDESC = INVDESC;
|
|
entity.CheckoutAttribute = "量化";
|
|
entity.GXorWWCheck = "GX";
|
|
entity.VALUEMAX = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString());
|
|
entity.VALUEMIN = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString());
|
|
entity.CheckResultValue = gridViewCC.GetRowCellValue(k, colCheckResult).ToString();
|
|
if (txtCCResult.Text == "OK")
|
|
{
|
|
entity.Qualified = Decimal.Parse(txtLONTQty.Text);//合格数
|
|
}
|
|
else
|
|
{
|
|
entity.UnQualified = Decimal.Parse(txtLONTQty.Text); ;//不合格数
|
|
}
|
|
entity.CCorWGResult = txtCCResult.Text;
|
|
entity.LotNo = txtLotNo.Text;
|
|
entity.UserCode = this.txtUserCode.Text;
|
|
entity.MOCode = this.txtMOCode.Text;
|
|
entity.OPCode = this.txtOPCode.Text;
|
|
entityList.Add(entity);
|
|
}
|
|
}
|
|
if (gridView2.RowCount <= 0)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
for (int k = 0; k < gridView2.RowCount; k++)
|
|
{
|
|
ICSOQCCKGROUP2LISTCheckResult entity = new ICSOQCCKGROUP2LISTCheckResult();
|
|
#region MyRegion
|
|
if (gridView2.RowCount > 0)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(txtWGResult.Text))
|
|
{
|
|
|
|
ICSBaseSimpleCode.AppshowMessageBox("外观还没有检验!!!");
|
|
_wait.Close();
|
|
return;
|
|
}
|
|
}
|
|
#endregion
|
|
//entity.CKITEMCODE = txtUserName.Text;// gridViewCC.GetRowCellValue(k, colCKITEMCODE).ToString();
|
|
entity.CKListCode = gridView2.GetRowCellValue(k, colCKGROUPCode1).ToString();
|
|
entity.RCVCode = RCVCode;
|
|
entity.INVDESC = INVDESC;
|
|
entity.GXorWWCheck = "GX";
|
|
entity.CheckoutAttribute = "外观";
|
|
entity.CCorWGResult = txtWGResult.Text;
|
|
|
|
entity.AQL = gridView2.GetRowCellValue(k, colCKGROUPATTR).ToString();
|
|
entity.InspectionStandard = gridView2.GetRowCellValue(k, colCKGROUPMETH).ToString();
|
|
|
|
if (gridView2.GetRowCellValue(k, colOK).ToString() == "True")
|
|
{
|
|
entity.IsOK = 1;
|
|
}
|
|
if (gridView2.GetRowCellValue(k, colNG).ToString() == "True")
|
|
{
|
|
//entity.IsOK = 1;
|
|
entity.IsOK = 0;
|
|
}
|
|
//else
|
|
//{
|
|
// entity.IsOK = 0;
|
|
//}
|
|
if (txtWGResult.Text == "OK")
|
|
{
|
|
entity.Qualified = Decimal.Parse(txtLONTQty.Text);//合格数
|
|
}
|
|
else
|
|
{
|
|
entity.UnQualified = Decimal.Parse(txtLONTQty.Text); ;//不合格数
|
|
}
|
|
entity.LotNo = txtLotNo.Text;
|
|
entity.UserCode = this.txtUserCode.Text;
|
|
entity.MOCode = this.txtMOCode.Text;
|
|
entity.OPCode = this.txtOPCode.Text;
|
|
entityList.Add(entity);
|
|
#endregion
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
simulationNew.EATTRIBUTE1 = "COLLECT_END";
|
|
}
|
|
ICSCollectBLL.Save(AppConfig.AppConnectString, simulationNew);
|
|
SetMsg(Color.Blue, btnOPOption.Text.Trim() + "成功!");
|
|
if (entityList != null && btnOPOption.Text == "完工")
|
|
{
|
|
ICSDataCollectionBLL.AddAndEditList(QualityCKDATA, entityList, AppConfig.AppConnectString, false);
|
|
}
|
|
////////////////////////////////////////////////////////////////////0906判退到NCR
|
|
if (QualityCKDATA.CKResult == "0")
|
|
{
|
|
string itemcode = txtItemCode.Text;
|
|
string OPCODE = txtOPCode.Text;
|
|
string MOCODE = txtMOCode.Text;
|
|
QTY = Convert.ToDecimal(txtLONTQty.Text);
|
|
LotNo = txtLotNo.Text;
|
|
if (!codeList.Contains(LotNo))
|
|
{
|
|
strResult += "产品追踪单:" + LotNo + " " + CCNCRMes() + " " + WWNCRMes();
|
|
codeList.Add(LotNo);
|
|
}
|
|
SendNCR(codeList, strResult, QTY, itemcode, MOCODE, OpCode, LotNo);
|
|
////////////////////////////////////0906判退到NCR
|
|
}
|
|
ClearTxt();
|
|
if (btnOPOption.Text.Trim().Equals(START))
|
|
{
|
|
btnOPOption.Text = END;
|
|
}
|
|
else
|
|
{
|
|
btnOPOption.Text = START;
|
|
}
|
|
_wait.Close();
|
|
txtOPCode.Enabled = true;
|
|
txtUserCode.ReadOnly = false;
|
|
txtEQPCode.ReadOnly = false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_wait.Close();
|
|
SetMsg(Color.Red, ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region 任务暂停、取消暂停
|
|
private void btnPauseBegin_Click(object sender, EventArgs e)
|
|
{
|
|
if (btnPauseBegin.Text.Trim().Equals(PAUSE))
|
|
{
|
|
Pause();
|
|
}
|
|
else
|
|
{
|
|
CancelPause();
|
|
}
|
|
}
|
|
#region 取消暂停
|
|
private void CancelPause()
|
|
{
|
|
try
|
|
{
|
|
|
|
if (txtLotNo.Text.Trim() == "" || txtOPCode.Text.Trim() == "" || txtUserCode.Text.Trim() == "" || txtEQPCode.Text.Trim() == "")
|
|
{
|
|
SetMsg(Color.Red, "请先扫描批次信息!");
|
|
return;
|
|
}
|
|
|
|
#region simulation
|
|
ICSLOTSIMULATION simulationNew = new ICSLOTSIMULATION();
|
|
simulationNew.MUSER = txtUserCode.Text.Trim();
|
|
simulationNew.MUSERName = txtUserName.Text.Trim();
|
|
simulationNew.LOTNO = txtLotNo.Text.Trim();
|
|
simulationNew.OPCODE = txtOPCode.Text.Trim();
|
|
simulationNew.EQPCODE = txtEQPCode.Text.Trim();
|
|
#endregion
|
|
|
|
ICSCollectBLL.CancelPause(AppConfig.AppConnectString, simulationNew);
|
|
SetMsg(Color.Blue, "取消暂停成功!");
|
|
btnPauseBegin.Text = PAUSE;
|
|
//clear();
|
|
//ClearTxt();
|
|
this.txtStopType.Text = "";
|
|
this.txtStopCode.Text = "";
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMsg(Color.Red, ex.Message);
|
|
}
|
|
}
|
|
//private void clear()
|
|
//{
|
|
// try
|
|
// {
|
|
// txtUserCode.Text = "";
|
|
// txtUserName.Text = "";
|
|
// txtItemCode.Text = "";
|
|
// txtLotNO.Text = "";
|
|
// txtLotNo.Text = "";
|
|
// txtMoCode.Text = "";
|
|
// txtItemName.Text = "";
|
|
// txtOpCode.Text = "";
|
|
// txtOpName.Text = "";
|
|
// txtKeyPart.Text = "";
|
|
// txtEQPCode.Text = "";
|
|
// txtEQPName.Text = "";
|
|
// txtInvLotFurnace.Text = "";
|
|
// txtEQPCode.Text = "";
|
|
// txtRealEQPName.Text = "";
|
|
// txtMemo.Text = "";
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// SetMsg(Color.Red, ex.Message);
|
|
// }
|
|
//}
|
|
#endregion
|
|
|
|
private void Pause()
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(this.txtStopType.Text))
|
|
{
|
|
SetMsg(Color.Red, "请先选择暂停类型!");
|
|
return;
|
|
}
|
|
if (txtLotNo.Text.Trim() == "" || txtOPCode.Text.Trim() == "" || txtUserCode.Text.Trim() == "" || txtEQPCode.Text.Trim() == "")
|
|
{
|
|
SetMsg(Color.Red, "请先扫描批次信息!");
|
|
return;
|
|
}
|
|
|
|
#region simulation
|
|
ICSLOTSIMULATION simulationNew = new ICSLOTSIMULATION();
|
|
simulationNew.MUSER = txtUserCode.Text.Trim();
|
|
simulationNew.MUSERName = txtUserName.Text.Trim();
|
|
simulationNew.LOTNO = txtLotNo.Text.Trim();
|
|
simulationNew.OPCODE = txtOPCode.Text.Trim();
|
|
simulationNew.EQPCODE = txtEQPCode.Text.Trim();
|
|
|
|
simulationNew.EATTRIBUTE2 = txtStopCode.Text.Trim();
|
|
|
|
#endregion
|
|
|
|
ICSCollectBLL.Pause(AppConfig.AppConnectString, simulationNew);
|
|
SetMsg(Color.Blue, "暂停成功!");
|
|
|
|
btnPauseBegin.Text = CANCELPAUSE;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMsg(Color.Red, ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 工序结束
|
|
|
|
private void button4_Click_bak(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 退出
|
|
private void button5_Click(object sender, EventArgs e)
|
|
{
|
|
AppConfig.CloseFormShow(this.Text);
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
|
|
public void FormClear()
|
|
{
|
|
foreach (Control control in panel1.Controls)
|
|
{
|
|
if (control is TextBox)
|
|
{
|
|
((TextBox)control).Text = "";
|
|
}
|
|
}
|
|
foreach (Control control in panel2.Controls)
|
|
{
|
|
if (control is TextBox)
|
|
{
|
|
((TextBox)control).Text = "";
|
|
}
|
|
}
|
|
|
|
txtLotNo.Focus();
|
|
//grvdt.Clear();
|
|
//connectgrvdt.Clear();
|
|
}
|
|
|
|
private void btnEnlargeTZ_Click(object sender, EventArgs e)
|
|
{
|
|
FileDrawing.Enlarge(axAcroPDF);
|
|
}
|
|
|
|
|
|
private void txtStopType_EditValueChanged(object sender, EventArgs e)
|
|
{
|
|
string sql1 = @"SELECT DISTINCT EnumValue [暂停类型编码] ,EnumText [暂停类型] FROM Sys_EnumValues WHERE EnumKey='00022' and WorkPointCode='" + AppConfig.WorkPointCode + "' and EnumText='" + txtStopType.Text + "' ";
|
|
sql1 = string.Format(sql1, AppConfig.WorkPointCode);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql1).Tables[0];
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
txtStopType.Text = dt.Rows[0]["暂停类型"].ToString();
|
|
txtStopCode.Text = dt.Rows[0]["暂停类型编码"].ToString();
|
|
}
|
|
}
|
|
|
|
private void FormICSProductionReport_Activated(object sender, EventArgs e)
|
|
{
|
|
this.txtLotNo.Focus();
|
|
}
|
|
|
|
private void ClearTxt()
|
|
{
|
|
txtLotNo.Text = "";
|
|
txtOPCode.Text = "";
|
|
txtUserCode.Text = "";
|
|
txtUserName.Text = "";
|
|
txtEQPCode.Text = "";
|
|
txtMOCode.Text = "";
|
|
|
|
txtOPName.Text = "";
|
|
txtItemCode.Text = "";
|
|
txtItemName.Text = "";
|
|
txtMachineName.Text = "";
|
|
txtLONTQty.Text = "";
|
|
txtMOQty.Text = "";
|
|
txtThisOPOKQty.Text = "";
|
|
txtThisOPNGQty.Text = "";
|
|
//txtMachineCode1.Text = "";
|
|
//txtMachineName1.Text = "";
|
|
//txtMachineCode2.Text = "";
|
|
//txtMachineName2.Text = "";
|
|
//txtOKQty.Text = "";
|
|
//txtNGQty.Text = "";
|
|
gridControlcc.DataSource = null;
|
|
gridControl2.DataSource = null;
|
|
}
|
|
|
|
|
|
#region 设备
|
|
private void txtMachineCode_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
string sql = @"SELECT EQPName FROM ICSEquipment (NOLOCK) WHERE EQPCode='" + txtEQPCode.Text + "' AND WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt2 != null && dt2.Rows.Count > 0)
|
|
{
|
|
txtMachineName.Text = dt2.Rows[0][0].ToString();
|
|
SetMessage("设备扫描成功", Color.Blue);
|
|
IsWriteAll();
|
|
}
|
|
else
|
|
{
|
|
SetMessage("输入的设备编码:" + txtEQPCode.Text + ",有误,请核对数据", Color.Red);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMessage(ex.Message, Color.Red);
|
|
return;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
private void txtMachineCode1_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
string sql = @"SELECT EQPName FROM ICSEquipment (NOLOCK) WHERE EQPCode='" + txtEQPCode.Text + "' AND WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
if (dt2 != null && dt2.Rows.Count > 0)
|
|
{
|
|
txtMachineName.Text = dt2.Rows[0][0].ToString();
|
|
SetMessage("设备扫描成功", Color.Blue);
|
|
this.btnOPOption.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
SetMessage("输入的设备编码:" + txtEQPCode.Text + ",有误,请核对数据", Color.Red);
|
|
this.btnOPOption.Enabled = false;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMessage(ex.Message, Color.Red);
|
|
return;
|
|
}
|
|
}
|
|
|
|
//private void txtMachineCode2_KeyPress(object sender, KeyPressEventArgs e)
|
|
//{
|
|
// try
|
|
// {
|
|
// if (e.KeyChar == (char)Keys.Enter)
|
|
// {
|
|
// string sql = @"SELECT EQPName FROM ICSEquipment (NOLOCK) WHERE EQPCode='" + txtMachineCode2.Text + "' AND WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
// DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
|
|
// if (dt2 != null && dt2.Rows.Count > 0)
|
|
// {
|
|
// txtMachineName.Text = dt2.Rows[0][0].ToString();
|
|
// SetMessage("设备扫描成功", Color.Blue);
|
|
// }
|
|
// else
|
|
// {
|
|
// SetMessage("输入的设备编码:" + txtEQPCode.Text + ",有误,请核对数据", Color.Red);
|
|
// return;
|
|
// }
|
|
// }
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// SetMessage(ex.Message, Color.Red);
|
|
// return;
|
|
// }
|
|
//}
|
|
|
|
private void txtIsReturnItem_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
//if (this.txtIsReturnItem.Checked == true)
|
|
//{
|
|
// this.labelControl2.Text = "退料数量";
|
|
// this.txtReturnMateralSave.Visible = true;
|
|
|
|
// labelControl1.Visible = true;
|
|
// txtSBItemCode.Visible = true;
|
|
// labelControl2.Visible = true;
|
|
// txtSBItemCodeQty.Visible = true;
|
|
//}
|
|
//else
|
|
//{
|
|
// this.labelControl2.Text = "发料数量";
|
|
// this.txtReturnMateralSave.Visible = false;
|
|
|
|
// labelControl1.Visible = false;
|
|
// txtSBItemCode.Visible = false;
|
|
// labelControl2.Visible = false;
|
|
// txtSBItemCodeQty.Visible = false;
|
|
//}
|
|
}
|
|
|
|
#region 工序上料退料
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 操作手册
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void gridViewCC_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
#region
|
|
try
|
|
{
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
if (gridViewCC.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
#region colS1
|
|
|
|
int SNo = gridViewCC.FocusedRowHandle;
|
|
int SNoCC = gridViewCC.RowCount;
|
|
|
|
for (int i = SNo; i <= SNo; i++)
|
|
{
|
|
SendKeys.Send("{Down}");
|
|
if (SNo == SNoCC - 1)
|
|
{
|
|
for (int j = 0; j <= SNoCC - 1; j++)
|
|
{
|
|
SendKeys.Send("{Up}");
|
|
}
|
|
SendKeys.Send("{RIGHT}");
|
|
}
|
|
//bool istrue = false;
|
|
//for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
//{
|
|
// #region MyRegion
|
|
|
|
// Decimal _VALUEMAX = 0; Decimal _VALUEMIN = 0; Decimal _S1 = 0;
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMax) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString()))
|
|
// {
|
|
// _VALUEMAX = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMin) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString()))
|
|
// {
|
|
// _VALUEMIN = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colCheckResult) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// _S1 = Decimal.Parse(gridViewCC.GetRowCellValue(k, colCheckResult).ToString());
|
|
// }
|
|
// }
|
|
|
|
|
|
// if ((_S1 < _VALUEMIN || _S1 > _VALUEMAX) && gridViewCC.FocusedColumn.Caption == "检验值" && !string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// istrue = false;
|
|
// break;
|
|
// }
|
|
// else
|
|
// {
|
|
// istrue = true;
|
|
// }
|
|
|
|
// #endregion
|
|
//}
|
|
//if (istrue)
|
|
//{
|
|
// this.txtCCResult.Text = "OK";
|
|
// this.txtCCResult.BackColor = Color.Blue;
|
|
//}
|
|
//else
|
|
//{
|
|
// this.txtCCResult.Text = "NG";
|
|
// this.txtCCResult.BackColor = Color.Red;
|
|
//}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.ToString());
|
|
}
|
|
|
|
|
|
#endregion
|
|
}
|
|
|
|
private void gridView2_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void txtIsReturnItem_CheckedChanged_1(object sender, EventArgs e)
|
|
{
|
|
if (this.txtIsReturnItem.Checked == true)
|
|
{
|
|
this.labelControl2.Text = "退料数量";
|
|
this.txtReturnMateralSave.Visible = true;
|
|
|
|
labelControl1.Visible = true;
|
|
txtSBItemCode.Visible = true;
|
|
labelControl2.Visible = true;
|
|
txtSBItemCodeQty.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
this.labelControl2.Text = "发料数量";
|
|
this.txtReturnMateralSave.Visible = false;
|
|
|
|
labelControl1.Visible = false;
|
|
txtSBItemCode.Visible = false;
|
|
labelControl2.Visible = false;
|
|
txtSBItemCodeQty.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void txtReturnMateralSave_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(this.txtSBItemCode.Text) || string.IsNullOrWhiteSpace(this.txtSBItemCodeQty.Text))
|
|
{
|
|
SetMessage("退料编码或者退料数量不能为空", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string sqlUpOPDetail = @"SELECT DISTINCT a.SBItemCode cInvCode,d.QTY UPQty
|
|
FROM ICSMOOPDetail a
|
|
LEFT JOIN ICSITEMLot b ON a.MOCODE = b.TransNO AND a.MOSEQ=b.TransLine AND b.ItemCODE=a.ITEMCODE
|
|
LEFT JOIN ICSINVENTORY c ON a.SBItemCode = c.INVCODE
|
|
LEFT JOIN ICSLOTONWIPITEM d ON d.LOTNO = b.LotNO AND d.ROUTECODE=a.MoRoute AND d.OPCODE=a.OPCode
|
|
LEFT JOIN ICSMO e ON e.MOCODE=a.MOCODE AND e.MOSEQ=a.MOSEQ
|
|
WHERE b.LotNO='{0}' AND a.OPCode='{1}' AND a.OPType='UPBOM' AND a.WorkPoint='{2}' and b.WorkPoint='{2}' AND a.SBItemCode='{3}'";
|
|
sqlUpOPDetail = string.Format(sqlUpOPDetail, txtLotNo.Text.Trim(), txtOPCode.Text.Trim(), AppConfig.WorkPointCode, txtSBItemCode.Text);
|
|
DataTable _dataUpOPDetail = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sqlUpOPDetail).Tables[0];
|
|
if (_dataUpOPDetail != null && _dataUpOPDetail.Rows.Count > 0)
|
|
{
|
|
Decimal UPQty = 0;
|
|
Decimal _UPQty = Convert.ToDecimal(txtSBItemCodeQty.Text);
|
|
|
|
if (!string.IsNullOrWhiteSpace(_dataUpOPDetail.Rows[0][1].ToString()))
|
|
{
|
|
UPQty = Convert.ToDecimal(_dataUpOPDetail.Rows[0][1].ToString());
|
|
}
|
|
else
|
|
{
|
|
SetMessage("当前工序子件料号:" + txtSBItemCode.Text + "还没有发料,不能退料", Color.Red);
|
|
return;
|
|
}
|
|
if (_UPQty > UPQty)
|
|
{
|
|
SetMessage("当前工序子件料号:" + txtSBItemCode.Text + ";退料数量:" + txtSBItemCodeQty.Text + "大于发料数量:" + UPQty + ",不能退料", Color.Red);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SetMessage("当前工序子件料号:" + txtSBItemCode.Text + "不属于工单上料明细", Color.Red);
|
|
return;
|
|
}
|
|
|
|
|
|
if (dataUpOPDetail != null && dataUpOPDetail.Rows.Count > 0)
|
|
{
|
|
List<ICSLOTONWIPITEM> list = new List<ICSLOTONWIPITEM>();
|
|
foreach (DataRow item in dataUpOPDetail.Rows)
|
|
{
|
|
if (item["cInvCode"].ToString() == txtSBItemCode.Text)
|
|
{
|
|
//d.QTY UPQty,
|
|
ICSLOTONWIPITEM wipItem = new ICSLOTONWIPITEM();
|
|
wipItem.MOCODE = item["MOCODE"].ToString();
|
|
wipItem.MOSEQ = Int32.Parse(item["TransLine"].ToString());
|
|
wipItem.LOTNO = item["LotNO"].ToString();
|
|
wipItem.ITEMCODE = txtItemCode.Text;//母件编码
|
|
wipItem.INVCODE = item["cInvCode"].ToString();//子件编码
|
|
wipItem.OPCODE = item["OPCode"].ToString();
|
|
wipItem.ROUTECODE = item["MoRoute"].ToString(); ;
|
|
Decimal OPOKQty = 0;
|
|
Decimal OPNGQty = 0;
|
|
if (!string.IsNullOrWhiteSpace(txtLONTQty.Text))
|
|
{
|
|
OPOKQty = Convert.ToDecimal(txtLONTQty.Text);
|
|
}
|
|
//if (!string.IsNullOrWhiteSpace(txtLONTQty.Text))
|
|
//{
|
|
// OPNGQty = Convert.ToDecimal(txtLONTQty.Text);
|
|
//}
|
|
if (!string.IsNullOrWhiteSpace(txtLONTQty.Text))
|
|
{
|
|
OPNGQty = 0;
|
|
}
|
|
Decimal MOQty = Convert.ToDecimal(item["MOPLANQTY"].ToString()); ;
|
|
wipItem.QTY = Convert.ToDecimal(item["UPQty"].ToString()) - Convert.ToDecimal(txtSBItemCodeQty.Text);
|
|
wipItem.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
wipItem.MUSER = AppConfig.UserCode; ;
|
|
wipItem.MUSERName = AppConfig.UserName;
|
|
wipItem.WorkPoint = AppConfig.WorkPointCode;
|
|
list.Add(wipItem);
|
|
}
|
|
}
|
|
ICSDataCollectionBLL.CollectOPUP(list, "0", AppConfig.AppConnectString);
|
|
SetMessage("工序退料成功!", Color.Blue);
|
|
|
|
if (!string.IsNullOrWhiteSpace(this.txtLotNo.Text.Trim()) && !string.IsNullOrWhiteSpace(this.txtOPCode.Text.Trim()))
|
|
{
|
|
string _sqlUpOPDetail = @"SELECT DISTINCT a.MOCODE,b.TransLine,a.MoRoute,b.LotNO,b.LOTQTY,a.MOUPBOM,e.MOPLANQTY,
|
|
a.SBItemCode cInvCode,c.INVNAME,a.OPCode,c.INVSTD,a.OPUseQty iQuantity,d.QTY UPQty,(a.OPUseQty - ISNULL(d.QTY, 0)) UnUpQty
|
|
FROM ICSMOOPDetail a
|
|
LEFT JOIN ICSITEMLot b ON a.MOCODE = b.TransNO AND a.MOSEQ=b.TransLine AND b.ItemCODE=a.ITEMCODE
|
|
LEFT JOIN ICSINVENTORY c ON a.SBItemCode = c.INVCODE
|
|
LEFT JOIN ICSLOTONWIPITEM d ON d.LOTNO = b.LotNO AND d.ROUTECODE=a.MoRoute AND d.OPCODE=a.OPCode AND d.INVCODE=a.SBItemCode
|
|
LEFT JOIN ICSMO e ON e.MOCODE=a.MOCODE AND e.MOSEQ=a.MOSEQ
|
|
WHERE b.LotNO='{0}' AND a.OPCode='{1}' AND a.OPType='UPBOM' AND a.WorkPoint='{2}' and b.WorkPoint='{2}'";
|
|
_sqlUpOPDetail = string.Format(_sqlUpOPDetail, txtLotNo.Text.Trim(), txtOPCode.Text.Trim(), AppConfig.WorkPointCode);
|
|
dataUpOPDetail = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, _sqlUpOPDetail).Tables[0];
|
|
|
|
this.gridControl1.DataSource = dataUpOPDetail;
|
|
gridView1.BestFitColumns();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void btnTransfer_Click(object sender, EventArgs e)
|
|
{
|
|
SetMsg(Color.Blue, "");
|
|
string msg = check();
|
|
if (msg != "")
|
|
{
|
|
SetMsg(Color.Red, msg);
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
#region simulation
|
|
ICSLOTSIMULATION simulationNew = new ICSLOTSIMULATION();
|
|
simulationNew.MUSER = txtUserCode.Text.Trim();
|
|
simulationNew.LOTNO = txtLotNo.Text.Trim();
|
|
simulationNew.OPCODE = txtOPCode.Text.Trim();
|
|
simulationNew.EQPCODE = txtEQPCode.Text.Trim();
|
|
//simulationNew.RESCODE = txtInvLotFurnace.Text.Trim();//试样号
|
|
//simulationNew.CHECKLOTNO = txtMemo.Text.Trim(); //备注
|
|
#endregion
|
|
|
|
ICSCollectBLL.Transfer(AppConfig.AppConnectString, simulationNew);
|
|
SetMsg(Color.Blue, btnTransfer.Text.Trim() + "成功!");
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SetMsg(Color.Red, ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
#region 失去焦点
|
|
|
|
private void gridView2_LostFocus(object sender, EventArgs e)
|
|
{
|
|
//#region
|
|
//try
|
|
//{
|
|
// //if (e.KeyCode == Keys.Enter)
|
|
// //{
|
|
// if (gridView2.FocusedRowHandle < 0)
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// #region colS1
|
|
|
|
// int SNo = gridView2.FocusedRowHandle;
|
|
// int SNoCC = gridView2.RowCount;
|
|
|
|
// //for (int i = SNo; i <= SNo; i++)
|
|
// //{
|
|
// // SendKeys.Send("{Down}");
|
|
// // if (SNo == SNoCC - 1)
|
|
// // {
|
|
// // for (int j = 0; j <= SNoCC - 1; j++)
|
|
// // {
|
|
// // SendKeys.Send("{Up}");
|
|
// // }
|
|
// // SendKeys.Send("{RIGHT}");
|
|
// // }
|
|
// bool istrue = false;
|
|
// for (int k = 0; k < gridView2.RowCount; k++)
|
|
// {
|
|
|
|
// //DevExpress.XtraGrid.Views.Grid.GridView GV = sender as DevExpress.XtraGrid.Views.Grid.GridView;
|
|
// //if (GV.EditingValue == null || GV.EditingValue.ToString() == "" || GV == null)
|
|
// //{
|
|
// // return;
|
|
// //}
|
|
// //string Memo = GV.EditingValue.ToString();
|
|
// //if (Memo != "")
|
|
// //{
|
|
// // string ID = gridView2.GetRowCellValue(gridView2.FocusedRowHandle, colOK).ToString();
|
|
// //}
|
|
|
|
// #region MyRegion
|
|
|
|
// bool _S1 = false;
|
|
// bool _S2 = false;
|
|
|
|
// if (gridView2.GetRowCellValue(k, colOK) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridView2.GetRowCellValue(k, colOK).ToString()))
|
|
// {
|
|
// if (gridView2.GetRowCellValue(k, colOK).ToString() == "True")
|
|
// {
|
|
// _S1 = true;
|
|
// }
|
|
// }
|
|
// }
|
|
// if (gridView2.GetRowCellValue(k, colNG) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridView2.GetRowCellValue(k, colNG).ToString()))
|
|
// {
|
|
// if (gridView2.GetRowCellValue(k, colNG).ToString() == "True")
|
|
// {
|
|
// _S2 = true;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// if (_S1 && gridView2.FocusedColumn.Caption == "合格")
|
|
// {
|
|
|
|
// istrue = true;
|
|
// }
|
|
// //else
|
|
// //{
|
|
// // istrue = false;
|
|
// // break;
|
|
// //}
|
|
|
|
// if (_S2 && gridView2.FocusedColumn.Caption == "不合格")
|
|
// {
|
|
|
|
// istrue = false;
|
|
// break;
|
|
// }
|
|
|
|
// #endregion
|
|
// }
|
|
// if (istrue)
|
|
// {
|
|
// this.txtWGResult.Text = "OK";
|
|
// this.txtWGResult.BackColor = Color.Blue;
|
|
// }
|
|
// else
|
|
// {
|
|
// this.txtWGResult.Text = "NG";
|
|
// this.txtWGResult.BackColor = Color.Red;
|
|
// }
|
|
|
|
// //}
|
|
|
|
// #endregion
|
|
|
|
// //}
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// throw new Exception(ex.ToString());
|
|
//}
|
|
|
|
|
|
//#endregion
|
|
}
|
|
|
|
#endregion
|
|
|
|
private void gridViewCC_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
|
{
|
|
//#region
|
|
//try
|
|
//{
|
|
// //if (e.KeyCode == Keys.Enter)
|
|
// //{
|
|
// if (gridViewCC.FocusedRowHandle < 0)
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// #region colS1
|
|
|
|
// int SNo = gridViewCC.FocusedRowHandle;
|
|
// int SNoCC = gridViewCC.RowCount;
|
|
|
|
// //for (int i = SNo; i <= SNo; i++)
|
|
// //{
|
|
// //SendKeys.Send("{Down}");
|
|
// //if (SNo == SNoCC - 1)
|
|
// //{
|
|
// // for (int j = 0; j <= SNoCC - 1; j++)
|
|
// // {
|
|
// // SendKeys.Send("{Up}");
|
|
// // }
|
|
// // SendKeys.Send("{RIGHT}");
|
|
// //}
|
|
// bool istrue = false;
|
|
|
|
// if (gridViewCC.FocusedColumn.Caption == "检验值")
|
|
// {
|
|
|
|
// for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
// {
|
|
// #region MyRegion
|
|
|
|
// Decimal _VALUEMAX = 0; Decimal _VALUEMIN = 0; Decimal _S1 = 0;
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMax) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString()))
|
|
// {
|
|
// _VALUEMAX = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMin) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString()))
|
|
// {
|
|
// _VALUEMIN = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colCheckResult) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// _S1 = Decimal.Parse(gridViewCC.GetRowCellValue(k, colCheckResult).ToString());
|
|
// }
|
|
// }
|
|
|
|
// if ((_S1 >= _VALUEMIN && _S1 <= _VALUEMAX) && gridViewCC.FocusedColumn.Caption == "检验值" && !string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// istrue = true;
|
|
// }
|
|
// else
|
|
// {
|
|
// istrue = false;
|
|
// break;
|
|
// }
|
|
|
|
// #endregion
|
|
// }
|
|
// if (istrue)
|
|
// {
|
|
// this.txtCCResult.Text = "OK";
|
|
// //this.txtCCResult.BackColor = Color.Blue;//5572e8
|
|
// this.txtCCResult.BackColor = Color.MediumSlateBlue;//5572e8
|
|
// }
|
|
// else
|
|
// {
|
|
// this.txtCCResult.Text = "NG";
|
|
// this.txtCCResult.BackColor = Color.Red;
|
|
// }
|
|
// //}
|
|
// }
|
|
// #endregion
|
|
|
|
// //}
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// throw new Exception(ex.ToString());
|
|
//}
|
|
|
|
|
|
//#endregion
|
|
}
|
|
private string CCNCRMes() {
|
|
|
|
string result = "";
|
|
for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
{
|
|
|
|
|
|
//Decimal _VALUEMAX = 0; Decimal _VALUEMIN = 0; Decimal _S1 = 0;
|
|
//if (gridViewCC.GetRowCellValue(k, colSetValueMax) != null)
|
|
//{
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString()))
|
|
// {
|
|
// _VALUEMAX = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString());
|
|
// }
|
|
//}
|
|
//if (gridViewCC.GetRowCellValue(k, colSetValueMin) != null)
|
|
//{
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString()))
|
|
// {
|
|
// _VALUEMIN = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString());
|
|
// }
|
|
//}
|
|
//if (gridViewCC.GetRowCellValue(k, colCheckResult) != null)
|
|
//{
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// _S1 = Decimal.Parse(gridViewCC.GetRowCellValue(k, colCheckResult).ToString());
|
|
// }
|
|
//}
|
|
|
|
|
|
if (gridViewCC.GetRowCellValue(k, CCNG).ToString() == "True")
|
|
{
|
|
result += "在尺寸检验,检验项目:" + gridViewCC.GetRowCellValue(k, colCKGROUPDESC) + " 发生不良:实测值:" + gridViewCC.GetRowCellValue(k, colCheckResult).ToString() + ",不良原因:" + gridViewCC.GetRowCellValue(k, colRemark).ToString() + "";
|
|
}
|
|
|
|
|
|
}
|
|
return result;
|
|
|
|
}
|
|
|
|
private void gridView2_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
|
{
|
|
#region
|
|
try
|
|
{
|
|
//if (e.KeyCode == Keys.Enter)
|
|
//{
|
|
if (gridView2.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
#region colS1
|
|
|
|
int SNo = gridView2.FocusedRowHandle;
|
|
int SNoCC = gridView2.RowCount;
|
|
|
|
//for (int i = SNo; i <= SNo; i++)
|
|
//{
|
|
// SendKeys.Send("{Down}");
|
|
// if (SNo == SNoCC - 1)
|
|
// {
|
|
// for (int j = 0; j <= SNoCC - 1; j++)
|
|
// {
|
|
// SendKeys.Send("{Up}");
|
|
// }
|
|
// SendKeys.Send("{RIGHT}");
|
|
// }
|
|
bool istrue = false;
|
|
for (int k = 0; k < gridView2.RowCount; k++)
|
|
{
|
|
|
|
//DevExpress.XtraGrid.Views.Grid.GridView GV = sender as DevExpress.XtraGrid.Views.Grid.GridView;
|
|
//if (GV.EditingValue == null || GV.EditingValue.ToString() == "" || GV == null)
|
|
//{
|
|
// return;
|
|
//}
|
|
//string Memo = GV.EditingValue.ToString();
|
|
//if (Memo != "")
|
|
//{
|
|
// string ID = gridView2.GetRowCellValue(gridView2.FocusedRowHandle, colOK).ToString();
|
|
//}
|
|
|
|
#region MyRegion
|
|
|
|
bool _S1 = false;
|
|
bool _S2 = false;
|
|
|
|
if (gridView2.GetRowCellValue(k, colOK) != null && e.Column.Caption == "合格")
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(gridView2.GetRowCellValue(k, colOK).ToString()))
|
|
{
|
|
if (gridView2.GetRowCellValue(k, colOK).ToString() == "True")
|
|
{
|
|
_S1 = true;
|
|
if (gridView2.GetRowCellValue(k, colNG).ToString() == "True")
|
|
{
|
|
gridView2.SetRowCellValue(k, colNG, "False");
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
if (gridView2.GetRowCellValue(k, colNG) != null && e.Column.Caption == "不合格")
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(gridView2.GetRowCellValue(k, colNG).ToString()))
|
|
{
|
|
if (gridView2.GetRowCellValue(k, colNG).ToString() == "True")
|
|
{
|
|
_S2 = true;
|
|
|
|
if (gridView2.GetRowCellValue(k, colOK).ToString() == "True")
|
|
{
|
|
gridView2.SetRowCellValue(k, colOK, "False");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (_S1 && gridView2.FocusedColumn.Caption == "合格")
|
|
{
|
|
|
|
istrue = true;
|
|
}
|
|
//else
|
|
//{
|
|
// istrue = false;
|
|
// break;
|
|
//}
|
|
|
|
if (_S2 && gridView2.FocusedColumn.Caption == "不合格")
|
|
{
|
|
|
|
istrue = false;
|
|
//break;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
if (istrue)
|
|
{
|
|
this.txtWGResult.Text = "OK";
|
|
this.txtWGResult.BackColor = Color.Blue;
|
|
}
|
|
else
|
|
{
|
|
this.txtWGResult.Text = "NG";
|
|
this.txtWGResult.BackColor = Color.Red;
|
|
}
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
//}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.ToString());
|
|
}
|
|
|
|
|
|
#endregion
|
|
}
|
|
|
|
private string WWNCRMes() {
|
|
string result = "";
|
|
for (int k = 0; k < gridView2.RowCount; k++)
|
|
{
|
|
bool _S2 = false;
|
|
|
|
if (gridView2.GetRowCellValue(k, colNG) != null)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(gridView2.GetRowCellValue(k, colNG).ToString()))
|
|
{
|
|
if (gridView2.GetRowCellValue(k, colNG).ToString() == "True")
|
|
{
|
|
_S2 = true;
|
|
}
|
|
}
|
|
}
|
|
if (_S2)
|
|
{
|
|
result += "在外观检验,检验项目:" + gridView2.GetRowCellValue(k, colCKGROUPDESC1) + "发生不良";
|
|
|
|
}
|
|
|
|
}
|
|
return result;
|
|
|
|
|
|
}
|
|
//private void webBrowserMap_SizeChanged(object sender, EventArgs e)
|
|
//{
|
|
// panelMap.Width = this.Width;
|
|
// panelMap.Height = this.Height;
|
|
// //webBrowserMap.Dock = DockStyle.Fill;
|
|
|
|
//}
|
|
|
|
public static string PLMMap_(string url, string JsonData)
|
|
{
|
|
//ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
|
|
Encoding encoding = Encoding.UTF8;
|
|
|
|
//构造一个Web请求的对象
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + JsonData);
|
|
request.Method = "GET";
|
|
request.Accept = "text/html, application/xhtml+xml, */*";
|
|
request.ContentType = "application/json";
|
|
|
|
//获取web请求的响应的内容
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|
|
|
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
|
|
{
|
|
return reader.ReadToEnd();
|
|
}
|
|
|
|
//HttpWebRequest request = (HttpWebRequest)WebRequest.Create(https + strContent);
|
|
//request.Method = "GET";
|
|
//request.ContentType = "textml;charset=UTF-8";
|
|
//HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|
//Stream myResponseStream = response.GetResponseStream();
|
|
//StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
|
|
//string retString = myStreamReader.ReadToEnd();
|
|
//myStreamReader.Close();
|
|
//myResponseStream.Close();
|
|
//dynamic ja = JsonConvert.DeserializeObject(retString);
|
|
//return ja;
|
|
|
|
|
|
|
|
}
|
|
|
|
public static BaseModel PLMMap(string URL, string JsonData)
|
|
{
|
|
try
|
|
{
|
|
//调用接口获取返回信息
|
|
//string ContentType = "application/json;charset=UTF-8;";
|
|
string ContentType = "application/json";
|
|
|
|
WebRequest request = WebRequest.Create(URL);
|
|
request.Method = "POST";
|
|
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(JsonData);
|
|
request.ContentType = ContentType;
|
|
request.ContentLength = bytes.Length;
|
|
//using (Stream postStream = request.GetRequestStream())
|
|
//{
|
|
// postStream.Write(bytes, 0, bytes.Length);
|
|
//}
|
|
using (Stream postStream = request.GetRequestStream())
|
|
{
|
|
postStream.Write(bytes, 0, bytes.Length);
|
|
}
|
|
request.Credentials = CredentialCache.DefaultCredentials;
|
|
string str = string.Empty;
|
|
WebResponse response = null;
|
|
try
|
|
{
|
|
response = request.GetResponse();
|
|
}
|
|
catch (WebException ex)
|
|
{
|
|
if (ex.Status == WebExceptionStatus.ProtocolError)
|
|
response = (WebResponse)ex.Response;
|
|
}
|
|
if (response != null)
|
|
{
|
|
using (StreamReader st = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
|
|
{
|
|
str = System.Web.HttpUtility.UrlDecode(st.ReadToEnd());
|
|
}
|
|
}
|
|
|
|
//将返回的string类型转换成model
|
|
BaseModel obj = (BaseModel)Newtonsoft.Json.JsonConvert.DeserializeObject(str, typeof(BaseModel));
|
|
//string obj = (string)Newtonsoft.Json.JsonConvert.DeserializeObject(str, typeof(string));
|
|
|
|
return obj;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("调用MES接口错误:" + ex.Message);
|
|
}
|
|
}
|
|
|
|
public static string PLMMap1(string URL, string JsonData)
|
|
{
|
|
try
|
|
{
|
|
//调用接口获取返回信息
|
|
//string ContentType = "application/json;charset=UTF-8;";
|
|
string ContentType = "application/json";
|
|
|
|
WebRequest request = WebRequest.Create(URL);
|
|
request.Method = "POST";
|
|
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(JsonData);
|
|
request.ContentType = ContentType;
|
|
request.ContentLength = bytes.Length;
|
|
//using (Stream postStream = request.GetRequestStream())
|
|
//{
|
|
// postStream.Write(bytes, 0, bytes.Length);
|
|
//}
|
|
using (Stream postStream = request.GetRequestStream())
|
|
{
|
|
postStream.Write(bytes, 0, bytes.Length);
|
|
}
|
|
request.Credentials = CredentialCache.DefaultCredentials;
|
|
string str = string.Empty;
|
|
WebResponse response = null;
|
|
try
|
|
{
|
|
response = request.GetResponse();
|
|
}
|
|
catch (WebException ex)
|
|
{
|
|
if (ex.Status == WebExceptionStatus.ProtocolError)
|
|
response = (WebResponse)ex.Response;
|
|
}
|
|
if (response != null)
|
|
{
|
|
using (StreamReader st = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
|
|
{
|
|
str = System.Web.HttpUtility.UrlDecode(st.ReadToEnd());
|
|
}
|
|
}
|
|
|
|
return str;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("调用MES接口错误:" + ex.Message);
|
|
}
|
|
}
|
|
|
|
public class BaseModel
|
|
{
|
|
public string code { get; set; }
|
|
|
|
public string msg { get; set; }
|
|
|
|
public string data { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
public static string HttpDownloadFile(string url, string path)
|
|
{
|
|
// 设置参数
|
|
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
|
|
|
|
//发送请求并获取相应回应数据
|
|
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
|
|
//直到request.GetResponse()程序才开始向目标网页发送Post请求
|
|
Stream responseStream = response.GetResponseStream();
|
|
|
|
//创建本地文件写入流
|
|
Stream stream = new FileStream(path, FileMode.Create);
|
|
|
|
byte[] bArr = new byte[1024];
|
|
int size = responseStream.Read(bArr, 0, (int)bArr.Length);
|
|
while (size > 0)
|
|
{
|
|
stream.Write(bArr, 0, size);
|
|
size = responseStream.Read(bArr, 0, (int)bArr.Length);
|
|
}
|
|
stream.Close();
|
|
responseStream.Close();
|
|
return path;
|
|
}
|
|
|
|
private void btnEnlargeTZ_Click_1(object sender, EventArgs e)
|
|
{
|
|
FileDrawing.Enlarge(axAcroPDF);
|
|
}
|
|
|
|
|
|
|
|
//初始化颜色
|
|
public void initcolor()
|
|
{
|
|
|
|
|
|
BtnSOP.BackColor = Color.FromArgb(207, 221, 255);
|
|
BtnSIP.BackColor = Color.FromArgb(207, 221, 255);
|
|
btnOPDrowing.BackColor = Color.FromArgb(207, 221, 255);
|
|
btnOperationManual.BackColor = Color.FromArgb(207, 221, 255);
|
|
BtnOPUp.BackColor = Color.FromArgb(207, 221, 255);
|
|
btnDaoJu.BackColor = Color.FromArgb(207, 221, 255);//刀具
|
|
btnCaoZuo.BackColor = Color.FromArgb(207, 221, 255);//操作
|
|
btnJianYan.BackColor = Color.FromArgb(207, 221, 255);//检验
|
|
}
|
|
|
|
|
|
#region 零部件 设计图纸 SOP
|
|
private void BtnSOP_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
initcolor();
|
|
BtnSOP.BackColor = Color.Aqua;
|
|
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken";
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = Bills.ItemCode + ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 工艺过程卡2
|
|
private void btnOperationManual_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
initcolor();
|
|
btnOperationManual.BackColor = Color.Aqua;
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken2";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken2";
|
|
//;
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
//0916 原来的 Bills.extra = "DWGSW";
|
|
Bills.extra = "PRCF";
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName=rtn.msg+ ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 工序卡3 SIP
|
|
private void BtnSIP_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
try
|
|
{
|
|
initcolor();
|
|
BtnSIP.BackColor = Color.Aqua;
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken3";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken3";
|
|
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(opseq)) {
|
|
SetMessage("请先输入正确工序!", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
Bills.routecode = RouteCode;
|
|
Bills.opseq = opseq;
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = rtn.msg+ ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 作业指导书4
|
|
private void btnOPDrowing_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
initcolor();
|
|
btnOPDrowing.BackColor = Color.Aqua;
|
|
|
|
|
|
string url = @"http://172.16.12.155:9999/api/GetPLMToken8";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken8";
|
|
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(opseq))
|
|
{
|
|
SetMessage("请先输入正确工序!", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
Bills.routecode = RouteCode;
|
|
Bills.opseq = opseq;
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = rtn.msg + ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 检验判定书5
|
|
private void btnJianYan_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
initcolor();
|
|
btnJianYan.BackColor = Color.Aqua;
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken5";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken5";
|
|
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(opseq))
|
|
{
|
|
SetMessage("请先输入正确工序!", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
Bills.routecode = RouteCode;
|
|
Bills.opseq = opseq;
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = rtn.msg + ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 刀具清单6
|
|
private void btnDaoJu_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
initcolor();
|
|
btnDaoJu.BackColor = Color.Aqua;
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken6";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken6";
|
|
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(opseq))
|
|
{
|
|
SetMessage("请先输入正确工序!", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
Bills.routecode = RouteCode;
|
|
Bills.opseq = opseq;
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = rtn.msg + ".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 操作指导书7
|
|
private void btnCaoZuo_Click(object sender, EventArgs e)
|
|
{
|
|
//initcolor();
|
|
//btnCaoZuo.BackColor = Color.Aqua;
|
|
//this.label23.Visible = false;
|
|
try
|
|
{
|
|
initcolor();
|
|
btnCaoZuo.BackColor = Color.Aqua;
|
|
|
|
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMToken7";
|
|
//string url = @"http://localhost:51182/api/GetPLMToken7";
|
|
|
|
SearchPart Bills = new SearchPart();
|
|
//Bills.ItemCode = "20100003035";
|
|
//Bills.ItemCode = "20100000670";
|
|
//Bills.ItemCode = "20800001904";
|
|
Bills.ItemCode = txtItemCode.Text;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtItemCode.Text))
|
|
{
|
|
SetMessage("请先输入料号编码", Color.Red);
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(opseq))
|
|
{
|
|
SetMessage("请先输入正确工序!", Color.Red);
|
|
return;
|
|
}
|
|
Bills.size = 100;
|
|
Bills.extra = "DWGSW";
|
|
Bills.routecode = RouteCode;
|
|
Bills.opseq = opseq;
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
|
|
//try
|
|
//{
|
|
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
|
|
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
|
|
//}
|
|
#region MyRegion
|
|
BaseModel rtn = PLMMap(url, JsonData);
|
|
if (rtn.code == "200")
|
|
{
|
|
//txtGetPLMMap.Text = rtn.msg;
|
|
//panelMap.BringToFront();
|
|
//panel8WebMap.BringToFront();
|
|
//webBrowserMap.Navigate(txtGetPLMMap.Text);
|
|
//string path = string.Empty;
|
|
//path = "E:\\PDF";
|
|
//HttpDownloadFile(txtGetPLMMap.Text, path);
|
|
//SetMessage("", Color.Red);
|
|
//return;
|
|
//ICSSoft.Frame.PLM2MESInterface.Token.GetToken.OperationResult result = ICSSoft.Frame.PLM2MESInterface.Token.GetToken.GetPLMToken();
|
|
//string Token = result.errmsg;
|
|
#region MyRegion
|
|
|
|
panelMap.BringToFront();
|
|
this.label23.Visible = false;
|
|
string itemCode = this.txtItemCode.Text;
|
|
//string RouteCode = string.Empty;
|
|
string OpCode = this.txtOPCode.Text;
|
|
//string sql = @"SELECT SOPDrawing from ICSITEMROUTE2OP WHERE ITEMCODE='" + itemCode + "' AND ROUTECODE='" + RouteCode + "' AND OPCODE='" + OpCode + "' ";
|
|
//string connectionString = AppConfig.FrameConnectString; // AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]");
|
|
//string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP2]");
|
|
//if (string.IsNullOrWhiteSpace(connectionString))
|
|
// return;
|
|
//string logAdress = ConfigurationManager.AppSettings["PLMAdress"].ToString();
|
|
|
|
//object name = DBHelper.ExecuteScalar(connectionString, CommandType.Text, sql);
|
|
//name = "123";
|
|
//if (name == null || string.IsNullOrWhiteSpace(name.ToString()))
|
|
// return;
|
|
//string fileName = "E:\\PDF\\20201015.pdf";
|
|
//string fileName = name.ToString() + itemCode + "\\" + RouteCode + "\\" + OpCode + ".pdf";
|
|
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
|
|
if (string.IsNullOrWhiteSpace(connectionString))
|
|
{
|
|
SetMessage("没有获取到FTP链接,请在数据源中先配置FTP", Color.Red);
|
|
return;
|
|
}
|
|
|
|
string[] ftps = connectionString.Split(';');
|
|
string ftpServerIP = ftps[0].Split('=')[1];
|
|
//string ftpRemotePath = ftps[1].Split('=')[1];
|
|
string ftpRemotePath = "";
|
|
|
|
string ftpUserID = ftps[2].Split('=')[1];
|
|
string ftpPassword = ftps[3].Split('=')[1];
|
|
|
|
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
|
|
|
|
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
|
|
|
|
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
{
|
|
Directory.CreateDirectory(filePath);
|
|
}
|
|
string fileName = rtn.msg+".pdf";
|
|
ftpWeb.Download(filePath + "\\", fileName);
|
|
|
|
string filePathName = filePath + "\\" + fileName;
|
|
//string fileName = logAdress + Bills.ItemCode + ".pdf";
|
|
|
|
|
|
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
|
|
|
|
//if (!string.IsNullOrEmpty(fileName))
|
|
if (!string.IsNullOrEmpty(filePathName))
|
|
{
|
|
//axAcroPDF.LoadFile(fileName);
|
|
axAcroPDF.LoadFile(filePathName);
|
|
axAcroPDF.setShowToolbar(false);
|
|
axAcroPDF.setShowScrollbars(false);
|
|
axAcroPDF.setPageMode("thumbs");
|
|
axAcroPDF.setLayoutMode("SinglePage");
|
|
axAcroPDF.setView("Fit");
|
|
axAcroPDF.Show();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
SetMessage("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg, Color.Red);
|
|
return;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 工序上料
|
|
|
|
public ICSLOTSIMULATION GetSimulationByLotNo(string LotNo)
|
|
{
|
|
string sql = @"select * from ICSLOTSIMULATION
|
|
where LOTNO = '" + LotNo + "' order by MTIME desc";
|
|
var objs = this._domainDataProvider.ExecuteQuery<ICSLOTSIMULATION>(sql).ToList();
|
|
if (objs == null || objs.Count < 1)
|
|
return null;
|
|
else
|
|
return (ICSLOTSIMULATION)objs[0];
|
|
}
|
|
|
|
private void BtnOPUp_Click(object sender, EventArgs e)
|
|
{
|
|
initcolor();
|
|
BtnOPUp.BackColor = Color.Aqua;
|
|
|
|
// BtnOPUp.BackColor = System.Drawing.Color.DeepSkyBlue;
|
|
this.label23.Visible = true;
|
|
panelOP.BringToFront();
|
|
//this.txtSBItemCode.Text = txtLotNo.Text;
|
|
//this.txtSBItemCode.Text = txtLotNo.Text;
|
|
|
|
if (this.btnOPOption.Text == " 开工")
|
|
{
|
|
List<ICSLOTONWIPITEM> list = new List<ICSLOTONWIPITEM>();
|
|
if (dataUpOPDetail != null && dataUpOPDetail.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow item in dataUpOPDetail.Rows)
|
|
{
|
|
//d.QTY UPQty,
|
|
//ICSLOTSIMULATION simulation = GetSimulationByLotNo(this.txtLotNo.Text.Trim());
|
|
//ICSLOTSIMULATIONREPORT simulationReport = _DataCollectFacade.GetLastSimulationReport(this.txtLotNo.Text.Trim());
|
|
ICSLOTONWIPITEM wipItem = new ICSLOTONWIPITEM();
|
|
wipItem.ID = AppConfig.GetGuid();
|
|
wipItem.MOCODE = item["MOCODE"].ToString();
|
|
wipItem.MOSEQ = Int32.Parse(item["TransLine"].ToString());
|
|
wipItem.LOTNO = item["LotNO"].ToString();
|
|
wipItem.ITEMCODE = txtItemCode.Text;//母件编码
|
|
wipItem.INVCODE = item["cInvCode"].ToString();//子件编码
|
|
wipItem.OPCODE = item["OPCode"].ToString();
|
|
wipItem.ROUTECODE = item["MoRoute"].ToString(); ;
|
|
wipItem.QTY = 0;// Convert.ToDecimal(item["iQuantity"].ToString()) / Convert.ToDecimal(txtLONTQty.Text.ToString());
|
|
wipItem.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
|
|
wipItem.MUSER = AppConfig.UserCode; ;
|
|
wipItem.MUSERName = AppConfig.UserName;
|
|
wipItem.WorkPoint = AppConfig.WorkPointCode;
|
|
|
|
list.Add(wipItem);
|
|
//wipItem.MCARDTYPE = simulation.EATTRIBUTE1;
|
|
//wipItem.RESCODE = simulation.RESCODE;
|
|
//wipItem.SEGCODE = simulationReport.SEGCODE;
|
|
//wipItem.SHIFTTYPECODE = "";
|
|
//wipItem.SSCODE = simulationReport.SSCODE;
|
|
//wipItem.MOCODE = simulation.MOCODE;
|
|
//wipItem.MODELCODE = simulation.MODELCODE;
|
|
//wipItem.DATECODE = luhaoCode;
|
|
//wipItem.BeginSHIFTCODE = simulationReport.SHIFTTYPECODE;
|
|
//wipItem.EndSHIFTCODE = simulationReport.SHIFTTYPECODE;
|
|
//wipItem.BeginTPCODE = "";
|
|
//wipItem.ENDTPCODE = "";
|
|
//wipItem.INVLOTNO = txtKeyPart.Text;
|
|
//wipItem.TRANSSTATUS = TransactionStatus.TransactionStatus_NO;
|
|
//wipItem.MCARDTYPE = MCardType.MCardType_INNO;
|
|
//wipItem.LOTSEQ = (int)simulation.LOTSEQ;
|
|
//新增 采集类型
|
|
//wipItem.ACTIONTYPE = (int)Enum.Parse(typeof(MaterialType), "CollectMaterial");
|
|
}
|
|
ICSDataCollectionBLL.CollectOPUP(list, "1", AppConfig.AppConnectString);
|
|
SetMessage("工序上料成功!", Color.Blue);
|
|
}
|
|
}
|
|
if (this.btnOPOption.Text == " 完工")
|
|
{
|
|
if (true)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
private void button1_Click_1(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(lotno))
|
|
{
|
|
ICSBaseSimpleCode.AppshowMessageBox("请先输入正确追踪单号!");
|
|
return;
|
|
}
|
|
FormICSPictureNew form = new FormICSPictureNew(this.lotno);
|
|
form.ShowDialog();
|
|
}
|
|
|
|
private void repositoryItemCheckEdit3_QueryValueByCheckState(object sender, DevExpress.XtraEditors.Controls.QueryValueByCheckStateEventArgs e)
|
|
{
|
|
int rowhandle = gridViewCC.FocusedRowHandle;
|
|
if (e.CheckState == CheckState.Checked)
|
|
{
|
|
|
|
gridViewCC.SetRowCellValue(rowhandle, CCOK, true);
|
|
gridViewCC.SetRowCellValue(rowhandle, CCNG, false);
|
|
}
|
|
else
|
|
{
|
|
gridViewCC.SetRowCellValue(rowhandle, CCOK, false);
|
|
}
|
|
#region
|
|
//try
|
|
//{
|
|
// if (gridViewCC.FocusedRowHandle < 0)
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// #region colS1
|
|
|
|
// int SNo = gridViewCC.FocusedRowHandle;
|
|
// int SNoCC = gridViewCC.RowCount;
|
|
|
|
// for (int i = SNo; i <= SNo; i++)
|
|
// {
|
|
// SendKeys.Send("{Down}");
|
|
// if (SNo == SNoCC - 1)
|
|
// {
|
|
// for (int j = 0; j <= SNoCC - 1; j++)
|
|
// {
|
|
// SendKeys.Send("{Up}");
|
|
// }
|
|
// SendKeys.Send("{RIGHT}");
|
|
// }
|
|
// bool istrue = false;
|
|
// for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
// {
|
|
// #region MyRegion
|
|
|
|
// Decimal _VALUEMAX = 0; Decimal _VALUEMIN = 0; Decimal _S1 = 0;
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMax) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString()))
|
|
// {
|
|
// _VALUEMAX = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMax).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colSetValueMin) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString()))
|
|
// {
|
|
// _VALUEMIN = Decimal.Parse(gridViewCC.GetRowCellValue(k, colSetValueMin).ToString());
|
|
// }
|
|
// }
|
|
// if (gridViewCC.GetRowCellValue(k, colCheckResult) != null)
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// _S1 = Decimal.Parse(gridViewCC.GetRowCellValue(k, colCheckResult).ToString());
|
|
// }
|
|
// }
|
|
|
|
|
|
// if ((_S1 < _VALUEMIN || _S1 > _VALUEMAX) && gridViewCC.FocusedColumn.Caption == "检验值" && !string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, colCheckResult).ToString()))
|
|
// {
|
|
// istrue = false;
|
|
// break;
|
|
// }
|
|
// else
|
|
// {
|
|
// istrue = true;
|
|
// }
|
|
|
|
// #endregion
|
|
// }
|
|
// if (istrue)
|
|
// {
|
|
// this.txtCCResult.Text = "OK";
|
|
// this.txtCCResult.BackColor = Color.Blue;
|
|
// }
|
|
// else
|
|
// {
|
|
// this.txtCCResult.Text = "NG";
|
|
// this.txtCCResult.BackColor = Color.Red;
|
|
// }
|
|
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// throw new Exception(ex.ToString());
|
|
//}
|
|
#endregion
|
|
|
|
|
|
#region
|
|
try
|
|
{
|
|
if (gridViewCC.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
#region colS1
|
|
|
|
int SNo = gridViewCC.FocusedRowHandle;
|
|
int SNoCC = gridViewCC.RowCount;
|
|
|
|
for (int i = SNo; i <= SNo; i++)
|
|
{
|
|
|
|
bool istrue = false;
|
|
for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
{
|
|
#region MyRegion
|
|
|
|
bool _S1 = false;
|
|
if (gridViewCC.GetRowCellValue(k, CCOK) != null)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, CCOK).ToString()))
|
|
{
|
|
string cc = gridViewCC.GetRowCellValue(k, CCOK).ToString();
|
|
if (gridViewCC.GetRowCellValue(k, CCOK).ToString() == "True" || (gridViewCC.GetRowCellValue(k, CCOK).ToString() == "False" && gridViewCC.GetRowCellValue(k, CCNG).ToString() == "False"))
|
|
{
|
|
_S1 = true;
|
|
}
|
|
else
|
|
_S1 = false;
|
|
}
|
|
}
|
|
|
|
if (_S1)
|
|
{
|
|
istrue = true;
|
|
}
|
|
else
|
|
{
|
|
istrue = false;
|
|
break;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
if (istrue)
|
|
{
|
|
this.txtCCResult.Text = "OK";
|
|
this.txtCCResult.BackColor = Color.Blue;
|
|
}
|
|
else
|
|
{
|
|
this.txtCCResult.Text = "NG";
|
|
this.txtCCResult.BackColor = Color.Red;
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.ToString());
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
private void repositoryItemCheckEdit4_QueryValueByCheckState(object sender, DevExpress.XtraEditors.Controls.QueryValueByCheckStateEventArgs e)
|
|
{
|
|
int rowhandle = gridViewCC.FocusedRowHandle;
|
|
if (e.CheckState == CheckState.Checked)
|
|
{
|
|
|
|
gridViewCC.SetRowCellValue(rowhandle, CCNG, true);
|
|
gridViewCC.SetRowCellValue(rowhandle, CCOK, false);
|
|
}
|
|
else
|
|
{
|
|
gridViewCC.SetRowCellValue(rowhandle, CCNG, false);
|
|
}
|
|
|
|
#region
|
|
try
|
|
{
|
|
if (gridViewCC.FocusedRowHandle < 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
#region colS1
|
|
|
|
int SNo = gridViewCC.FocusedRowHandle;
|
|
int SNoCC = gridViewCC.RowCount;
|
|
|
|
for (int i = SNo; i <= SNo; i++)
|
|
{
|
|
|
|
bool istrue = false;
|
|
for (int k = 0; k < gridViewCC.RowCount; k++)
|
|
{
|
|
#region MyRegion
|
|
|
|
bool _S1 = false;
|
|
if (gridViewCC.GetRowCellValue(k, CCOK) != null)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(gridViewCC.GetRowCellValue(k, CCOK).ToString()))
|
|
{
|
|
string cc = gridViewCC.GetRowCellValue(k, CCOK).ToString();
|
|
if (gridViewCC.GetRowCellValue(k, CCOK).ToString() == "True" || (gridViewCC.GetRowCellValue(k, CCOK).ToString() == "False" && gridViewCC.GetRowCellValue(k, CCNG).ToString() == "False"))
|
|
{
|
|
_S1 = true;
|
|
}
|
|
else
|
|
_S1 = false;
|
|
}
|
|
}
|
|
|
|
if (_S1)
|
|
{
|
|
istrue = true;
|
|
}
|
|
else
|
|
{
|
|
istrue = false;
|
|
break;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
if (istrue)
|
|
{
|
|
this.txtCCResult.Text = "OK";
|
|
this.txtCCResult.BackColor = Color.Blue;
|
|
}
|
|
else
|
|
{
|
|
this.txtCCResult.Text = "NG";
|
|
this.txtCCResult.BackColor = Color.Red;
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.ToString());
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
private void GetPLMCKDATA(string itemcode, string routecode, string opseq)
|
|
{
|
|
try
|
|
{
|
|
string url = @"http://172.16.12.155:8999/api/GetPLMCKDATA";
|
|
SearchPart Bills = new SearchPart();
|
|
Bills.opseq = opseq;
|
|
Bills.ItemCode = itemcode;
|
|
Bills.routecode = routecode;
|
|
string opcode = txtOPCode.Text.Trim();
|
|
string JsonData = JsonConvert.SerializeObject(Bills);
|
|
string CKDATA = PLMMap1(url, JsonData);
|
|
JObject jobject = JObject.Parse(CKDATA);
|
|
if (jobject["code"].ToString() == "200")
|
|
{
|
|
string data = jobject["data"].ToString();
|
|
|
|
List<Parts> part = new List<Parts>();
|
|
part = (List<Parts>)JsonConvert.DeserializeObject(data, typeof(List<Parts>));
|
|
|
|
List<ICSOQCCKGROUP> group = new List<ICSOQCCKGROUP>();
|
|
List<ICSOQCCKLIST> cklist = new List<ICSOQCCKLIST>();
|
|
List<string> RemoveID = new List<string>();
|
|
foreach (Parts p in part)
|
|
{
|
|
ICSOQCCKGROUP g = ICSOQCCKLISTBLL.isExits(p.objNo);
|
|
if (g == null)
|
|
{
|
|
g = new ICSOQCCKGROUP();
|
|
g.ID = AppConfig.GetGuid();
|
|
g.ISREF = "是";
|
|
g.MTIME = DateTime.Now;
|
|
g.MUSER = AppConfig.UserId;
|
|
g.MUSERName = AppConfig.UserName;
|
|
g.CKGROUP = AppConfig.GetSerialCode(AppConfig.AppConnectString, AppConfig.WorkPointCode, "ICSOQCCKGROUP", "CKGROUP", "A" + DateTime.Now.Year.ToString(), 3);
|
|
g.CKGROUPDESC = p.objNo.Split(',')[1];
|
|
g.WorkPoint = AppConfig.WorkPointCode;
|
|
g.CKGROUPDNAME = p.objNo.Split(',')[0];
|
|
group.Add(g);
|
|
}
|
|
ICSOQCCKLIST c = ICSOQCCKLISTBLL.IsExistCKLIST(p.objId);
|
|
if (c == null || (c != null && Convert.ToDateTime(c.EATTRIBUTE1) < Convert.ToDateTime(string.IsNullOrEmpty(p.mtimestr) ? p.ctimestr : p.mtimestr)))
|
|
{
|
|
c = new ICSOQCCKLIST();
|
|
c.ID = p.objId;
|
|
c.CKGROUPCode = g.CKGROUP;
|
|
c.UNIT = p.extra.DW;
|
|
c.WorkPoint = AppConfig.WorkPointCode;
|
|
c.SetValueMax = string.IsNullOrEmpty(p.extra.SX) ? 0 : Convert.ToDecimal(p.extra.SX);
|
|
c.SetValueMin = string.IsNullOrEmpty(p.extra.XX) ? 0 : Convert.ToDecimal(p.extra.XX);
|
|
c.MUSER = AppConfig.UserName;
|
|
c.MTIME = DateTime.Now;
|
|
c.ISREF = "是";
|
|
c.INVCode = p.extra.MPARTNO;
|
|
c.OPCode = opcode;
|
|
c.CKGROUPMETH = "工序检验";
|
|
c.CKGROUPATTR = p.extra.SX1;
|
|
c.GJ = p.extra.GJ;
|
|
c.JY1 = p.extra.JY1;
|
|
c.JY2 = p.extra.JY2;
|
|
c.PType = Convert.ToDecimal(p.extra.PTYPE);
|
|
c.StandValue = p.extra.NAME;
|
|
if (!string.IsNullOrEmpty(p.mtimestr))
|
|
c.EATTRIBUTE1 = p.mtimestr;
|
|
else
|
|
c.EATTRIBUTE1 = p.ctimestr;
|
|
|
|
cklist.Add(c);
|
|
}
|
|
|
|
RemoveID.Add(p.objId);
|
|
|
|
}
|
|
ICSOQCCKLISTBLL.AddGroupAndList(group, cklist, RemoveID, itemcode, opcode);
|
|
}
|
|
else
|
|
{
|
|
if (jobject["msg"].ToString() != "没有更多了")
|
|
throw new Exception(jobject["msg"].ToString());
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public class Parts
|
|
{
|
|
public string errcode { get; set; }
|
|
public string errmsg { get; set; }
|
|
public string objId { get; set; }
|
|
public string objNo { get; set; }
|
|
public string fname { get; set; }
|
|
public string suffix { get; set; }
|
|
public string hasAffine { get; set; }
|
|
public string name { get; set; }
|
|
public string fsize { get; set; }
|
|
public string fsizeStr { get; set; }
|
|
public string type { get; set; }
|
|
public string tablename { get; set; }
|
|
public string smemo { get; set; }
|
|
public string ctimestr { get; set; }
|
|
public string mtimestr { get; set; }
|
|
public string creator { get; set; }
|
|
public string modifier { get; set; }
|
|
public string ver { get; set; }
|
|
public string stimestr { get; set; }
|
|
public string etimestr { get; set; }
|
|
public Extra extra { get; set; }
|
|
public string searchText { get; set; }
|
|
}
|
|
|
|
public class Extra
|
|
{
|
|
public string PTYPE;
|
|
public string XX;
|
|
public string NAME;
|
|
public string SX;
|
|
public string DW;
|
|
public string JY2;
|
|
public string SX1;
|
|
public string GJ;
|
|
public string JY1;
|
|
public string GG;
|
|
public string SMEMO;
|
|
public string MPARTNO;
|
|
|
|
}
|
|
|
|
private void txtItemCode_TextChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void txtLotNo_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
|
|
{
|
|
if (txtUserCode.Text.Trim() == "" || txtEQPCode.Text.Trim() == "") {
|
|
ICSBaseSimpleCode.AppshowMessageBox("请先输入员工条码和设备!");
|
|
return;
|
|
}
|
|
string usercode = txtUserCode.Text.Trim();
|
|
string eqpcode = txtEQPCode.Text.Trim();
|
|
string username = txtUserName.Text.Trim();
|
|
string eqpname = txtMachineName.Text.Trim();
|
|
|
|
ButtonEdit btn = (ButtonEdit)sender;
|
|
string sql = @"select distinct a.LOTNO AS 产品跟踪单 from ICSMO2User a
|
|
left join ICSLOTONWIP b on a.LOTNO=b.LOTNO and a.OPCODE=b.OPCODE
|
|
where (b.ACTIONRESULT is null or ACTIONRESULT='COLLECT_BEGIN') and a.usercode='"+ txtUserCode.Text.Trim()+@"' and a.eqpcode='"+ txtEQPCode.Text.Trim()+@"' order By a.lotno desc
|
|
";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
FormDataRefer reForm = new FormDataRefer();
|
|
reForm.FormTitle = "产品跟踪单";
|
|
DataTable menuData = data;
|
|
reForm.DataSource = menuData;
|
|
reForm.MSelectFlag = false;
|
|
reForm.RowIndexWidth = 35;
|
|
reForm.HideCols.Add("ID");
|
|
reForm.FormWidth = 800;
|
|
reForm.FormHeight = 600;
|
|
if (reForm.ShowDialog() == DialogResult.OK)
|
|
{
|
|
DataTable retData = reForm.ReturnData;
|
|
foreach (DataRow dr in retData.Rows)
|
|
{
|
|
txtLotNo.Text = dr["产品跟踪单"].ToString();
|
|
|
|
}
|
|
txtLotNo_KeyPress(null, new KeyPressEventArgs(Convert.ToChar(Keys.Enter)));
|
|
txtUserCode.Text = usercode;
|
|
txtEQPCode.Text = eqpcode;
|
|
txtMachineName.Text = eqpname;
|
|
txtUserName.Text = username;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
private void txtOPCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(txtLotNo.Text.Trim())) {
|
|
ICSBaseSimpleCode.AppshowMessageBox("请先输入产品跟踪单!");
|
|
return;
|
|
}
|
|
|
|
ButtonEdit btn = (ButtonEdit)sender;
|
|
string sql = @"select DISTINCT a.OPCODE as 工序,b.opdesc as 名称 from ICSMO2User a left join icsop b on a.OPCODE=b.OPCODE WHERE LOTNO='"+txtLotNo.Text.Trim()+"' and a.usercode='"+txtUserCode.Text.Trim()+@"' and a.eqpcode='"+txtEQPCode.Text.Trim()+@"' ";
|
|
sql = string.Format(sql);
|
|
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
FormDataRefer reForm = new FormDataRefer();
|
|
reForm.FormTitle = "工序";
|
|
DataTable menuData = data;
|
|
reForm.DataSource = menuData;
|
|
reForm.MSelectFlag = false;
|
|
reForm.RowIndexWidth = 35;
|
|
reForm.HideCols.Add("ID");
|
|
reForm.FormWidth = 800;
|
|
reForm.FormHeight = 600;
|
|
if (reForm.ShowDialog() == DialogResult.OK)
|
|
{
|
|
DataTable retData = reForm.ReturnData;
|
|
foreach (DataRow dr in retData.Rows)
|
|
{
|
|
txtOPCode.Text = dr["工序"].ToString();
|
|
|
|
}
|
|
txtOPCode_KeyPress(null, new KeyPressEventArgs(Convert.ToChar(Keys.Enter)));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private string GetLotNoOp(string lotno) {
|
|
|
|
string sql = @"select A.OPCODE,B.OPSEQ,a.CollectStatus,a.LOTNO from ICSLOTSIMULATION A
|
|
LEFT JOIN ICSITEMROUTE2OPLot B ON A.LOTNO = B.LotNo and a.OPCODE = b.OPCODE where a.lotno='"+lotno+"'";
|
|
DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
|
|
sql = "select opcode,opseq from ICSITEMROUTE2OPLot where lotno='"+lotno+"' order by opseq";
|
|
DataTable Optable= DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
return Optable.Rows[0]["opcode"].ToString();
|
|
|
|
}
|
|
else {
|
|
if (table.Rows[0]["CollectStatus"].ToString() == "COLLECT_BEGIN")
|
|
{
|
|
return table.Rows[0]["OPCODE"].ToString();
|
|
}
|
|
else if (table.Rows[0]["CollectStatus"].ToString() == "COLLECT_END")
|
|
{
|
|
//判断是否检验合格
|
|
|
|
int opseq = Convert.ToInt32(table.Rows[0]["OPSEQ"].ToString());
|
|
int opseq_ = opseq + 10;
|
|
if (CheckIsOK(opseq))
|
|
{
|
|
|
|
string opcode = Optable.AsEnumerable().Where(a => a["opseq"].ToString() == opseq_.ToString()).Select(a => a["opcode"].ToString()).FirstOrDefault();
|
|
if (opcode != null)
|
|
{
|
|
return opcode;
|
|
}
|
|
else
|
|
return "";
|
|
|
|
|
|
}
|
|
else
|
|
return "";
|
|
|
|
}
|
|
else
|
|
return "";
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|