This commit is contained in:
zhangzhuo 2025-03-27 11:53:08 +08:00
commit 3bb7e88752
3 changed files with 66 additions and 1 deletions

View File

@ -3,6 +3,8 @@ namespace Seyounth.Hyosung.Data.Services;
public interface IReportExportService
{
Task ExportAsync(string trayCode);
Task ExportSampleAsync(string trayCode);
Task ExportNoExportAsync();

View File

@ -31,6 +31,69 @@ 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("DTEX_FILA");
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.DtexFila, yarns.Count, yarns[i - 1].ProduceTime,
yarns[i - 1].Machine, yarns[i - 1].WorkShift);
}
else
{
dt.Rows.Add(yarns[i - 1].Lot, tray.DtexFila, "", yarns[i - 1].ProduceTime,
yarns[i - 1].Machine, yarns[i - 1].WorkShift);
}
}
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);
// 设置数据行字体大小
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);

View File

@ -207,7 +207,7 @@ public class HyosungRuntime(
await hyosungAgvService.StorageAsync(info.TrayCode);
//标志下线已完成
await hyosungPlcService.LeaveCompletedAsync();
await reportExportService.ExportAsync(info.TrayCode);
await reportExportService.ExportSampleAsync(info.TrayCode);
logger.LogInformation($"plc leaving production line success");
}
catch (Exception e)