¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Application; |
| | | using Admin.NET.Core.WareHouse.Enum; |
| | | using autuPrint.printService; |
| | | using Excel2SQL; |
| | | using iWareCommon; |
| | | using iWareCommon.Utils; |
| | | using iWareSql; |
| | | using iWareSql.DataAccess; |
| | | using iWareSql.MyDbContext; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Diagnostics; |
| | | using System.Drawing; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Windows.Forms; |
| | | using WindowsFormsApplication1.Common; |
| | | |
| | | namespace WindowsFormsApplication1 |
| | | { |
| | | public partial class Form1 : Form |
| | | { |
| | | //èªå¨æå°çº¿ç¨ |
| | | Thread AutoPrint, Colors; |
| | | |
| | | public Form1() |
| | | { |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private void btn_SelectFile_Click(object sender, EventArgs e) |
| | | { |
| | | OpenFileDialog fileDialog = new OpenFileDialog(); |
| | | fileDialog.Multiselect = true; |
| | | fileDialog.Title = "è¯·éæ©æä»¶"; |
| | | fileDialog.Filter = "æææä»¶(*xls*)|*.xls*"; //设置è¦éæ©çæä»¶çç±»å |
| | | if (fileDialog.ShowDialog() == DialogResult.OK) |
| | | { |
| | | string file = fileDialog.FileName;//è¿åæä»¶ç宿´è·¯å¾ |
| | | this.tb_FilePath.Text = file; |
| | | } |
| | | } |
| | | |
| | | private void button2_Click(object sender, EventArgs e) |
| | | { |
| | | try |
| | | { |
| | | this.tb_Msg.Text = "æå°:"; |
| | | string filePath = this.tb_FilePath.Text; |
| | | if (filePath == string.Empty) |
| | | { |
| | | MessageBox.Show("è¯·éæ©Excel!"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | Dictionary<string, string> cellheader = new Dictionary<string, string> { |
| | | { "MaterialCode", "ç©æå·" }, |
| | | { "MaterialName", "ç©æåç§°" }, |
| | | { "Vendor", "ä¾åºå" }, |
| | | { "PO", "PO" }, |
| | | { "Qty", "æ°é" } |
| | | }; |
| | | |
| | | // 1.2è§£ææä»¶ï¼åæ¾å°ä¸ä¸ªListéåé |
| | | StringBuilder errorMsg = new StringBuilder(); // éè¯¯ä¿¡æ¯ |
| | | string tableDesc = "", tableName = ""; |
| | | List<MaterialEntity> enlist = ExcelHelper.ExcelToEntityListForCreateTable<MaterialEntity>(cellheader, filePath, out tableDesc, out tableName, out errorMsg); |
| | | if (!string.IsNullOrEmpty(errorMsg.ToString())) |
| | | { |
| | | MessageBox.Show("é误:" + errorMsg.ToString()); |
| | | return; |
| | | } |
| | | |
| | | enlist = enlist.Where(x => !string.IsNullOrEmpty(x.MaterialCode)).ToList(); |
| | | this.tb_Msg.Text = "å¤çæ¡æ°:" + enlist.Count; |
| | | if (enlist != null && enlist.Count > 0) |
| | | { |
| | | foreach (var item in enlist) |
| | | { |
| | | if (string.IsNullOrEmpty(item.MaterialName)) |
| | | { |
| | | continue; |
| | | } |
| | | this.do_autoPrint(item); |
| | | |
| | | } |
| | | //MessageBox.Show("æ¹éæå°æåæåï¼"); |
| | | return; |
| | | } |
| | | MessageBox.Show("æ æå°å
容ï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show("é误:" + ex.Message.ToString()); |
| | | this.tb_Msg.Text = "å¼å¸¸:" + ex.Message; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// èªå¨æå°-è¡å¨ |
| | | /// </summary> |
| | | public void do_autoPrint(MaterialEntity material) |
| | | { |
| | | |
| | | try |
| | | { |
| | | |
| | | #region å个å¤çæ ç¾æå° |
| | | |
| | | string barCode = material.MaterialName;//æ ç¾æ¡ç |
| | | Image img = QrCodeAndBarCode.printQr(barCode); |
| | | var errMsg = ""; |
| | | ware_material_print_history ware_Material_Print_History = new ware_material_print_history() |
| | | { |
| | | Code = material.MaterialCode, |
| | | Name = material.MaterialName, |
| | | SupplierNo = material.Vendor, |
| | | PurchaseNo = material.PO, |
| | | Quantity = Convert.ToDecimal(material.Qty) |
| | | }; |
| | | bool saveSucceed = creatExcelPrint.creatEXcel(img, ware_Material_Print_History, ref errMsg); |
| | | |
| | | if (saveSucceed) |
| | | { |
| | | if (File.Exists(SystemConst.TEMPORARY_FILEPATH)) |
| | | { |
| | | bool printSucceed = true; |
| | | |
| | | |
| | | printSucceed = print.printExcel(SystemConst.TEMPORARY_FILEPATH, SystemConst.Default_LeftMargin, SystemConst.Default_TopMargin); |
| | | |
| | | if (printSucceed) |
| | | { |
| | | //æå°æå å é¤ä¸´æ¶æä»¶,å¹¶æ¹ç¶æ |
| | | FileInfo myfile = new FileInfo(SystemConst.TEMPORARY_FILEPATH);//PartStatus |
| | | myfile.Delete(); |
| | | |
| | | int isSave = 1; |
| | | if (isSave < 1) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(LogType.Print, "ç±»å: Form1 æ¹æ³å: do_autoPrint ä¿®æ¹åºåèªå¨æå°ç¶æå¤±è´¥,ä¿®æ¹æ¡æ°å°äº1 ", null); |
| | | } |
| | | } |
| | | //*/ |
| | | } |
| | | } |
| | | else |
| | | { |
| | | this.tb_Msg.Text = "失败ï¼å¤±è´¥å
容ï¼" + errMsg; |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(LogType.Print, "ç±»å: Service1 æ¹æ³å: do_autoPrint èªå¨æå°æ¹æ³åæ°è½¬æ¢å¤±è´¥ \r\n " + ex.ToString(), ex); |
| | | this.tb_Msg.Text = "失败å¼å¸¸ ï¼" + ex.Message; |
| | | } |
| | | } |
| | | |
| | | private void Form1_Load(object sender, EventArgs e) |
| | | { |
| | | CheckForIllegalCrossThreadCalls = false; |
| | | |
| | | //æ£æµæ¯å¦å·²ç»å¼å¯ |
| | | Process current = Process.GetCurrentProcess(); |
| | | Process[] processes = Process.GetProcessesByName(current.ProcessName); |
| | | foreach (Process process in processes) |
| | | { |
| | | if (process.Id != current.Id) |
| | | { |
| | | if (process.MainModule.FileName == current.MainModule.FileName) |
| | | { |
| | | Environment.Exit(0); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | Colors = new Thread(changeColor); |
| | | Colors.Start(); |
| | | |
| | | AutoPrint = new Thread(DBAutoPrint); |
| | | AutoPrint.Start(); |
| | | |
| | | new Thread(DeleteData).Start(); |
| | | } |
| | | |
| | | private void Form1_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | Environment.Exit(0);//éåºæ¬è¿ç¨ææçº¿ç¨ |
| | | } |
| | | |
| | | public void changeColor() |
| | | { |
| | | bool isChange = true; |
| | | while (true) |
| | | { |
| | | Thread.Sleep(1000); |
| | | if (isChange) |
| | | { |
| | | label1.BackColor = Color.Yellow; |
| | | |
| | | } |
| | | else |
| | | { |
| | | label1.BackColor = Color.Pink; |
| | | } |
| | | isChange = !isChange; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | #region æ°æ®åºæå° |
| | | |
| | | |
| | | public void DBAutoPrint() |
| | | { |
| | | var errMsg = ""; |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | this.tb_Msg.Text = "循ç¯å¼å§..."; |
| | | |
| | | errMsg = "";//éç½® |
| | | try |
| | | { |
| | | Do(ref errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | this.tb_Msg.Text = errMsg; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(LogType.Print, "æå°å¤çç线ç¨=>" + errMsg + ",å¼å¸¸:" + ex.Message, ex); |
| | | this.tb_Msg.Text = "æå°å¤çç线ç¨=>" + errMsg + ",å¼å¸¸:" + ex.Message; |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.tb_Msg.Text = "åºç°å¼å¸¸:" + ex.Message; |
| | | Log4NetHelper.WriteErrorLog(LogType.Print, "Print åºç°å¼å¸¸ï¼" + ex.Message, ex); |
| | | } |
| | | Thread.Sleep(2 * 1000);//ä¼ç 2ç§ |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æå° |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <param name="Lane"></param> |
| | | /// <param name="flag"></param> |
| | | /// <param name="errMsg"></param> |
| | | private void Do(ref string errMsg) |
| | | { |
| | | using (WmsDBModel mycontext = new WmsDBModel()) |
| | | { |
| | | var query_PrintStatuEnum = (int)PrintStatuEnum.æªæå°; |
| | | var list = mycontext.wms_record_print.Where(x => (x.IsDelete == false) && x.PrintStatus == query_PrintStatuEnum) |
| | | .OrderBy(x => x.Id).ToList(); |
| | | |
| | | |
| | | wms_config_print printConfig = null; |
| | | string _PrinterName = ""; |
| | | if (list.Count > 0) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | errMsg = $"没æå¯æå°çå
容ï¼"; |
| | | return; |
| | | } |
| | | |
| | | foreach (var item in list) |
| | | { |
| | | |
| | | |
| | | PrintClassifyEnum printClassifyEnum = PrintClassifyEnum.å
è£
æ¡ç ; |
| | | |
| | | |
| | | printConfig = mycontext.wms_config_print.Where(x => x.PrintClassify == (int)printClassifyEnum).FirstOrDefault(); |
| | | if (printConfig == null) |
| | | { |
| | | errMsg = $"æ²¡ææ¾å°{printClassifyEnum.ToString()}çæå°é
ç½®ï¼"; |
| | | return; |
| | | } |
| | | //设置æå°æºï¼æ³¨æï¼è¿éåªè·å第ä¸ä¸ªï¼ä»¥åå¯è½è¦æ¹ï¼ |
| | | _PrinterName = printConfig.PrinterList.Split(',')[0]; |
| | | //æ ¹æ®é
ç½®ååæ¥è¯¢ æå°æºåå |
| | | //var printConfigData = mycontext.SysDictData.Where(x => x.Name == _PrinterName).FirstOrDefault(); |
| | | //if (printConfigData == null) |
| | | //{ |
| | | // errMsg = $"æ²¡ææ¾å°{_PrinterName.ToString()}çæå°æºååï¼"; |
| | | // return; |
| | | //} |
| | | //_PrinterName = printConfigData.Value; |
| | | |
| | | Dictionary<string, object> data = new Dictionary<string, object>(); |
| | | if (printClassifyEnum == PrintClassifyEnum.å
è£
æ¡ç ) |
| | | { |
| | | data.Add("Info4", item.Info4);//åååå· |
| | | data.Add("Info5", item.Info5 ?? "");//ç产åå· |
| | | data.Add("Info6", "第" + (item.Info6 ?? "") + "å
");//第å å
|
| | | data.Add("bar", item.PackageCode);//äºç»´ç ï¼å
å·ï¼ |
| | | data.Add("Info7", item.Info7 ?? "");//ç»éåº |
| | | data.Add("Info8", item.Info8 ?? "");//产å |
| | | data.Add("Info9", item.PackageCode ?? "");//å
è£
ç¼ç |
| | | data.Add("Info10", item.Info10 ?? "");//客æ·åç§° |
| | | data.Add("Info11", item.Info11 ?? "");//èªæoråè´§ |
| | | data.Add("Info12", "å
è£
æç» é¨ä»¶æ»æ°" + item.Info12 ?? "");//é¨ä»¶æç» |
| | | data.Add("Info13", item.Info13 ?? "");//å½åå
é¢ç§¯ |
| | | data.Add("printTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); |
| | | |
| | | //æ¥è¯¢ä¸ å
æ°æ® |
| | | var mylist = mycontext.mes_batchOrderUPI_new.Where(x => x.PackageCode == item.PackageCode).ToList(); |
| | | var gg = mylist.GroupBy(x => x.DetailName); |
| | | int i = 0; |
| | | foreach (var g in gg) |
| | | { |
| | | i++; |
| | | data.Add("detail_" + i, g.Key ?? "");//é¨ä»¶åç§° |
| | | data.Add("detail_" + i + "_length", g.ToList().First().Info16 ?? "");//é¨ä»¶å°ºå¯¸ |
| | | data.Add("detail_" + i + "_number", g.ToList().Count());//é¨ä»¶æ°é |
| | | } |
| | | for (int p = (i + 1); p <= 6; p++) |
| | | { |
| | | data.Add("detail_" + p, "");//é¨ä»¶åç§° |
| | | data.Add("detail_" + p + "_length", "");//é¨ä»¶å°ºå¯¸ |
| | | data.Add("detail_" + p + "_number", "");//é¨ä»¶æ°é |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | |
| | | |
| | | //è°ç¨æå°æ¥å£ |
| | | bool isSuccess = false; |
| | | using (iWarePrintService.PrintBaseService.PrintWcfServiceClient client = new iWarePrintService.PrintBaseService.PrintWcfServiceClient()) |
| | | { |
| | | //isSuccess = client.Print3(data, 1, @"D:\æå°ç¨åº\è·è¸ªç æå°æ¨¡æ¿\è·è¸ªç æå°æ¨¡æ¿_ä¸ç»´ç .btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | //isSuccess = client.Print3(data, 1, @"D:\æå°ç¨åº\è·è¸ªç æå°æ¨¡æ¿\è·è¸ªç æå°æ¨¡æ¿_äºç»´ç .btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg); |
| | | } |
| | | if (isSuccess) |
| | | { |
| | | item.PrintStatus = 1;//æå°ç¶æ(0ï¼æªæå° 1ï¼å·²æå°) |
| | | item.PrintNum = (item.PrintNum) + 1; |
| | | |
| | | mycontext.SaveChanges(); |
| | | } |
| | | else |
| | | { |
| | | errMsg = $"æå°é误 æå°æºåç§°{_PrinterName},é误信æ¯ï¼(æå°æå¡è¿å)" + errMsg; |
| | | Log4NetHelper.WriteErrorLog(LogType.Print, errMsg, null); |
| | | return; |
| | | } |
| | | |
| | | Thread.Sleep(2000); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 宿¶å 餿°æ® |
| | | |
| | | /// <summary> |
| | | /// 宿¶å 餿°æ® |
| | | /// </summary> |
| | | public void DeleteData() |
| | | { |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | LogTextHelper.BatchDeleteLog(); |
| | | |
| | | Thread.Sleep(8 * 60 * 60 * 1000);//æ¯å¤©8å°æ¶ä¸æ¬¡ |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.Sys_DeleteLog, "宿¶å 餿°æ® åºç°å¼å¸¸", ex); |
| | | } |
| | | finally |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |