You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1118 lines
43 KiB
C#

using BarTenderPrint;
using KeyBord;
using Mesnac.Codd.Session;
using Mesnac.Compressor.Data;
using Mesnac.HighWay.ATC.Common;
using Mesnac.HighWay.ATC.SqlSugar;
using Mesnac.HighWay.ATC.SqlSugar.serviceImpl;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
using Mesnac.Compressor.Entity;
using static FrmPrint.Login;
using static log4net.Appender.RollingFileAppender;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;
using System.Collections;
2 months ago
using System.Runtime.InteropServices;
using System.Reflection.Emit;
namespace FrmPrint
{
public partial class Form1 : Form
{
2 months ago
[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
protected DbHandler db = new DbHandler();
DbHelper dbHelper = null;
SerialEquip Com;
string Port = System.Configuration.ConfigurationManager.AppSettings["Com"];
public delegate void Transit(string data);
PrintManager printManager = new PrintManager();
public string UserName = "用户名";
private int timeInvel =int.Parse(System.Configuration.ConfigurationManager.AppSettings["LogOutTime"])*1000;
private static INIFile iNIFile = new INIFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "App.InI");
private List<TBDProductInfo> productInfos;
List<string> listOnit = new List<string>();
public Form1()
{
InitializeComponent();
if (!timer1.Enabled)
{
timer1.Interval = timeInvel;
timer1.Enabled = true;
}
CheckForIllegalCrossThreadCalls = false;
printManager.RefreshShowMessageEvent += ShowMessage;
2 months ago
//BindClass();
//bindMachine();
getMachine();
//initUsbScanBarCode();
InitPort();
}
private void Form1_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
cb_machine.DropDownStyle = ComboBoxStyle.DropDown;
2 months ago
DateTime startTime = DateTime.Today.AddHours(1);
// 结束时间设置为 23:00:00
DateTime endTime = DateTime.Today.AddHours(23);
// 从开始时间开始,每次增加 1 小时,直到达到结束时间
for (DateTime currentTime = startTime; currentTime <= endTime; currentTime = currentTime.AddHours(1))
{
// 将当前时间格式化为 HH:mm:ss 并添加到 ComboBox 中
comboBox1.Items.Add(currentTime.ToString("HH:mm:ss"));
comboBox2.Items.Add(currentTime.ToString("HH:mm:ss"));
}
for (char i = 'A'; i <= 'Z'; i++)
{
comboBox3.Items.Add(i);
}
if (iNIFile.IniReadValue("SystemConfig", "UserName") != "用户名")
{
iNIFile.IniWriteValue("SystemConfig", "UserName", "用户名");
}
if (iNIFile.IniReadValue("SystemConfig", "PrintState") != "2")
{
iNIFile.IniWriteValue("SystemConfig", "PrintState", "2");
}
2 months ago
ShowMessage("系统启动成功!");
//listener.Start();
//加载默认时间
lb_UserName.Text = UserName;
lb_UserName.ForeColor = Color.Red;
LoadTime();
2 months ago
//dateTimePicker1.Visible = false;
//dateTimePicker1.Visible = true;
//dateTimePicker2.Visible = false;
//dateTimePicker2.Visible = true;
//comboBox1.Visible = false;
//comboBox1.Visible = true;
//comboBox2.Visible = false;
//comboBox2.Visible = true;
}
public void ShowMessage(string strMessage)
{
try
{
2 months ago
LogHelper.Info(strMessage);
if (this.lst_OperInfo.Items.Count > 100)
{
this.lst_OperInfo.Items.Clear();
}
bool scroll = false;
if (this.lst_OperInfo.TopIndex == this.lst_OperInfo.Items.Count - (int)(this.lst_OperInfo.Height / this.lst_OperInfo.ItemHeight))
scroll = true;
this.lst_OperInfo.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + strMessage);
if (scroll)
this.lst_OperInfo.TopIndex = this.lst_OperInfo.Items.Count - (int)(this.lst_OperInfo.Height / this.lst_OperInfo.ItemHeight);
string tempstr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ": " + strMessage + "\r\n";
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}
}
public void InitPort()
{
Com = new SerialEquip(Port);
Com.OpenCom(null);
Com.SerialData += Receive;
}
public void Receive(string Data)
{
try
{
ShowMessage(" "+ Data+"条码扫描成功!");
2 months ago
Thread.Sleep(1000);
PrintPrepare(Data.Trim());
}
catch(Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}
}
private async void PrintPrepare(string Data)
{
if (string.IsNullOrEmpty(Data))
{
return;
}
if (Data.Length != 20)
{
2 months ago
if (Data.Length != 11 && Data.Length != 19)
{
ShowMessage("请确认条码是否正确!");
return;
}
}
//提示换班
//var date = DateTime.Now;
//DateTime dt1 = DateTime.Parse(time2.Text + " "+ time4.Text);
//DateTime dt2 = DateTime.Parse(time1.Text + " " + time3.Text);
2 months ago
if (comboBox3.Text == "")
{
ShowMessage("请选择班组!");
return;
}
if (cb_machine.Text == "")
{
ShowMessage("请选择机种!");
return;
}
//if (date >= dt1)
//{
// if (radioButton1.Checked)
// {
// ShowMessage("请切换班次!白班(08:00-20:00)夜班(20:00-08:00)");
// return;
// }
//}
//else
//{
// if (date < dt2 && date >= dt1)
// {
// if (radioButton2.Checked)
// {
// ShowMessage("请切换班次!白班(08:00-20:00)夜班(20:00-08:00)");
// return;
// }
// }
//}
Reresh(Data.Replace("\r", ""));
if (iNIFile.IniReadValue("SystemConfig", "PrintState") == "1")
{
ShowMessage("上一个铭牌正在打印中,等待打印完成重新扫码...");
return;
}
#region 打印代码暂时屏蔽
//根据条码查询是否到当前工位
2 months ago
bool iFlag = false;
//豪森工位合格查询
//if (System.Configuration.ConfigurationManager.AppSettings["SqlString"].ToString().Contains("HS"))
//{
2 months ago
// iFlag = GetStationNGBySemiBarCode(Data.Replace("\r", ""));
//}
2 months ago
////卓樱工位合格查询
//if (System.Configuration.ConfigurationManager.AppSettings["SqlString"].ToString().Contains("JYD_shengjie"))
//{
2 months ago
// iFlag = await SelectPrintStation(Data.Replace("\r", ""));
//}
2 months ago
//581工位合格查询
if (System.Configuration.ConfigurationManager.AppSettings["SqlString"].ToString().Contains("581"))
{
//新增查询是否存在绑定信息
bool _bindFlag = await SelectBindInfo(Data.Replace("\r", ""));
if (_bindFlag)
{
return;
}
//ShowMessage("正在查询产品是否合格...");
iFlag = GetStationNGByProductCode(Data.Replace("\r", ""));
}
if (!iFlag)
{
ShowMessage("查询产品结果合格.");
}
else
{
return;
}
//ShowMessage("正在查询产品结果是否合格...");
//查询结果是否合格
Print pt = new Print();
pt.barcode = Data;
//查询当前机种信息
List<TBDProductInfo> TBDProductInfo = await geTbdProductInfos(cb_machine.Text);
pt.Machine =int.Parse(TBDProductInfo[0].ProductID);
2 months ago
int num = 4;
if (!string.IsNullOrEmpty(TBDProductInfo[0].ToolCarNo.Trim()))
{
num = int.Parse(TBDProductInfo[0].ToolCarNo.Trim());
}
else
{
2 months ago
ShowMessage("序列号位数有误,请检查机种信息...");
}
2 months ago
//add by 2024-09-02 新增手动切换班次业务逻辑
pt.Shift = comboBox3.Text;
//if (radioButton1.Checked)
//{
// pt.Shift = "A";
//pt.starttime = time1.Text + " " + time3.Text;
//int datetime = Convert.ToInt32(DateTime.Now.Hour.ToString());
//if (datetime >= 8 && datetime < 20)
//{
// pt.endtime = time2.Text + " " + DateTime.Now.ToString("HH:mm:ss");
//}
//else
//{
// pt.endtime = DateTime.Now.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
//}
//}
//else if (radioButton2.Checked)
//{
//pt.Shift = "B";
//pt.starttime = time1.Text + " " + time3.Text;
//int datetime = Convert.ToInt32(DateTime.Now.Hour.ToString());
//if (datetime >= 0 && datetime < 8)
//{
// pt.endtime = time2.Text + " " + DateTime.Now.ToString("HH:mm:ss");
2 months ago
//}
//else
//{
// pt.endtime = DateTime.Now.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
//}
//}
//else
//{
// pt.Shift = "C";
//}
pt.starttime = dateTimePicker1.Text + " " + comboBox1.Text;
pt.endtime = dateTimePicker2.Text + " " + comboBox2.Text;
if (iNIFile.IniReadValue("SystemConfig", "UserName") != "管理员")
{
LogHelper.Info("查询" + Data + "产品序列号是否存在相同记录!");
var iflag = await SelectSameBarCode(pt.barcode, pt.Shift, pt.Machine.ToString(), pt.starttime,
pt.endtime);
if (!iflag)
{
return;
}
else
{
//先根据班次时间查询最大序列号,如果不存在则从0001生成
2 months ago
//List<baseBarcodePrintInfo> baseBarcodePrintInfo = await printManager.SelectPrintInfoAsync("",pt.Shift, pt.Machine.ToString(), pt.starttime, pt.endtime);
//改为存储过程查询
var max = SelectSerialNo(pt.Shift,pt.Machine.ToString(), pt.starttime, pt.endtime);
if (!string.IsNullOrEmpty(max))
{
//查询最大序列号生成
ShowMessage("查询当前最大序列号" + max);
2 months ago
pt.Serialnum = Convert.ToInt32(Convert.ToInt32(max.Substring(max.Length - num, num)) + 1).ToString().PadLeft(num, '0');
ShowMessage("生成新序列号" + pt.Serialnum);
}
else
{
//序列号0001
2 months ago
pt.Serialnum = "1".PadLeft(num, '0');
ShowMessage("生成新序列号" + pt.Serialnum);
}
2 months ago
//if (baseBarcodePrintInfo != null && baseBarcodePrintInfo.Count > 0)
//{
// //查询最大序列号生成
// var max = baseBarcodePrintInfo.Max(x => x.SerialNo);
// ShowMessage("查询当前最大序列号" + max);
// pt.Serialnum = Convert.ToInt32(Convert.ToInt32(max.Substring(max.Length - num, num)) + 1).ToString().PadLeft(num, '0');
// ShowMessage("生成新序列号" + pt.Serialnum);
//}
//else
//{
// //序列号0001
// pt.Serialnum = "1".PadLeft(num, '0');
// ShowMessage("生成新序列号" + pt.Serialnum);
//}
}
}
//管理员补码
else
{
ShowMessage("补码功能开启,查询到当前用户名管理员");
2 months ago
List<baseBarcodePrintInfo> baseBarcodePrintInfo = await printManager.SelectPrintInfoAsync("", pt.Shift, pt.Machine.ToString(), pt.starttime,
pt.endtime);
if (baseBarcodePrintInfo != null && baseBarcodePrintInfo.Count > 0)
{
//查询最大序列号生成
var max = baseBarcodePrintInfo.Max(x => x.SerialNo);
ShowMessage("查询当前最大序列号" + max);
2 months ago
pt.Serialnum = Convert.ToInt32(Convert.ToInt32(max.Substring(max.Length - num, num)) + 1).ToString().PadLeft(num, '0');
pt.isRestart = 1;
ShowMessage("生成新序列号" + pt.Serialnum);
}
else
{
//序列号0001
2 months ago
pt.Serialnum = "1".PadLeft(num, '0');
pt.isRestart = 1;
ShowMessage("生成新序列号" + pt.Serialnum);
}
}
//Print(pt);
ThreadPool.QueueUserWorkItem(p =>
{
Print(pt, TBDProductInfo);
});
//ThreadPool.QueueUserWorkItem(new WaitCallback(Print), pt, baseBarcodePrintInfo);
#endregion
}
2 months ago
private async Task<bool> SelectBindInfo(string ProductBarcode)
{
bool iFlag = false;
try
{
Expression<Func<TSYTraceState, bool>> exp = s1 => true;
exp = exp.And(s1 => s1.ProductBarcode == ProductBarcode);
Expression<Func<TSYTraceState, object>> order = (x) => x.BeginTime;
List<TSYTraceState> MaterialInfoList = await new BaseServices<TSYTraceState>().Query(exp, order, true);
if (MaterialInfoList != null && MaterialInfoList.Count > 0)
{
if (string.IsNullOrEmpty(MaterialInfoList[0].SemiBarcode2))
{
ShowMessage(ProductBarcode + "未绑定控制器码!");
iFlag = true;
return iFlag;
}
if (string.IsNullOrEmpty(MaterialInfoList[0].SemiBarcode_A))
{
ShowMessage(ProductBarcode + "未绑定前盖码!");
iFlag = true;
return iFlag;
}
if (string.IsNullOrEmpty(MaterialInfoList[0].SemiBarcode_B))
{
ShowMessage(ProductBarcode + "未绑定静盘码!");
iFlag = true;
return iFlag;
}
if (string.IsNullOrEmpty(MaterialInfoList[0].SemiBarcode_C))
{
ShowMessage(ProductBarcode + "未绑定后盖码!");
iFlag = true;
return iFlag;
}
}
return iFlag;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return iFlag;
}
}
private async Task<bool> SelectPrintStation(string ProductBarcode)
{
bool iFlag = false;
try
{
Expression<Func<TSYTraceState, bool>> exp = s1 => true;
exp = exp.And(s1 => s1.ProductBarcode == ProductBarcode);
Expression<Func<TSYTraceState, object>> order = (x) => x.BeginTime;
List<TSYTraceState> MaterialInfoList = await new BaseServices<TSYTraceState>().Query(exp, order, true);
if (MaterialInfoList != null && MaterialInfoList.Count > 0)
{
var TSYTraceState = MaterialInfoList.OrderByDescending(x => x.BeginTime).FirstOrDefault();
if (TSYTraceState.CurrentStationID == "33")
{
2 months ago
iFlag = false;
return iFlag;
}
else
{
ShowMessage(ProductBarcode + "上工位未完成,查询产品未到达条码打印工位!");
2 months ago
iFlag = true;
return iFlag;
}
}
else
{
ShowMessage(ProductBarcode + "上工位未完成,查询产品未到达条码打印工位!");
2 months ago
iFlag = true;
return iFlag;
}
}
catch (Exception ex)
{
return iFlag;
}
}
public async Task<bool> SelectBYStationAsync(string ProductBarcode)
{
bool bflag = false;
try
{
Expression<Func<TRPStationParaB160, bool>> exp = s1 => true;
exp = exp.And(s1 => s1.ScanBarcode == ProductBarcode);
List<TRPStationParaB160> MaterialInfoList = await new BaseServices<TRPStationParaB160>().Query(exp);
if (MaterialInfoList != null && MaterialInfoList.Count > 0)
{
bflag = true;
}
else
{
ShowMessage(ProductBarcode + "上工位未完成!");
bflag = false;
}
return bflag;
}
catch (Exception ex)
{
return bflag;
}
}
/// <summary>
/// 查询工位合格信息
/// </summary>
/// <param name="SemiBarCode"></param>
/// <returns></returns>
public bool GetStationNGBySemiBarCode(string ProductBarcode)
{
bool iFlag = false;
try
{
2 months ago
List<StationQualityInfo> selectAllStation = SaveBarCode(ProductBarcode);
2 months ago
foreach (var VARIABLE in selectAllStation)
{
if (VARIABLE.TableName == "T_RP_StationPara_B130_1" && VARIABLE.State == "1")
{
selectAllStation.RemoveAll(x => x.TableName == "T_RP_StationPara_B130_2");
break;
}
else if (VARIABLE.TableName == "T_RP_StationPara_B130_2" && VARIABLE.State == "1")
{
selectAllStation.RemoveAll(x => x.TableName == "T_RP_StationPara_B130_1");
break;
}
}
if (selectAllStation != null || selectAllStation.Count > 0)
{
for (int i = 0; i < selectAllStation.Count; i++)
{
2 months ago
if (selectAllStation[i].State != "1")
{
2 months ago
iFlag = true;
ShowMessage(selectAllStation[i].StationName + "数据NG");
return iFlag;
}
2 months ago
}
//selectAllStation = selectAllStation.FindAll(x => x.State == "2");
}
return iFlag;
}
catch (Exception ex)
{
return iFlag;
}
}
public bool GetStationNGByProductCode(string ProductBarcode)
{
bool iFlag = false;
try
{
2 months ago
List<StationQualityInfo> selectAllStation = SaveBarCode(ProductBarcode,"270");
if (selectAllStation != null || selectAllStation.Count > 0)
{
for (int i = 0; i < selectAllStation.Count; i++)
{
if (selectAllStation[i].State != "1")
{
2 months ago
iFlag = true;
ShowMessage(selectAllStation[i].StationName + "数据NG");
return iFlag;
}
}
2 months ago
}
return iFlag;
}
catch (Exception ex)
{
return iFlag;
}
2 months ago
}
2 months ago
public string SelectSerialNo(string ShiftID, string MachineID,string starttime,string endtime)
{
try
{
string SerialNo = "";
SugarParameter[] pars = new BaseServices<StationQualityInfo>().GetParameters(new { ShiftID = ShiftID, MachineID = MachineID, starttime= starttime,endtime = endtime });
var dt2 = new BaseServices<StationQualityInfo>().UseStoredProcedure("SP_Pro_GetNewSerialNO ", pars);
if (dt2 != null && dt2.Rows.Count > 0)
{
SerialNo = RowValue(dt2.Rows[0], "SerialNo", String.Empty);
}
return SerialNo;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return null;
}
}
public List<StationQualityInfo> SaveBarCode(string P_Bar_Code)
{
List<StationQualityInfo> stationQualityList = null;
try
{
SugarParameter[] pars = new BaseServices<StationQualityInfo>().GetParameters(new { BarCode = P_Bar_Code });
2 months ago
var dt2 = new BaseServices<StationQualityInfo>().UseStoredProcedure("pro_AllProductionQualityInfocopy", pars);
if (dt2 != null && dt2.Rows.Count > 0)
{
stationQualityList = new List<StationQualityInfo>();
StationQualityInfo stationQualityInfo = null;
foreach (DataRow row in dt2.Rows)
{
stationQualityInfo = new StationQualityInfo();
stationQualityInfo.StationName = RowValue(row, "StationName", String.Empty);
stationQualityInfo.TableName = RowValue(row, "TableName", String.Empty);
stationQualityInfo.State = RowValue(row, "State", String.Empty);
stationQualityList.Add(stationQualityInfo);
}
}
return stationQualityList;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return stationQualityList;
}
}
2 months ago
public List<StationQualityInfo> SaveBarCode(string P_Bar_Code,string StationCode)
{
List<StationQualityInfo> stationQualityList = null;
try
{
SugarParameter[] pars = new BaseServices<StationQualityInfo>().GetParameters(new { BarCode = P_Bar_Code, StationCode = StationCode });
var dt2 = new BaseServices<StationQualityInfo>().UseStoredProcedure("pro_AllProductionQualityInfo", pars);
if (dt2 != null && dt2.Rows.Count > 0)
{
stationQualityList = new List<StationQualityInfo>();
StationQualityInfo stationQualityInfo = null;
foreach (DataRow row in dt2.Rows)
{
stationQualityInfo = new StationQualityInfo();
stationQualityInfo.StationName = RowValue(row, "StationName", String.Empty);
stationQualityInfo.TableName = RowValue(row, "TableName", String.Empty);
stationQualityInfo.State = RowValue(row, "State", String.Empty);
stationQualityList.Add(stationQualityInfo);
}
}
return stationQualityList;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return stationQualityList;
}
}
public static string RowValue(DataRow dr, string field, string defaultValue)
{
if (dr.Table.Columns.Contains(field))
{
if (dr[field] != null && dr[field] != DBNull.Value)
{
return dr[field].ToString().Trim();
}
}
else
{
ICSharpCode.Core.LoggingService.Error("DataTable中不存在[" + field + "]列!");
}
return defaultValue;
}
/// <summary>
/// 更新barcode
/// </summary>
/// <param name="barcode"></param>
private void Reresh(string barcode)
{
if (this.InvokeRequired)
{
this.Invoke(new Transit(Reresh), barcode);
return;
}
this.txt_barcode.Text = barcode.ToString();
}
private async Task getMachine()
{
try
{
productInfos = await geTbdProductInfos("");
foreach (var item in productInfos)//数据库中获取的原始数据
{
listOnit.Add(item.ProductName);//第一列是名称
}
this.cb_machine.Items.AddRange(listOnit.ToArray());
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
private async Task<List<TBDProductInfo>> geTbdProductInfos(string ProductName)
{
try
{
Expression<Func<TBDProductInfo, bool>> exp = (TBDProductInfo s1) => true;
if (ProductName == "")
{
exp = exp.And((TBDProductInfo s1) => s1.ProductName != "");
}
else
{
exp = exp.And((TBDProductInfo s1) => s1.ProductName == ProductName);
}
productInfos = await new BaseServices<TBDProductInfo>().Query(exp);
return productInfos;
}
catch (Exception ex)
{
Console.WriteLine(ex);
return null;
}
}
public DataTable GetProductList(string ProductID)
{
DataTable result = null;
try
{
Expression<Func<TBDProductInfo, bool>> exp = (TBDProductInfo s1) => true;
if (ProductID == "")
{
exp = exp.And((TBDProductInfo s1) => s1.ProductID != "");
}
else
{
exp = exp.And((TBDProductInfo s1) => s1.ProductID == ProductID);
}
result = new BaseServices<TBDProductInfo>().QueryDatatable(exp);
return result;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return result;
}
}
private void Print(object print, List<TBDProductInfo> baseBarcodePrintInfo)
{
lock (string.Empty)
{
//判断前工位是否全部合格
var pt = print as Print;
if(pt==null)
{
return;
}
iNIFile.IniWriteValue("SystemConfig", "PrintState", "1");
printManager.Print(pt, baseBarcodePrintInfo);
}
}
private async Task<bool> SelectSameBarCode(String BarCode, string ShiftID, string ProductID, string starttime, string endtime)
{
bool iflag = false;
try
{
List<baseBarcodePrintInfo> baseBarcodePrintInfos = await printManager.SelectPrintInfoAsync(BarCode, ShiftID, ProductID.ToString(), starttime, endtime);
if (baseBarcodePrintInfos != null && baseBarcodePrintInfos.Count > 0)
{
foreach (var item in baseBarcodePrintInfos)
{
ShowMessage("查询" + BarCode + "存在历史记录,序列号:" + item.SerialNo);
LogHelper.Info("查询" + BarCode + "存在历史记录,序列号:" + item.SerialNo);
return false;
}
}
else
{
iflag = true;
}
return iflag;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
return iflag;
}
}
public void BindClass()
{
DataTable dt = new DataTable();
dt.Columns.Add("key", typeof(string));
dt.Columns.Add("value", typeof(string));
DataRow dr = dt.NewRow();
dr[0] = "01";
dr[1] = "早班";
dt.Rows.Add(dr);
DataRow dr2 = dt.NewRow();
dr2[0] = "02";
dr2[1] = "中班";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3[0] = "03";
dr3[1] = "晚班";
dt.Rows.Add(dr3);
2 months ago
//this.cb_shift.DataSource = dt;
//this.cb_shift.DisplayMember = "value";
//this.cb_shift.ValueMember = "key";
}
private void btn_close_Click(object sender, EventArgs e)
{
this.Com.Comm.Close();
this.Close();
}
private void btn_print_Click(object sender, EventArgs e)
{
//密码权限
2 months ago
if (btn_print.Text == "补 印")
{
Login login = new Login(this);
login.ChangeText += new ChangeTextHandler(Change_Text);
login.ShowDialog();
}
if (btn_print.Text == "取消补印")
{
btn_print.Text = "补 印";
}
}
2 months ago
private void Change_Text(string str)
{
if (iNIFile.IniReadValue("SystemConfig", "UserName") != str)
{
iNIFile.IniWriteValue("SystemConfig", "UserName", str);
}
lb_UserName.Text = str;
UserName = str;
lb_UserName.ForeColor = Color.LightGreen;
}
private void LoadTime()
{
2 months ago
//int datetime = Convert.ToInt32(DateTime.Now.Hour.ToString());
//if (datetime >= 8 && datetime < 20)
//{
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "08:00:00";
// time2.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time4.Text = "20:00:00";
// this.radioButton1.Checked = true;
//}
//else if (datetime >= 0 && datetime < 8)
//{
// time1.Text = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
// time3.Text = "20:00:00";
// time2.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time4.Text = "08:00:00";
// this.radioButton2.Checked = true;
//}
//else
//{
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "20:00:00";
// time2.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
// time4.Text = "08:00:00";
// this.radioButton2.Checked = true;
//}
2 months ago
//this.radioButton1.Checked = true;
// 控件即将获得焦点时将焦点转移到button1
txt_barcode.Focus();
dateTimePicker1.Text = DateTime.Now.ToString("yyyy-MM-dd");
dateTimePicker2.Text = DateTime.Now.ToString("yyyy-MM-dd");
comboBox1.SelectedIndex = 7;
comboBox2.SelectedIndex = 19;
}
2 months ago
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
2 months ago
LogHelper.Info("程序退出!");
this.Com.Comm.Close();
//System.Environment.Exit(System.Environment.ExitCode);
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}
finally
{
this.Dispose();
this.Close();
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
2 months ago
//if (radioButton2.Checked == true)
//{
// int datetime = Convert.ToInt32(DateTime.Now.Hour.ToString());
// if (datetime >= 8 && datetime < 20)
// {
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "08:00:00";
// time2.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time4.Text = "20:00:00";
// }
// else if (datetime >= 0 && datetime < 8)
// {
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "20:00:00";
// time2.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
// time4.Text = "08:00:00";
// }
// else
// {
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "20:00:00";
// time2.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
// time4.Text = "08:00:00";
// }
//}
//ShowMessage("》》》切换夜班班次!" + dateTimePicker1.Text + " " + comboBox1.Text + "至" + dateTimePicker2.Text + " " + comboBox2.Text);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
2 months ago
//if (radioButton1.Checked == true)
//{
// int datetime = Convert.ToInt32(DateTime.Now.Hour.ToString());
// if (datetime >= 8 && datetime < 20)
// {
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "08:00:00";
// time2.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time4.Text = "20:00:00";
// }
// else if (datetime >= 0 && datetime < 8)
// {
// time1.Text = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
// time3.Text = "08:00:00";
// time2.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time4.Text = "20:00:00";
// }
// else
// {
// time1.Text = DateTime.Now.ToString("yyyy-MM-dd");
// time3.Text = "20:00:00";
// time2.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
// time4.Text = "08:00:00";
// }
//}
//ShowMessage("》》》切换白班班次!" + dateTimePicker1.Text + " " + comboBox1.Text + "至" + dateTimePicker2.Text + " " + comboBox2.Text);
}
private void CollectGC()
{
try
{
2 months ago
GC.Collect();
GC.WaitForPendingFinalizers();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
}
}
2 months ago
catch (Exception ex)
{
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
2 months ago
CollectGC();
if (iNIFile.IniReadValue("SystemConfig", "UserName") != "用户名")
{
iNIFile.IniWriteValue("SystemConfig", "UserName", "用户名");
}
this.UserName = "用户名";
lb_UserName.Text = "用户名";
lb_UserName.ForeColor = Color.Red;
}
catch (Exception ex)
{
LogHelper.Error("空间名:" + ex.Source + "" + '\n' +
"方法名:" + ex.TargetSite + '\n' +
"故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' +
"错误提示:" + ex.Message);
}
}
List<string> listNew = new List<string>();
private void cb_machine_TextUpdate(object sender, EventArgs e)
{
//清空combobox
this.cb_machine.Items.Clear();
//清空listNew
listNew.Clear();
//遍历全部备查数据
foreach (var item in listOnit)
{
if (item.Contains(this.cb_machine.Text))
{
//符合插入ListNew
listNew.Add(item);
}
}
//combobox添加已经查到的关键词
this.cb_machine.Items.AddRange(listNew.ToArray());
//设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列
this.cb_machine.SelectionStart = this.cb_machine.Text.Length;
//保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。
Cursor = Cursors.Default;
//自动弹出下拉框
this.cb_machine.DroppedDown = true;
}
private void timer2_Tick(object sender, EventArgs e)
{
2 months ago
//LoadTime();
//SetRadiobutton();
}
2 months ago
private void cb_machine_SelectedIndexChanged(object sender, EventArgs e)
{
cb_machine.Visible = false;
cb_machine.Visible = true;
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
// 控件即将获得焦点时将焦点转移到button1
txt_barcode.Focus();
}
//private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
//{
// comboBox1.Visible = false;
// comboBox1.Visible = true;
//}
//private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
//{
// dateTimePicker1.Visible = false;
// dateTimePicker1.Visible = true;
//}
//private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
//{
// dateTimePicker2.Visible = false;
// dateTimePicker2.Visible = true;
//}
//private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
//{
// comboBox2.Visible = false;
// comboBox2.Visible = true;
//}
}
}