Compare commits
1 Commits
master
...
BlackPrint
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c73cd48542 |
@ -103,13 +103,14 @@ public class HyosungPlcService(ILogger<HyosungPlcService> logger) : IHyosungPlcS
|
||||
ls.Add((short)(option.IsPack ? 1 : 2));
|
||||
ls.Add((short)(option.IsFilm ? 1 : 2));
|
||||
ls.Add((short)(option.IsLam ? 1 : 2));
|
||||
ls.Add((short)(option.IsBlack ? 2 : 1));
|
||||
await _writer.WriteShortsAsync(12120, ls.ToArray());
|
||||
}
|
||||
|
||||
public async Task WritePrintLableOptionsAsync(int side, int slave)
|
||||
public async Task WritePrintLableOptionsAsync(bool isBlack, int count)
|
||||
{
|
||||
short masterCount = 0;
|
||||
switch (side)
|
||||
switch (count)
|
||||
{
|
||||
case 0:
|
||||
masterCount = 1;
|
||||
@ -128,27 +129,10 @@ public class HyosungPlcService(ILogger<HyosungPlcService> logger) : IHyosungPlcS
|
||||
break;
|
||||
}
|
||||
|
||||
short slaveCount = 0;
|
||||
switch (slave)
|
||||
{
|
||||
case 0:
|
||||
slaveCount = 1;
|
||||
break;
|
||||
case 1:
|
||||
slaveCount = 2;
|
||||
break;
|
||||
case 2:
|
||||
slaveCount = 6;
|
||||
break;
|
||||
case 3:
|
||||
slaveCount = 14;
|
||||
break;
|
||||
case 4:
|
||||
slaveCount = 30;
|
||||
break;
|
||||
}
|
||||
|
||||
await _writer.WriteShortsAsync(13050, [1, 1, 1, 2]);
|
||||
if (isBlack)
|
||||
await _writer.WriteShortsAsync(13050, [1, 1, masterCount, 1]);
|
||||
else
|
||||
await _writer.WriteShortsAsync(13050, [1, 1, 1, masterCount]);
|
||||
}
|
||||
|
||||
public async Task WritePrintLabelResultAsync(int index, bool result)
|
||||
|
||||
@ -58,7 +58,7 @@ public interface IHyosungPlcService
|
||||
|
||||
Task WritePackLineOptionAsync(PackLineOption option);
|
||||
|
||||
Task WritePrintLableOptionsAsync(int side,int slaveCount);
|
||||
Task WritePrintLableOptionsAsync(bool isBlack,int slaveCount);
|
||||
|
||||
Task WritePrintLabelResultAsync(int index, bool result);
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ public class AveryPrinter(string host, int port)
|
||||
await ConnectAsync(CancellationToken.None);
|
||||
}
|
||||
|
||||
await _socket.SendAsync(Encoding.ASCII.GetBytes(context));
|
||||
await _socket.SendAsync(Encoding.UTF8.GetBytes(context));
|
||||
}
|
||||
|
||||
private const string CleanCmd = "#!A1#!CA#!P1";
|
||||
@ -63,7 +63,7 @@ public class AveryPrinter(string host, int port)
|
||||
await ConnectAsync(CancellationToken.None);
|
||||
}
|
||||
|
||||
await _socket.SendAsync(Encoding.ASCII.GetBytes(CleanCmd));
|
||||
await _socket.SendAsync(Encoding.UTF8.GetBytes(CleanCmd));
|
||||
}
|
||||
|
||||
public async Task PrintAsync()
|
||||
@ -74,6 +74,6 @@ public class AveryPrinter(string host, int port)
|
||||
await ConnectAsync(CancellationToken.None);
|
||||
}
|
||||
|
||||
await _socket.SendAsync(Encoding.ASCII.GetBytes(PrintCmd));
|
||||
await _socket.SendAsync(Encoding.UTF8.GetBytes(PrintCmd));
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ public class HyosungPrinter(
|
||||
private async Task PrintLabel1Async(Tray tray)
|
||||
{
|
||||
await _masterPrinter.CleanContextAsync();
|
||||
var content = await GetPrint1Content(tray);
|
||||
var content = await GetPrint2Content(tray);
|
||||
await _masterPrinter.SendContentAsync(content);
|
||||
await _masterPrinter.PrintAsync();
|
||||
}
|
||||
@ -121,14 +121,14 @@ public class HyosungPrinter(
|
||||
"250101J068",
|
||||
$"\"{DateTime.Now.ToString("yyMMdd" + "J") + tray.ControlNo.ToString()?.PadLeft(3, '0')}\""
|
||||
},
|
||||
{ "DTYY-JPA11530SFG250101000900115305480", $"{tray.Barcode}" }
|
||||
{ "DTYY-JPA11530SFG250101000900115305480", $"\"{tray.Barcode}\"" }
|
||||
};
|
||||
string content = options.Value.DefaultTemp;
|
||||
foreach (var (key, value) in dic)
|
||||
{
|
||||
content = content.Replace(key, value);
|
||||
}
|
||||
logger.LogInformation($"print content: {content}");
|
||||
|
||||
return content;
|
||||
}
|
||||
}
|
||||
@ -57,7 +57,7 @@ public class VarietyEntity
|
||||
[SugarColumn(ColumnDescription = "垛头数量")]
|
||||
public int? StackHeadCount { get; set; }
|
||||
|
||||
[SugarColumn(ColumnDescription = "纸托Id",IsNullable =true)]
|
||||
[SugarColumn(ColumnDescription = "纸托Id", IsNullable = true)]
|
||||
public int? PaperTrayId { get; set; }
|
||||
|
||||
[SugarColumn(ColumnDescription = "是否需要纸箱")]
|
||||
@ -84,13 +84,11 @@ public class VarietyEntity
|
||||
[SugarColumn(ColumnDescription = "副标签数量")]
|
||||
public int SubLabelCount { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable =true)]
|
||||
public int? LastNo { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable =true)]
|
||||
public double? NetWeight { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable =true)]
|
||||
public double? GrossWeight { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable = true)] public int? LastNo { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable = true)] public double? NetWeight { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable = true)] public double? GrossWeight { get; set; }
|
||||
|
||||
[SugarColumn(IsNullable = true)] public bool? IsBlack { get; set; }
|
||||
}
|
||||
@ -17,4 +17,6 @@ public partial class PackLineOption : ObservableObject
|
||||
[ObservableProperty] private bool isLam;
|
||||
|
||||
[ObservableProperty] private string trayCode;
|
||||
|
||||
[ObservableProperty] private bool isBlack;
|
||||
}
|
||||
@ -69,6 +69,8 @@ public class Variety
|
||||
public double? NetWeight { get; set; }
|
||||
|
||||
public double? GrossWeight { get; set; }
|
||||
|
||||
public bool? IsBlack { get; set; }
|
||||
|
||||
public static Variety Create(VarietyEntity entity, List<PalletEntity> pallets)
|
||||
{
|
||||
@ -101,7 +103,8 @@ public class Variety
|
||||
HasBox = entity.HasBox,
|
||||
LastNo = entity.LastNo,
|
||||
NetWeight = entity.NetWeight,
|
||||
GrossWeight = entity.GrossWeight
|
||||
GrossWeight = entity.GrossWeight,
|
||||
IsBlack = entity.IsBlack
|
||||
};
|
||||
if (entity.PaperTrayId != null && entity.PaperTrayId != 0)
|
||||
variety.PaperTray = Pallet.FromEntity(pallets.First(x => x.Id == entity.PaperTrayId));
|
||||
@ -141,7 +144,8 @@ public class Variety
|
||||
HasBox = HasBox,
|
||||
LastNo = LastNo,
|
||||
NetWeight = NetWeight,
|
||||
GrossWeight = GrossWeight
|
||||
GrossWeight = GrossWeight,
|
||||
IsBlack = IsBlack
|
||||
};
|
||||
return entity;
|
||||
}
|
||||
|
||||
@ -9,32 +9,25 @@ public class LabelResult
|
||||
public string BE_ID { get; set; } = "2240";
|
||||
public string BAR_CODE { get; set; } = "";
|
||||
public string ITEM_CODE { get; set; } = "";
|
||||
public string LABEL_ID { get; set; } = "TY_CN_PRODUCT";
|
||||
public string LABEL_ID { get; set; } = "";
|
||||
public string WMS_UOM { get; set; } = "";
|
||||
public string ERP_UOM { get; set; } = "";
|
||||
public string MFG_DATE { get; set; } = "";
|
||||
public decimal NET_WEIGHT { get; set; } = 0;
|
||||
public decimal GROSS_WEIGHT { get; set; } = 0;
|
||||
public string MFG_LINE { get; set; } = "TYJP11";
|
||||
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 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 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; } = "";
|
||||
@ -43,8 +36,6 @@ public class LabelResult
|
||||
public string CREATED_ON { get; set; } = DateTime.Now.ToString("yyyy-MM-dd");
|
||||
public string MODIFIED_BY { get; set; } = "seyounth";
|
||||
public string MODIFIED_ON { get; set; } = DateTime.Now.ToString("yyyy-MM-dd");
|
||||
|
||||
public double COMMON_N1 { get; set; } = 0;
|
||||
|
||||
public LabelResult(Tray tray, Variety variety)
|
||||
{
|
||||
@ -52,22 +43,14 @@ public class LabelResult
|
||||
BE_ID = "2240";
|
||||
BAR_CODE = tray.Barcode ?? "";
|
||||
ITEM_CODE = variety.Code;
|
||||
MFG_DATE = DateTime.Now.ToString("yyyyMMdd");
|
||||
MFG_DATE = DateTime.Now.ToString("yyyy-MM-dd");
|
||||
NET_WEIGHT = (decimal)tray.NetWeight;
|
||||
GROSS_WEIGHT = (decimal)tray.GrossWeight;
|
||||
GRADE = tray.Grade ?? "";
|
||||
LOT = variety.Lot.ToString();
|
||||
BOX_NO = $"{DateTime.Now.ToString("yyMMdd" + "J") + tray.ControlNo.ToString()?.PadLeft(3, '0')}";
|
||||
BOX_NO = tray.ControlNo?.ToString() ?? "";
|
||||
CREATED_BY = "seyounth";
|
||||
CREATED_ON = DateTime.Now.ToString("yyyy-MM-dd");
|
||||
COMMON_S1 = tray.Type?? "";
|
||||
COMMON_S2 = variety.TotalCount.ToString();
|
||||
COMMON_S3=tray.DenFila?? "";
|
||||
COMMON_S4 = tray.DtexFila?? "";
|
||||
COMMON_S5 = "0";
|
||||
COMMON_N1 = (double)tray.ControlNo;
|
||||
MODIFIED_BY = "seyounth";
|
||||
MODIFIED_ON = DateTime.Now.ToString("yyyy-MM-dd");
|
||||
}
|
||||
|
||||
public LabelResult()
|
||||
|
||||
@ -97,10 +97,8 @@ public class HyosungWmsService : IHyosungWmsService
|
||||
&& 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<MST_ITEM_VERSION>()
|
||||
.FirstAsync(v => v.ITEM_CODE == result.ITEM_CODE);
|
||||
result.MFG_LINE=(workCenter?.WORK_CENTER)??"TYJP11";
|
||||
await _db.Insertable(result).ExecuteCommandAsync();
|
||||
}catch(Exception e)
|
||||
{
|
||||
|
||||
@ -3,8 +3,6 @@ namespace Seyounth.Hyosung.Data.Services;
|
||||
public interface IReportExportService
|
||||
{
|
||||
Task ExportAsync(string trayCode);
|
||||
|
||||
Task ExportSampleAsync(string trayCode);
|
||||
|
||||
|
||||
Task ExportNoExportAsync();
|
||||
|
||||
@ -31,70 +31,6 @@ public class ReportExportService(
|
||||
}
|
||||
}
|
||||
|
||||
public async Task ExportSampleAsync(string trayCode)
|
||||
{
|
||||
try
|
||||
{
|
||||
var tray = await trayService.GetByCode(trayCode);
|
||||
var variety = await varietyService.GetById(tray.VarietyId);
|
||||
var yarns = await yarnService.GetYarnsByTrayIdAsync(tray.Id);
|
||||
await CreateSample(tray, variety, yarns);
|
||||
await trayService.ExportedAsync(tray.TrayCode);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.LogError(e, $"export report [{trayCode}] error");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task CreateSample(Tray tray, Variety variety, List<Yarn> yarns)
|
||||
{
|
||||
try
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
dt.Columns.Add("LOT");
|
||||
dt.Columns.Add("DEN");
|
||||
dt.Columns.Add("总个数/垛");
|
||||
dt.Columns.Add("生产时间");
|
||||
dt.Columns.Add("机台");
|
||||
dt.Columns.Add("班次");
|
||||
dt.Columns.Add("码垛时间");
|
||||
for (int i = 1; i <= yarns.Count; i++)
|
||||
{
|
||||
if (i == 1)
|
||||
{
|
||||
dt.Rows.Add(yarns[i - 1].Lot, tray.DenFila, yarns.Count, yarns[i - 1].ProduceTime,
|
||||
yarns[i - 1].Machine, yarns[i - 1].WorkShift, yarns[i - 1].StackTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
dt.Rows.Add(yarns[i - 1].Lot, tray.DenFila, " ", yarns[i - 1].ProduceTime,
|
||||
yarns[i - 1].Machine, yarns[i - 1].WorkShift,yarns[i - 1].StackTime);
|
||||
}
|
||||
}
|
||||
|
||||
var path = await GetDirectoryAsync();
|
||||
var fileName = $"{variety.Lot}_{tray.Barcode.Split(" ")[1]}_{DateTime.Now:yyyyMMdd}.xlsx";
|
||||
var filePath = Path.Combine(path, fileName);
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add(dt,"export");
|
||||
// 设置数据行字体大小
|
||||
var dataRows = worksheet.RowsUsed();
|
||||
foreach (var row in dataRows)
|
||||
{
|
||||
row.Style.Font.FontSize = 14;
|
||||
}
|
||||
|
||||
// 自动调整列宽
|
||||
worksheet.Columns().AdjustToContents();
|
||||
workbook.SaveAs(filePath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.LogError(e, "export today report error");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task Create(Tray tray, Variety variety, List<Yarn> yarns)
|
||||
{
|
||||
using var workbook = new XLWorkbook(TempPath);
|
||||
@ -154,7 +90,7 @@ public class ReportExportService(
|
||||
{
|
||||
try
|
||||
{
|
||||
await ExportSampleAsync(code);
|
||||
await ExportAsync(code);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@ -88,11 +88,8 @@ public class TrayService : ITrayService
|
||||
tray.Unit = itemInfo.UNIT;
|
||||
tray.NetWeight = variety.NetWeight ?? itemInfo.NET_WEIGHT;
|
||||
tray.GrossWeight = variety.GrossWeight ?? itemInfo.GROSS_WEIGHT;
|
||||
var netWeight = tray.NetWeight.ToString("0.0");
|
||||
if (netWeight.EndsWith(".0"))
|
||||
netWeight = netWeight.Replace(".0", "");
|
||||
tray.Barcode =
|
||||
$"{itemInfo.ITEM_CODE} {DateTime.Now:yyMMdd}{netWeight.PadLeft(6,'0')}{itemInfo.LOTNO.PadLeft(4, '0')}{tray.ControlNo?.ToString().PadLeft(4, '0')}0";
|
||||
$"{itemInfo.ITEM_CODE} {DateTime.Now:yyMMdd}00{itemInfo.LOTNO.PadLeft(4, '0')}{tray.ControlNo?.ToString().PadLeft(4, '0')}0";
|
||||
await _db.Updateable<TrayEntity>(tray.ToEntity()).ExecuteCommandAsync();
|
||||
// _cache.Remove(tray.TrayCode, out _);
|
||||
return tray;
|
||||
|
||||
@ -121,7 +121,6 @@ public class HyosungRuntime(
|
||||
var trays = await trayService.GetTodayTrayAsync();
|
||||
foreach (var tray in trays)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,10 +203,10 @@ public class HyosungRuntime(
|
||||
{
|
||||
await trayService.StorageAsync(info.TrayCode);
|
||||
|
||||
reportExportService.ExportSampleAsync(info.TrayCode);
|
||||
await hyosungAgvService.StorageAsync(info.TrayCode);
|
||||
//标志下线已完成
|
||||
await hyosungPlcService.LeaveCompletedAsync();
|
||||
await reportExportService.ExportAsync(info.TrayCode);
|
||||
logger.LogInformation($"plc leaving production line success");
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -354,6 +353,7 @@ public class HyosungRuntime(
|
||||
PackLineOption.IsLam = true;
|
||||
else
|
||||
PackLineOption.IsLam = false;
|
||||
PackLineOption.IsBlack = variety.IsBlack ?? false;
|
||||
await hyosungPlcService.WritePackLineOptionAsync(PackLineOption);
|
||||
logger.LogInformation($"plc request pack line option success");
|
||||
}
|
||||
@ -386,14 +386,14 @@ public class HyosungRuntime(
|
||||
// }
|
||||
tray = await trayService.PrintTrayAsync(arg, mod, variety);
|
||||
await dictService.SetValue("System", "CurrentPackingTrayCode", arg);
|
||||
await hyosungPlcService.WritePrintLableOptionsAsync(variety.MasterLabelCount, variety.SubLabelCount);
|
||||
await hyosungPlcService.WritePrintLableOptionsAsync(variety.IsBlack ?? false, variety.MasterLabelCount);
|
||||
await hyosungWmsService.AddLabelResult(new LabelResult(tray, variety));
|
||||
logger.LogInformation("request print option succeed");
|
||||
}
|
||||
catch(Exception e)
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.LogError(e, "GetPrintOptionError");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -413,21 +413,8 @@ public class HyosungRuntime(
|
||||
await trayService.UpdateHeightAsync(tray.TrayCode, height);
|
||||
try
|
||||
{
|
||||
if (arg1 == 1)
|
||||
{
|
||||
await printer.PrintAsync(1, tray.TrayCode);
|
||||
await hyosungPlcService.WritePrintLabelResultAsync(arg1, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
await printer.PrintAsync(2, tray.TrayCode);
|
||||
await hyosungPlcService.WritePrintLabelResultAsync(arg1, true);
|
||||
var version=await hyosungWmsService.GetItemInfoByItemCode(variety.Code);
|
||||
// await varietyService.SetLastNo(variety.Id, tray.ControlNo.Value);
|
||||
//await hyosungWmsService.UpdateControlNo(variety, tray.ControlNo.Value);
|
||||
// await hyosungWmsService.AddLabelResult(new LabelResult(tray, variety));
|
||||
}
|
||||
|
||||
await printer.PrintAsync(arg1, tray.TrayCode);
|
||||
await hyosungPlcService.WritePrintLabelResultAsync(arg1, true);
|
||||
logger.LogInformation($"plc request print label success");
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user