From 61407f6436d3abeaab3196c0ea577ad9f104ef79 Mon Sep 17 00:00:00 2001 From: zhangzhuo <512464164@qq.com> Date: Fri, 21 Mar 2025 09:07:39 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Plc/HyosungPlcService.cs | 36 ++++++++++++++----- .../Printer/HyosungPrinter.cs | 6 ++-- .../Services/Hyosung/Entities/LabelResult.cs | 26 +++++++------- .../Services/Hyosung/HyosungWmsService.cs | 28 ++++++++------- Seyounth.Hyosung.Data/Services/TrayService.cs | 8 +++-- Seyounth.Hyosung.Runtime/HyosungRuntime.cs | 13 ++++--- 6 files changed, 75 insertions(+), 42 deletions(-) diff --git a/Seyounth.Hyosung.Core/Plc/HyosungPlcService.cs b/Seyounth.Hyosung.Core/Plc/HyosungPlcService.cs index 1b752ab..7e64f4e 100644 --- a/Seyounth.Hyosung.Core/Plc/HyosungPlcService.cs +++ b/Seyounth.Hyosung.Core/Plc/HyosungPlcService.cs @@ -110,20 +110,38 @@ public class HyosungPlcService(ILogger logger) : IHyosungPlcS var address = index == 1 ? 13060 : 13061; if (index == 2) { - var data = SetBit(0, side); - await _writer.WriteShortsAsync(13053, data); + short data = 0; + switch (side) + { + case 0: + data = 1; + break; + case 1: + data = 2; + break; + case 2: + data = 6; + break; + case 3: + data = 14; + break; + case 4: + data = 30; + break; + } + await _writer.WriteShortsAsync(13050, [1,1,1, data] ); } await _writer.WriteShortsAsync(address, (short)(result ? 1 : 2)); } - static byte SetBit(byte value, int bitPosition) - { - // 创建一个掩码,该掩码只有第 bitPosition 位为 1 - byte mask = (byte)(1 << bitPosition); - // 使用按位或操作将 value 的第 bitPosition 位置为 1 - return (byte)(value | mask); - } + //static byte SetBit(byte value, int bitPosition) + //{ + // // 创建一个掩码,该掩码只有第 bitPosition 位为 1 + // byte mask = (byte)(1 << bitPosition); + // // 使用按位或操作将 value 的第 bitPosition 位置为 1 + // return (byte)(value | mask); + //} public event Func? OnPlcRequestScanProduct; diff --git a/Seyounth.Hyosung.Core/Printer/HyosungPrinter.cs b/Seyounth.Hyosung.Core/Printer/HyosungPrinter.cs index 0c572d9..a98b48f 100644 --- a/Seyounth.Hyosung.Core/Printer/HyosungPrinter.cs +++ b/Seyounth.Hyosung.Core/Printer/HyosungPrinter.cs @@ -104,14 +104,16 @@ public class HyosungPrinter( { var variety = await varietyService.GetById(tray.VarietyId); - + var netWeight = tray.NetWeight.ToString("0.0"); + if (netWeight.EndsWith(".0")) + netWeight = netWeight.Replace(".0", ""); var dic = new Dictionary { { "$1153", $"\"{variety.Lot}\"" }, { "1670dtex -144F", $"\"{tray.DtexFila}\"" }, { "1500D - 144F", $"\"{tray.DenFila}\"" }, { "$SA", $"\"{tray.Grade}\"" }, - { "$900", $"\"{tray.NetWeight:0.0}\"" }, + { "$900", $"\"{netWeight}\"" }, { "25-01-01", $"\"{DateTime.Now:yy-MM-dd}\"" }, { "$90", $"\"{variety.TotalCount}\"" }, { "$965", $"\"{tray.GrossWeight}\"" }, diff --git a/Seyounth.Hyosung.Data/Services/Hyosung/Entities/LabelResult.cs b/Seyounth.Hyosung.Data/Services/Hyosung/Entities/LabelResult.cs index 88a88dd..60b8b4b 100644 --- a/Seyounth.Hyosung.Data/Services/Hyosung/Entities/LabelResult.cs +++ b/Seyounth.Hyosung.Data/Services/Hyosung/Entities/LabelResult.cs @@ -14,24 +14,24 @@ public class LabelResult public string ERP_UOM { get; set; } = ""; public string MFG_DATE { get; set; } = ""; public decimal NET_WEIGHT { get; set; } = 0; - public double GROSS_WEIGHT { get; set; } = 0; + public decimal GROSS_WEIGHT { get; set; } = 0; public string MFG_LINE { get; set; } = ""; public string GRADE { get; set; } = ""; public string LOT { get; set; } = ""; public string BOX_NO { get; set; } = ""; - public string DENIER { get; set; } = ""; - public string FILA { get; set; } = ""; + // public string DENIER { get; set; } = ""; + // public string FILA { get; set; } = ""; public string CUSTOMER_NAME { get; set; } = ""; - public string REMARKS { get; set; } = ""; - public string TRI_INTERFACE_YN { get; set; } = ""; + // public string REMARKS { get; set; } = ""; + // public string TRI_INTERFACE_YN { get; set; } = ""; public string TRI_TYPE { get; set; } = "zp10"; - public string COMMON_S1 { get; set; } = ""; - public string COMMON_S2 { get; set; } = ""; - public string COMMON_S3 { get; set; } = ""; - public string COMMON_S4 { get; set; } = ""; - public string COMMON_S5 { get; set; } = ""; - public string COMMON_N1 { get; set; } = ""; - public string TRI_YN { get; set; } = ""; + //public string COMMON_S1 { get; set; } = ""; + //public string COMMON_S2 { get; set; } = ""; + //public string COMMON_S3 { get; set; } = ""; + //public string COMMON_S4 { get; set; } = ""; + //public string COMMON_S5 { get; set; } = ""; + //public string COMMON_N1 { get; set; } = ""; + //public string TRI_YN { get; set; } = ""; public string CREATED_BY { get; set; } = "seyounth"; public string CREATED_ON { get; set; } = DateTime.Now.ToString("yyyy-MM-dd"); public string MODIFIED_BY { get; set; } = "seyounth"; @@ -45,7 +45,7 @@ public class LabelResult ITEM_CODE = variety.Code; MFG_DATE = DateTime.Now.ToString("yyyy-MM-dd"); NET_WEIGHT = (decimal)tray.NetWeight; - GROSS_WEIGHT = tray.GrossWeight; + GROSS_WEIGHT = (decimal)tray.GrossWeight; GRADE = tray.Grade ?? ""; LOT = variety.Lot.ToString(); BOX_NO = tray.ControlNo?.ToString() ?? ""; diff --git a/Seyounth.Hyosung.Data/Services/Hyosung/HyosungWmsService.cs b/Seyounth.Hyosung.Data/Services/Hyosung/HyosungWmsService.cs index 91a2d7e..31d5131 100644 --- a/Seyounth.Hyosung.Data/Services/Hyosung/HyosungWmsService.cs +++ b/Seyounth.Hyosung.Data/Services/Hyosung/HyosungWmsService.cs @@ -89,17 +89,21 @@ public class HyosungWmsService : IHyosungWmsService public async Task AddLabelResult(LabelResult result) { - var mst_item = await _db.Queryable() - .FirstAsync(t => t.BE_ID == "2240" - && t.ITEM_CODE == result.ITEM_CODE - && t.ITEM_CODE_TYPE == "FERT"); - result.COMMON_S1 = mst_item.COMMON_S1; - result.COMMON_S3 = mst_item.COMMON_S3; - result.COMMON_S5 = mst_item.COMMON_S5; - result.WMS_UOM = mst_item.WMS_UOM_ID; - result.ERP_UOM = mst_item.ERP_UOM_ID; - var workCenter = await _db.Queryable() - .FirstAsync(v => v.ITEM_CODE == result.ITEM_CODE); - await _db.Insertable(result).ExecuteCommandAsync(); + try + { + var mst_item = await _db.Queryable() + .FirstAsync(t => t.BE_ID == "2240" + && t.ITEM_CODE == result.ITEM_CODE + && t.ITEM_CODE_TYPE == "FERT"); + result.WMS_UOM = mst_item.WMS_UOM_ID; + result.ERP_UOM = mst_item.ERP_UOM_ID; + var workCenter = await _db.Queryable() + .FirstAsync(v => v.ITEM_CODE == result.ITEM_CODE); + await _db.Insertable(result).ExecuteCommandAsync(); + }catch(Exception e) + { + + } + } } \ No newline at end of file diff --git a/Seyounth.Hyosung.Data/Services/TrayService.cs b/Seyounth.Hyosung.Data/Services/TrayService.cs index 2c535fb..04ef3b5 100644 --- a/Seyounth.Hyosung.Data/Services/TrayService.cs +++ b/Seyounth.Hyosung.Data/Services/TrayService.cs @@ -86,13 +86,17 @@ public class TrayService : ITrayService tray.NetWeight = itemInfo.NET_WEIGHT; tray.GrossWeight = itemInfo.GROSS_WEIGHT; tray.Barcode = - $"{itemInfo.ITEM_CODE} {DateTime.Now:yyMMdd}00{controlNo.ToString().PadLeft(4, '0')}{itemInfo.LOTNO.PadLeft(4, '0')}0"; + $"{itemInfo.ITEM_CODE} {DateTime.Now:yyMMdd}00{itemInfo.LOTNO.PadLeft(4, '0')}{controlNo.ToString().PadLeft(4, '0')}0"; await _repository.UpdateAsync(tray.ToEntity()); _cache.Remove(tray.TrayCode, out _); return tray; } - public async Task StorageAsync(string trayCode) + public async Task StorageAsync(string trayCode) { + var tray = await _repository.GetFirstAsync(d => d.TrayCode == trayCode); + tray.FinishTime = DateTime.Now; + await _repository.UpdateAsync(tray); + _cache.TryRemove(tray.TrayCode, out _); } } \ No newline at end of file diff --git a/Seyounth.Hyosung.Runtime/HyosungRuntime.cs b/Seyounth.Hyosung.Runtime/HyosungRuntime.cs index 51bd3f7..94a320a 100644 --- a/Seyounth.Hyosung.Runtime/HyosungRuntime.cs +++ b/Seyounth.Hyosung.Runtime/HyosungRuntime.cs @@ -297,8 +297,12 @@ public class HyosungRuntime( var mod = await hyosungWmsService.GetItemInfoByItemCode(variety.Code); var grade = "1"; if (mod.GRADE != "AA") grade = mod.GRADE; - var controlNo = await hyosungWmsService.GetControlNo(variety, grade); - tray = await trayService.PrintTrayAsync(trayCode, height, controlNo, mod); + int controlNo = 0; + if(tray.ControlNo is null || tray.ControlNo == 0) + { + controlNo = await hyosungWmsService.GetControlNo(variety, grade); + tray = await trayService.PrintTrayAsync(trayCode, height, controlNo, mod); + } if (arg1 == 1) { await printer.PrintAsync(1, trayCode); @@ -308,11 +312,12 @@ public class HyosungRuntime( { await printer.PrintAsync(2, trayCode); await hyosungPlcService.WritePrintLabelResultAsync(arg1, variety.MasterLabelCount, true); + await hyosungWmsService.UpdateControlNo(variety, controlNo); + await hyosungWmsService.AddLabelResult(new LabelResult(tray, variety)); } - await hyosungWmsService.UpdateControlNo(variety, controlNo); - await hyosungWmsService.AddLabelResult(new LabelResult(tray, variety)); + logger.LogInformation($"plc request print label success"); } catch (Exception e)