feat(工单): 实现工单标签打印功能并优化相关逻辑

- 添加Bartender打印工具类实现工单标签打印功能
- 修改PrintTicketsByTemplate方法返回类型为string并实现完整打印逻辑
- 优化工单领料逻辑,增加原材料工单信息获取
- 调整工单查询条件,移除PlanNum>0的限制
- 修复出库单操作符赋值错误
- 优化不良品处理流程,统一使用不良库代替报废库
- 完善领料报工逻辑,增加计划数校验和原材料工单处理
This commit is contained in:
2026-02-24 15:36:35 +08:00
parent cd7580da43
commit 5011447292
11 changed files with 635 additions and 138 deletions

View File

@@ -27,7 +27,10 @@ namespace DOAN.Admin.WebApi.Controllers
/// </summary>
private readonly IProWorkorderMaterialService _ProWorkorderMaterialService;
public ProWorkorderController(IProWorkorderService ProWorkorderService, IProWorkorderMaterialService ProWorkorderMaterialService)
public ProWorkorderController(
IProWorkorderService ProWorkorderService,
IProWorkorderMaterialService ProWorkorderMaterialService
)
{
_ProWorkorderService = ProWorkorderService;
_ProWorkorderMaterialService = ProWorkorderMaterialService;
@@ -231,7 +234,6 @@ namespace DOAN.Admin.WebApi.Controllers
{
return ToResponse(new ApiResult(500, ex.Message));
}
}
//TODO 分批导入工单,追加工单
@@ -251,7 +253,10 @@ namespace DOAN.Admin.WebApi.Controllers
{
return SUCCESS(null);
}
int response = _ProWorkorderService.ImportDataAppend(formFile, HttpContext.GetName());
int response = _ProWorkorderService.ImportDataAppend(
formFile,
HttpContext.GetName()
);
return SUCCESS(response);
}
@@ -259,7 +264,6 @@ namespace DOAN.Admin.WebApi.Controllers
{
return ToResponse(new ApiResult(500, ex.Message));
}
}
/// <summary>
@@ -399,7 +403,7 @@ namespace DOAN.Admin.WebApi.Controllers
[HttpPost("print")]
[AllowAnonymous]
public async Task<IActionResult> ExportWorkorderPDF([FromBody] ProWorkorderExportDto param)
public IActionResult ExportWorkorderPDF([FromBody] ProWorkorderExportDto param)
{
try
{
@@ -409,9 +413,15 @@ namespace DOAN.Admin.WebApi.Controllers
}
param.Path = "D:/mes/Label/Trace.btw";
//Task<(string, Stream)> conntext = _ProWorkorderService.ExportPDFByQuestPDFDemo(workorderArray);
var exception = await _ProWorkorderService.PrintTicketsByTemplate(param);
return (IActionResult)exception;
var result = _ProWorkorderService.PrintTicketsByTemplate(param);
if (result == "ok")
{
return ToResponse(new ApiResult(200, result));
}
else
{
return ToResponse(new ApiResult(500, result));
}
//return File(conntext.Result.Item2, "application/pdf", HttpUtility.UrlEncode(conntext.Result.Item1));
}
catch (Exception ex)
@@ -436,10 +446,8 @@ namespace DOAN.Admin.WebApi.Controllers
}
catch (Exception ex)
{
return ToResponse(new ApiResult(500, ex.Message));
}
}
/// <summary>
@@ -640,7 +648,9 @@ namespace DOAN.Admin.WebApi.Controllers
return ToResponse(ApiResult.Error($"工单号不能为空"));
}
var response = _ProWorkorderMaterialService.GetPickableWorkordersByWorkorder(workorder);
var response = _ProWorkorderMaterialService.GetPickableWorkordersByWorkorder(
workorder
);
return SUCCESS(response);
}
catch (Exception ex)
@@ -665,7 +675,9 @@ namespace DOAN.Admin.WebApi.Controllers
return ToResponse(ApiResult.Error($"工单号不能为空"));
}
var response = _ProWorkorderMaterialService.GetShippableOrdersByWorkorder(workorder);
var response = _ProWorkorderMaterialService.GetShippableOrdersByWorkorder(
workorder
);
return SUCCESS(response);
}
catch (Exception ex)