feat(工单): 实现工单标签打印功能并优化相关逻辑
- 添加Bartender打印工具类实现工单标签打印功能 - 修改PrintTicketsByTemplate方法返回类型为string并实现完整打印逻辑 - 优化工单领料逻辑,增加原材料工单信息获取 - 调整工单查询条件,移除PlanNum>0的限制 - 修复出库单操作符赋值错误 - 优化不良品处理流程,统一使用不良库代替报废库 - 完善领料报工逻辑,增加计划数校验和原材料工单处理
This commit is contained in:
@@ -311,103 +311,106 @@ namespace DOAN.Service.BZFM
|
||||
})
|
||||
.ExecuteCommand();
|
||||
|
||||
// 是否审批通过
|
||||
if (isApproved)
|
||||
{
|
||||
// 如果有工单则工单报废数增加
|
||||
if (!string.IsNullOrEmpty(record.Workorder))
|
||||
{
|
||||
var workorderInfo = Context
|
||||
.Queryable<ProWorkorder>()
|
||||
.Where(x => x.Workorder == record.Workorder)
|
||||
.First();
|
||||
if (workorderInfo != null)
|
||||
{
|
||||
workorderInfo.DefectNum += (int)record.ScrapQuantity;
|
||||
Context
|
||||
.Updateable(workorderInfo)
|
||||
.UpdateColumns(x => new { x.DefectNum })
|
||||
.ExecuteCommand();
|
||||
}
|
||||
}
|
||||
// 调用入库单服务添加到不良库
|
||||
InboundReceiptDto revokeRecepitDto = new()
|
||||
{
|
||||
ReceiptType = 1,
|
||||
MaterialCode = record.ProductCode,
|
||||
BatchNo = "000",
|
||||
LocationCode = "BL001",
|
||||
WarehouseCode = "WH007",
|
||||
SupplierCode = record.SupplierCode,
|
||||
StoveCode = record.StoveCode,
|
||||
Workorder = record.Workorder,
|
||||
WorkorderRaw = record.ScrapOrderNo,
|
||||
Operator = approver,
|
||||
Quantity = record.ScrapQuantity,
|
||||
TransactionType = "不良入库",
|
||||
Remarks = $"不良入库,不良单号:{record.ScrapOrderNo}",
|
||||
};
|
||||
MmInventoryService mmInventoryService = new();
|
||||
string createReceiptresult = mmInventoryService.CreateInboundReceipt(
|
||||
revokeRecepitDto
|
||||
);
|
||||
if (createReceiptresult != "ok")
|
||||
{
|
||||
throw new Exception(createReceiptresult);
|
||||
}
|
||||
|
||||
// 根据报废类型处理
|
||||
if (record.ScrapType == "转用")
|
||||
{
|
||||
// 转用单批准:生成新工单(这里需要根据实际业务调整工单生成逻辑)
|
||||
// 注意:需要确保工单服务的命名空间和方法名正确
|
||||
// 示例:_proWorkorderService.GenerateWorkorder(record);
|
||||
|
||||
// 如果有工单则工单报废数增加
|
||||
if (!string.IsNullOrEmpty(record.Workorder))
|
||||
{
|
||||
var workorderInfo = Context
|
||||
.Queryable<ProWorkorder>()
|
||||
.Where(x => x.Workorder == record.Workorder)
|
||||
.First();
|
||||
if (workorderInfo != null)
|
||||
{
|
||||
workorderInfo.DefectNum += (int)record.ScrapQuantity;
|
||||
Context
|
||||
.Updateable(workorderInfo)
|
||||
.UpdateColumns(x => new { x.DefectNum })
|
||||
.ExecuteCommand();
|
||||
}
|
||||
}
|
||||
|
||||
// 入报废库
|
||||
InboundReceiptDto revokeRecepitDto = new()
|
||||
{
|
||||
ReceiptType = 1,
|
||||
MaterialCode = record.ProductCode,
|
||||
BatchNo = "000",
|
||||
LocationCode = "ZYK001",
|
||||
WarehouseCode = "WH005",
|
||||
SupplierCode = record.SupplierCode,
|
||||
StoveCode = record.StoveCode,
|
||||
Workorder = record.Workorder,
|
||||
WorkorderRaw = record.ScrapOrderNo,
|
||||
Operator = approver,
|
||||
Quantity = record.ScrapQuantity,
|
||||
TransactionType = "转用入库",
|
||||
Remarks = $"转用入库,转用单号:{record.ScrapOrderNo}",
|
||||
};
|
||||
MmInventoryService mmInventoryService = new();
|
||||
string createReceiptresult = mmInventoryService.CreateInboundReceipt(
|
||||
revokeRecepitDto
|
||||
);
|
||||
if (createReceiptresult != "ok")
|
||||
{
|
||||
throw new Exception(createReceiptresult);
|
||||
}
|
||||
}
|
||||
else if (record.ScrapType == "报废")
|
||||
{
|
||||
// 报废单批准:生成入库单到报废库(这里需要根据实际业务调整入库逻辑)
|
||||
// 如果有工单则工单报废数增加
|
||||
if (!string.IsNullOrEmpty(record.Workorder))
|
||||
{
|
||||
var workorderInfo = Context
|
||||
.Queryable<ProWorkorder>()
|
||||
.Where(x => x.Workorder == record.Workorder)
|
||||
.First();
|
||||
if (workorderInfo != null)
|
||||
{
|
||||
workorderInfo.DefectNum += (int)record.ScrapQuantity;
|
||||
Context
|
||||
.Updateable(workorderInfo)
|
||||
.UpdateColumns(x => new { x.DefectNum })
|
||||
.ExecuteCommand();
|
||||
}
|
||||
}
|
||||
// 调用入库单服务添加到报废库
|
||||
InboundReceiptDto revokeRecepitDto = new()
|
||||
{
|
||||
ReceiptType = 1,
|
||||
MaterialCode = record.ProductCode,
|
||||
BatchNo = "000",
|
||||
LocationCode = "BFK001",
|
||||
WarehouseCode = "WH006",
|
||||
SupplierCode = record.SupplierCode,
|
||||
StoveCode = record.StoveCode,
|
||||
Workorder = record.Workorder,
|
||||
WorkorderRaw = record.ScrapOrderNo,
|
||||
Operator = approver,
|
||||
Quantity = record.ScrapQuantity,
|
||||
TransactionType = "报废入库",
|
||||
Remarks = $"报废入库,报废单号:{record.ScrapOrderNo}",
|
||||
};
|
||||
MmInventoryService mmInventoryService = new();
|
||||
string createReceiptresult = mmInventoryService.CreateInboundReceipt(
|
||||
revokeRecepitDto
|
||||
);
|
||||
if (createReceiptresult != "ok")
|
||||
{
|
||||
throw new Exception(createReceiptresult);
|
||||
}
|
||||
}
|
||||
//if (record.ScrapType == "转用")
|
||||
//{
|
||||
// InboundReceiptDto revokeRecepitDto = new()
|
||||
// {
|
||||
// ReceiptType = 1,
|
||||
// MaterialCode = record.ProductCode,
|
||||
// BatchNo = "000",
|
||||
// LocationCode = "ZYK001",
|
||||
// WarehouseCode = "WH005",
|
||||
// SupplierCode = record.SupplierCode,
|
||||
// StoveCode = record.StoveCode,
|
||||
// Workorder = record.Workorder,
|
||||
// WorkorderRaw = record.ScrapOrderNo,
|
||||
// Operator = approver,
|
||||
// Quantity = record.ScrapQuantity,
|
||||
// TransactionType = "转用入库",
|
||||
// Remarks = $"转用入库,转用单号:{record.ScrapOrderNo}",
|
||||
// };
|
||||
// MmInventoryService mmInventoryService = new();
|
||||
// string createReceiptresult = mmInventoryService.CreateInboundReceipt(
|
||||
// revokeRecepitDto
|
||||
// );
|
||||
// if (createReceiptresult != "ok")
|
||||
// {
|
||||
// throw new Exception(createReceiptresult);
|
||||
// }
|
||||
//}
|
||||
//else if (record.ScrapType == "报废")
|
||||
//{
|
||||
// InboundReceiptDto revokeRecepitDto = new()
|
||||
// {
|
||||
// ReceiptType = 1,
|
||||
// MaterialCode = record.ProductCode,
|
||||
// BatchNo = "000",
|
||||
// LocationCode = "BFK001",
|
||||
// WarehouseCode = "WH006",
|
||||
// SupplierCode = record.SupplierCode,
|
||||
// StoveCode = record.StoveCode,
|
||||
// Workorder = record.Workorder,
|
||||
// WorkorderRaw = record.ScrapOrderNo,
|
||||
// Operator = approver,
|
||||
// Quantity = record.ScrapQuantity,
|
||||
// TransactionType = "报废入库",
|
||||
// Remarks = $"报废入库,报废单号:{record.ScrapOrderNo}",
|
||||
// };
|
||||
// MmInventoryService mmInventoryService = new();
|
||||
// string createReceiptresult = mmInventoryService.CreateInboundReceipt(
|
||||
// revokeRecepitDto
|
||||
// );
|
||||
// if (createReceiptresult != "ok")
|
||||
// {
|
||||
// throw new Exception(createReceiptresult);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -546,7 +549,7 @@ namespace DOAN.Service.BZFM
|
||||
.First();
|
||||
|
||||
// 单据不良数校验
|
||||
if(parm.ScrapQuantity + workorderInfo.DefectNum > workorderInfo.PlanNum)
|
||||
if (parm.ScrapQuantity + workorderInfo.DefectNum > workorderInfo.PlanNum)
|
||||
{
|
||||
throw new Exception("不良数量总和大于计划数,请检查输入!");
|
||||
}
|
||||
@@ -592,8 +595,6 @@ namespace DOAN.Service.BZFM
|
||||
return Context.Insertable(newQcScrapRecords).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据不良品记录ID撤销不良品记录
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user