北京安通林JIS系统
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.
 
 
 

239 lines
8.3 KiB

using Gm_WMS.DataAccess.DataService;
using Stone.Common;
using Stone.Entity;
using Stone.WinBiz.Preordering;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Stone.WinModule.Preordering
{
public partial class frmOnLineScan : Form
{
#region 初始化
private HtmlDocument doc = null;
public frmOnLineScan()
{
InitializeComponent();
}
private void frmPreordering_Load(object sender, EventArgs e)
{
this.webBrowser1.Navigate(Application.StartupPath + "\\html\\上线扫描.html");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
try
{
doc = webBrowser1.Document;
timer2.Enabled = true;
ShowData();
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
#endregion
#region 事件
private void txtBarCode_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
ScanBarCode();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (!this.txtBarCode.Focused)
{
this.txtBarCode.Focus();
this.txtBarCode.SelectAll();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
try
{
ShowData();
}
catch (Exception ex)
{
this.lblMsg.Text = ex.Message;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
#endregion
#region 自定义方法
private void ScanBarCode()
{
try
{
this.lblMsg.Text = "";
string BarCode = this.txtBarCode.Text.Trim().ToUpper();
if (BarCode == "") throw new Exception("条码不能为空");
ScanBarCode(BarCode);
}
catch (Exception ex)
{
this.lblMsg.Text = ex.Message;
}
finally
{
this.txtBarCode.Focus();
this.txtBarCode.SelectAll();
}
}
private void ScanBarCode(string BarCode)
{
LocalDBService db = null;
try
{
db = new LocalDBService();
db.BeginTrans();
Entity_t_JIS_Assemble t_JIS_Assemble = new Entity_t_JIS_Assemble(db);
Entity_t_JIS_List t_JIS_List = new Entity_t_JIS_List();
Entity_t_StationLine t_StationLine = new Entity_t_StationLine(db);
Entity_t_LED t_LED = new Entity_t_LED(db);
DataTable dtData = t_JIS_Assemble.GetData($"[productionNumber]='{BarCode}' and [IsOnline]=0").Tables[0];
if (Convert.ToInt32(dtData.Rows[0]["IsCheck"]) == 0)
throw new Exception($"{BarCode} 未做预排序扫描");
if (Convert.ToInt32(dtData.Rows[0]["IsOnline"]) == 1)
throw new Exception($"{BarCode} 重复上线扫描");
t_JIS_Assemble.Edit("[IsOnline]=1, [OnlineTime]=getdate()", $"[ID]='{dtData.Rows[0]["ID"]}'");
int StationCode = 0;
if (t_StationLine.GetData("[StationCode]=1").Tables[0].Rows.Count == 0)
{
StationCode = 1;
}
DataTable dtList = t_JIS_List.GetData("[ItemNumber]", "[productionNumber]='" + dtData.Rows[0]["productionNumber"].ToString() + "'", "[ID] asc").Tables[0];
string itemNumbers = GetItems(dtList);
//写数据到生成线上去
DataRow drStationLine = t_StationLine.Table.NewRow();
drStationLine["JisID"] = dtData.Rows[0]["ID"].ToString();
drStationLine["StationCode"] = StationCode;
drStationLine["CarModelCode"] = dtData.Rows[0]["CarModelCode"].ToString();
drStationLine["productionNumber"] = dtData.Rows[0]["productionNumber"].ToString();
drStationLine["itemNumber"] = dtData.Rows[0]["itemNumber"].ToString();
drStationLine["description"] = dtData.Rows[0]["description"].ToString();
drStationLine["sequenceNumber"] = dtData.Rows[0]["sequenceNumber"].ToString();
drStationLine["assemblyDate"] = dtData.Rows[0]["assemblyDate"];
drStationLine["BillNo"] = dtData.Rows[0]["BillNo"].ToString();
drStationLine["vehicleModelCode"] = dtData.Rows[0]["vehicleModelCode"].ToString();
drStationLine["lineStationCode_aliasName"] = dtData.Rows[0]["lineStationCode_aliasName"].ToString();
drStationLine["partType"] = dtData.Rows[0]["partType"].ToString();
drStationLine["ColorName"] = dtData.Rows[0]["ColorName"].ToString();
drStationLine["BarCode"] = dtData.Rows[0]["BarCode"].ToString();
drStationLine["LUS"] = itemNumbers.Replace("'", "");
drStationLine["IsInsert"] = dtData.Rows[0]["IsInsert"].ToString();
t_StationLine.Add(drStationLine);
//写数据到亮灯
DataRow drLED = t_LED.Table.NewRow();
drLED["productionNumber"] = dtData.Rows[0]["productionNumber"].ToString();
drLED["partType"] = dtData.Rows[0]["partType"].ToString();
drLED["itemNumber"] = dtData.Rows[0]["itemNumber"].ToString();
drLED["description"] = dtData.Rows[0]["description"].ToString();
drLED["ColorName"] = dtData.Rows[0]["ColorName"].ToString();
drLED["LUS"] = itemNumbers.Replace("'", "");
drLED["CarModelCode"] = dtData.Rows[0]["CarModelCode"].ToString();
t_LED.Add(drLED);
db.Commit();
}
catch (Exception ex)
{
if (db != null) db.Rollback();
throw ex;
}
finally
{
if (db != null) db.EndTrans();
}
ShowData();
}
private void ShowData()
{
Entity_t_JIS_Assemble t_JIS_Assemble = new Entity_t_JIS_Assemble();
DataSet dsData = t_JIS_Assemble.GetData("top 4 *", "[IsCheck]=1 and [IsOnline]=0", "[BillNo] asc, [Sort] asc"); //显示前4个
for (int i = 0; i < 4; i++)
{
doc.GetElementById("lbl_sequenceNumber_" + (i + 1)).InnerHtml = "&nbsp;";
doc.GetElementById("lbl_description_" + (i + 1)).InnerHtml = "&nbsp;";
doc.GetElementById("lbl_ColorName_" + (i + 1)).InnerHtml = "&nbsp;";
doc.GetElementById("lbl_assemblyDate_" + (i + 1)).InnerHtml = "&nbsp;";
doc.GetElementById("lbl_productionNumber_" + (i + 1)).InnerHtml = "&nbsp;";
}
for (int i = 0; i < dsData.Tables[0].Rows.Count; i++)
{
doc.GetElementById("lbl_sequenceNumber_" + (i + 1)).InnerHtml = dsData.Tables[0].Rows[i]["BillNo"].ToString() + " " + dsData.Tables[0].Rows[i]["Sort"].ToString();
doc.GetElementById("lbl_description_" + (i + 1)).InnerHtml = dsData.Tables[0].Rows[i]["description"].ToString();
doc.GetElementById("lbl_ColorName_" + (i + 1)).InnerHtml = dsData.Tables[0].Rows[i]["ColorName"].ToString();
doc.GetElementById("lbl_assemblyDate_" + (i + 1)).InnerHtml = dsData.Tables[0].Rows[i]["assemblyDate"].ToString();
doc.GetElementById("lbl_productionNumber_" + (i + 1)).InnerHtml = dsData.Tables[0].Rows[i]["productionNumber"].ToString();
}
}
public string GetItems(DataTable dtList)
{
string ret = "";
foreach (DataRow drData in dtList.Rows)
{
ret += "'" + drData["itemNumber"].ToString() + "',";
}
if (ret != "") ret = ret.Substring(0, ret.Length - 1);
return ret;
}
#endregion
}
}