From 8737002eef3b89f0954742849bdffb1eb37ae1a3 Mon Sep 17 00:00:00 2001 From: git_rabbit Date: Mon, 27 Oct 2025 22:21:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8C=85=E8=A3=85=E6=A0=87=E7=AD=BE):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=A7=E7=BA=BF=E4=BA=A7=E5=93=81=E6=89=98?= =?UTF-8?q?=E7=9B=98=E9=85=8D=E7=BD=AE=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现产线产品托盘配置管理功能,包括接口、模型和服务层 优化包装标签打印逻辑,支持根据托盘配置自动分段打印满箱和零头箱标签 新增多个辅助方法创建不同类型的标签DTO 修复当没有托盘配置时使用默认单个标签打印的逻辑 --- .../mes/wms/WmMaterialPackageController.cs | 109 +++++ ZR.Model/MES/wms/Dto/WmMaterialPackageDto.cs | 47 +++ ZR.Model/MES/wms/WmMaterialPackage.cs | 86 ++++ ZR.Service/mes/qc/FirstFQCService.cs | 375 ++++++++++++++---- .../wms/IService/IWmMaterialPackageService.cs | 21 + .../mes/wms/WmMaterialPackageService.cs | 83 ++++ 6 files changed, 652 insertions(+), 69 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialPackageController.cs create mode 100644 ZR.Model/MES/wms/Dto/WmMaterialPackageDto.cs create mode 100644 ZR.Model/MES/wms/WmMaterialPackage.cs create mode 100644 ZR.Service/mes/wms/IService/IWmMaterialPackageService.cs create mode 100644 ZR.Service/mes/wms/WmMaterialPackageService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialPackageController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialPackageController.cs new file mode 100644 index 00000000..5ea33801 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialPackageController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using ZR.Service.mes.wms.IService; + +//创建时间:2025-10-27 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// + /// + //[Verify] + [Route("/mes/wm/WmMaterialPackage")] + public class WmMaterialPackageController : BaseController + { + /// + /// 接口 + /// + private readonly IWmMaterialPackageService _WmMaterialPackageService; + + public WmMaterialPackageController(IWmMaterialPackageService WmMaterialPackageService) + { + _WmMaterialPackageService = WmMaterialPackageService; + } + + /// + /// 查询列表 + /// + /// + /// + [HttpGet("list")] + //[ActionPermissionFilter(Permission = "business:wmmaterialpackage:list")] + public IActionResult QueryWmMaterialPackage([FromQuery] WmMaterialPackageQueryDto parm) + { + var response = _WmMaterialPackageService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询详情 + /// + /// + /// + [HttpGet("{Id}")] + //[ActionPermissionFilter(Permission = "business:wmmaterialpackage:query")] + public IActionResult GetWmMaterialPackage(int Id) + { + var response = _WmMaterialPackageService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加 + /// + /// + [HttpPost] + //[ActionPermissionFilter(Permission = "business:wmmaterialpackage:add")] + [Log(Title = "", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmMaterialPackage([FromBody] WmMaterialPackageDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmMaterialPackageService.AddWmMaterialPackage(modal); + + return SUCCESS(response); + } + + /// + /// 更新 + /// + /// + [HttpPut] + //[ActionPermissionFilter(Permission = "business:wmmaterialpackage:edit")] + [Log(Title = "", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmMaterialPackage([FromBody] WmMaterialPackageDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmMaterialPackageService.UpdateWmMaterialPackage(modal); + + return ToResponse(response); + } + + /// + /// 删除 + /// + /// + [HttpDelete("{ids}")] + //[ActionPermissionFilter(Permission = "business:wmmaterialpackage:delete")] + [Log(Title = "", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmMaterialPackage(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _WmMaterialPackageService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/Dto/WmMaterialPackageDto.cs b/ZR.Model/MES/wms/Dto/WmMaterialPackageDto.cs new file mode 100644 index 00000000..fc342f41 --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmMaterialPackageDto.cs @@ -0,0 +1,47 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 查询对象 + /// + public class WmMaterialPackageQueryDto : PagerInfo + { + } + + /// + /// 输入输出对象 + /// + public class WmMaterialPackageDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string PartNumber { get; set; } + + public string BlankNumber { get; set; } + + public string RecordType { get; set; } + + public string Color { get; set; } + + public string Specification { get; set; } + + public string Description { get; set; } + + public int? PackageProductionQualifiedPalletNum { get; set; } + + public int? PackageProductionPolishPalletNum { get; set; } + + public DateTime? CreateTime { get; set; } + + public string CreateBy { get; set; } + + public DateTime? UpdateTime { get; set; } + + public string UpdateBy { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmMaterialPackage.cs b/ZR.Model/MES/wms/WmMaterialPackage.cs new file mode 100644 index 00000000..0b938a61 --- /dev/null +++ b/ZR.Model/MES/wms/WmMaterialPackage.cs @@ -0,0 +1,86 @@ + +namespace ZR.Model.MES.wms +{ + /// + /// + /// + [SugarTable("wm_material_package")] + public class WmMaterialPackage + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 零件号 + /// + [SugarColumn(ColumnName = "part_number")] + public string PartNumber { get; set; } + + /// + /// 毛坯号 + /// + [SugarColumn(ColumnName = "blank_number")] + public string BlankNumber { get; set; } + + /// + /// (零件,毛坯) + /// + [SugarColumn(ColumnName = "record_type")] + public string RecordType { get; set; } + + /// + /// 颜色 + /// + public string Color { get; set; } + + /// + /// 规格 + /// + public string Specification { get; set; } + + /// + /// 描述 + /// + public string Description { get; set; } + + /// + /// 产线包装合格品托盘产品数 + /// + [SugarColumn(ColumnName = "package_production_qualified_pallet_num")] + public int? PackageProductionQualifiedPalletNum { get; set; } + + /// + /// 产线包装抛光品托盘产品数 + /// + [SugarColumn(ColumnName = "package_production_polish_pallet_num")] + public int? PackageProductionPolishPalletNum { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "create_by")] + public string CreateBy { get; set; } + + /// + /// 修改时间 + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime? UpdateTime { get; set; } + + /// + /// 修改人 + /// + [SugarColumn(ColumnName = "update_by")] + public string UpdateBy { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs index 4fe65253..5886fc89 100644 --- a/ZR.Service/mes/qc/FirstFQCService.cs +++ b/ZR.Service/mes/qc/FirstFQCService.cs @@ -1460,7 +1460,7 @@ namespace ZR.Service.mes.qc { OnePassNumber = workorder.PreviousNumber - list.sum; } - else + else // 没有合格托盘配置时使用默认的单个标签打印 { OnePassNumber = workorder.PreviousNumber - 0; } @@ -3875,80 +3875,111 @@ namespace ZR.Service.mes.qc try { - //TODO 20251021 包装完成工单后,发送送货单打印数据 - string topic = $"shgg_mes/package_print_1/print/1站点"; - string path1 = "D:\\RIZO\\label\\合格送货单.btw"; - string path2 = "D:\\RIZO\\label\\抛光送货单.btw"; - string path3 = "D:\\RIZO\\label\\打磨送货单.btw"; - PrintDeliveryNoteDto mqttEventDto = - new() - { - Path = path1, - SiteNo = "1站点", - Name = "包装合格送货单标签打印", - PartNumber = first.FinishedPartNumber, - Description = first.ProductDescription, - Color = first.Color, - Specification = "", - WorkOrder = first.WorkorderId, - PackageCode = first.WorkorderId, - Team = first.Team, - Sort = 1, - ProductionTime = first.WorkorderId, - BatchCode = first.WorkorderId, - PackageNum = first.QualifiedNumber.Value, - LabelCode = - $"Type=DeNoHG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={first.QualifiedNumber.Value}", - LabelType = 1, - CreatedTime = DateTime.Now.ToString() - }; + // 合格,抛光,打磨数 + int qualifiedNumber = first.QualifiedNumber.Value; + int paoguangTotal = first.PaoguangTotal.Value; + int damoTotal = first.DamoTotal.Value; - var payload1 = JsonSerializer.Serialize(mqttEventDto); - // 保持原有PublishAsync调用方式 - _mqttService - .PublishAsync( - topic, - payload1, - MqttQualityOfServiceLevel.AtLeastOnce, - retain: false - ) - .Wait(); - mqttEventDto.Path = path2; - mqttEventDto.Name = "包装抛光送货单标签打印"; - mqttEventDto.PackageNum = first.PaoguangTotal.Value; - mqttEventDto.LabelCode = $"Type=DeNoPG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={first.PaoguangTotal.Value}"; - var payload2 = JsonSerializer.Serialize(mqttEventDto); - _mqttService - .PublishAsync( - topic, - payload2, - MqttQualityOfServiceLevel.AtLeastOnce, - retain: false - ) - .Wait(); - mqttEventDto.Path = path3; - mqttEventDto.Name = "包装打磨送货单标签打印"; - mqttEventDto.PackageNum = first.DamoTotal.Value; - mqttEventDto.LabelCode = $"Type=DeNoDM^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={first.DamoTotal.Value}"; - var payload3 = JsonSerializer.Serialize(mqttEventDto); - _mqttService - .PublishAsync( - topic, - payload3, - MqttQualityOfServiceLevel.AtLeastOnce, - retain: false - ) - .Wait(); + //TODO 20251021 包装完成工单后,发送送货单打印数据 + string mqttTopic = $"shgg_mes/package_print_1/print/1站点"; + string qualifiedLabelPath = "D:\\RIZO\\label\\合格送货单.btw"; + string polishLabelPath = "D:\\RIZO\\label\\抛光送货单.btw"; + string polishingLabelPath = "D:\\RIZO\\label\\打磨送货单.btw"; + //TODO 20251027 检查是否存在产线产品托盘配置 + WmMaterialPackage packageConfig = Context.Queryable() + .Where(it => it.RecordType == "零件") + .Where(it => it.PartNumber == first.FinishedPartNumber) + .First(); + //TODO 20251027 计算合格数是否超出合格托盘 + if (packageConfig != null && packageConfig.PackageProductionQualifiedPalletNum != null) + { + // 合格数超额分段出标签 + if (qualifiedNumber > packageConfig.PackageProductionQualifiedPalletNum) + { + // 分批次出多个合格品满箱标签和零头箱标签 + int qualifiedPalletCapacity = packageConfig.PackageProductionQualifiedPalletNum.Value; + int fullPalletCount = qualifiedNumber / qualifiedPalletCapacity; + int remainderCount = qualifiedNumber % qualifiedPalletCapacity; + + // 出满箱标签 + for (int i = 1; i <= fullPalletCount; i++) + { + PrintDeliveryNoteDto qualifiedFullPalletDto = CreateQualifiedFullPalletLabelDto(first, qualifiedPalletCapacity, i); + SendMqttLabelMessage(mqttTopic, qualifiedFullPalletDto); + } + + // 出零头箱标签 + if (remainderCount > 0) + { + PrintDeliveryNoteDto qualifiedRemainderDto = CreateQualifiedRemainderLabelDto(first, remainderCount, fullPalletCount); + SendMqttLabelMessage(mqttTopic, qualifiedRemainderDto); + } + } + else + { + // 正常出单个标签 + PrintDeliveryNoteDto qualifiedSingleLabelDto = CreateQualifiedSingleLabelDto(first, first.QualifiedNumber.Value); + SendMqttLabelMessage(mqttTopic, qualifiedSingleLabelDto); + } + } + else + { + // 没有配置时使用默认的单个标签打印 + PrintDeliveryNoteDto qualifiedSingleLabelDto = CreateQualifiedSingleLabelDto(first, first.QualifiedNumber.Value); + SendMqttLabelMessage(mqttTopic, qualifiedSingleLabelDto); + } + + if (packageConfig != null && packageConfig.PackageProductionPolishPalletNum != null) + { + // 抛光数超额分段 + if (paoguangTotal > packageConfig.PackageProductionPolishPalletNum) + { + // 分批次出多个抛光品满箱标签和零头箱标签 + int polishPalletCapacity = packageConfig.PackageProductionPolishPalletNum.Value; + int fullPalletCount = paoguangTotal / polishPalletCapacity; + int remainderCount = paoguangTotal % polishPalletCapacity; + + // 出满箱标签 + for (int i = 1; i <= fullPalletCount; i++) + { + PrintDeliveryNoteDto polishFullPalletDto = CreatePolishFullPalletLabelDto(first, polishPalletCapacity, i); + SendMqttLabelMessage(mqttTopic, polishFullPalletDto); + } + + // 出零头箱标签 + if (remainderCount > 0) + { + PrintDeliveryNoteDto polishRemainderDto = CreatePolishRemainderLabelDto(first, remainderCount, fullPalletCount); + SendMqttLabelMessage(mqttTopic, polishRemainderDto); + } + } + else + { + // 正常出单个标签 + PrintDeliveryNoteDto polishSingleLabelDto = CreatePolishSingleLabelDto(first, first.PaoguangTotal.Value); + SendMqttLabelMessage(mqttTopic, polishSingleLabelDto); + } + } + else + { + // 没有配置时使用默认的单个标签打印 + PrintDeliveryNoteDto polishSingleLabelDto = CreatePolishSingleLabelDto(first, first.PaoguangTotal.Value); + SendMqttLabelMessage(mqttTopic, polishSingleLabelDto); + } + + + // 使用辅助方法创建打磨标签 + PrintDeliveryNoteDto polishingLabelDto = CreatePolishingLabelDto(first, first.DamoTotal.Value); + SendMqttLabelMessage(mqttTopic, polishingLabelDto); } catch (Exception) { - + } - return 1; + // 以下代码暂时停用 // 产线报表生成后自动化操作 - try { // 1.抛光品入库 @@ -3986,7 +4017,6 @@ namespace ZR.Service.mes.qc { isDoorknobCheck.Or(it => it.Description.Contains(checkStr)); } - ; isDoorknobCheck .And(it => it.Partnumber == workorder_item.FinishedPartNumber) .And(it => it.Type == 1) @@ -4022,7 +4052,214 @@ namespace ZR.Service.mes.qc return 1; } } - return 1; + return 0; + } + + /// + /// 发送MQTT标签打印消息 + /// + private void SendMqttLabelMessage(string mqttTopic, PrintDeliveryNoteDto labelDto) + { + string labelJsonPayload = JsonSerializer.Serialize(labelDto); + _mqttService + .PublishAsync( + mqttTopic, + labelJsonPayload, + MqttQualityOfServiceLevel.AtLeastOnce, + retain: false + ) + .Wait(); + } + + /// + /// 创建合格品满箱标签DTO + /// + private PrintDeliveryNoteDto CreateQualifiedFullPalletLabelDto(QcQualityStatisticsFirst first, int qualifiedPalletNum, int batchIndex) + { + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\合格送货单.btw", + SiteNo = "1站点", + Name = $"包装合格送货单标签打印(满箱)第{batchIndex}箱", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = $"{first.WorkorderId}_{batchIndex}", + Team = first.Team, + Sort = batchIndex, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = qualifiedPalletNum, + LabelCode = $"Type=DeNoHG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={qualifiedPalletNum}^Batch={batchIndex}", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建合格品零头箱标签DTO + /// + private PrintDeliveryNoteDto CreateQualifiedRemainderLabelDto(QcQualityStatisticsFirst first, int remainderCount, int fullPalletCount) + { + int remainderBatchIndex = fullPalletCount + 1; + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\合格送货单.btw", + SiteNo = "1站点", + Name = "包装合格送货单标签打印(零头箱)", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = $"{first.WorkorderId}_{remainderBatchIndex}_remainder", + Team = first.Team, + Sort = remainderBatchIndex, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = remainderCount, + LabelCode = $"Type=DeNoHG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={remainderCount}^Batch={remainderBatchIndex}_remainder", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建合格品单个标签DTO + /// + private PrintDeliveryNoteDto CreateQualifiedSingleLabelDto(QcQualityStatisticsFirst first, int qualifiedNumber) + { + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\合格送货单.btw", + SiteNo = "1站点", + Name = "包装合格送货单标签打印", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = first.WorkorderId, + Team = first.Team, + Sort = 1, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = qualifiedNumber, + LabelCode = $"Type=DeNoHG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={qualifiedNumber}", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建抛光品满箱标签DTO + /// + private PrintDeliveryNoteDto CreatePolishFullPalletLabelDto(QcQualityStatisticsFirst first, int polishPalletNum, int batchIndex) + { + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\抛光送货单.btw", + SiteNo = "1站点", + Name = $"包装抛光送货单标签打印(满箱)第{batchIndex}箱", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = $"{first.WorkorderId}_PG_{batchIndex}", + Team = first.Team, + Sort = batchIndex, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = polishPalletNum, + LabelCode = $"Type=DeNoPG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={polishPalletNum}^Batch={batchIndex}", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建抛光品零头箱标签DTO + /// + private PrintDeliveryNoteDto CreatePolishRemainderLabelDto(QcQualityStatisticsFirst first, int remainderCount, int fullPalletCount) + { + int remainderBatchIndex = fullPalletCount + 1; + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\抛光送货单.btw", + SiteNo = "1站点", + Name = "包装抛光送货单标签打印(零头箱)", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = $"{first.WorkorderId}_PG_{remainderBatchIndex}_remainder", + Team = first.Team, + Sort = remainderBatchIndex, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = remainderCount, + LabelCode = $"Type=DeNoPG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={remainderCount}^Batch={remainderBatchIndex}_remainder", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建抛光品单个标签DTO + /// + private PrintDeliveryNoteDto CreatePolishSingleLabelDto(QcQualityStatisticsFirst first, int polishTotal) + { + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\抛光送货单.btw", + SiteNo = "1站点", + Name = "包装抛光送货单标签打印", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = first.WorkorderId, + Team = first.Team, + Sort = 1, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = polishTotal, + LabelCode = $"Type=DeNoPG^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={polishTotal}", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; + } + + /// + /// 创建打磨品标签DTO + /// + private PrintDeliveryNoteDto CreatePolishingLabelDto(QcQualityStatisticsFirst first, int polishingTotal) + { + return new PrintDeliveryNoteDto + { + Path = "D:\\RIZO\\label\\打磨送货单.btw", + SiteNo = "1站点", + Name = "包装打磨送货单标签打印", + PartNumber = first.FinishedPartNumber, + Description = first.ProductDescription, + Color = first.Color, + Specification = "", + WorkOrder = first.WorkorderId, + PackageCode = first.WorkorderId, + Team = first.Team, + Sort = 1, + ProductionTime = first.WorkorderId, + BatchCode = first.WorkorderId, + PackageNum = polishingTotal, + LabelCode = $"Type=DeNoDM^ItemNumber={first.FinishedPartNumber}^Order={first.WorkorderId}^Qty={polishingTotal}", + LabelType = 1, + CreatedTime = DateTime.Now.ToString() + }; } } } diff --git a/ZR.Service/mes/wms/IService/IWmMaterialPackageService.cs b/ZR.Service/mes/wms/IService/IWmMaterialPackageService.cs new file mode 100644 index 00000000..e332e176 --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmMaterialPackageService.cs @@ -0,0 +1,21 @@ +using ZR.Model; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms.IService +{ + /// + /// service接口 + /// + public interface IWmMaterialPackageService : IBaseService + { + PagedInfo GetList(WmMaterialPackageQueryDto parm); + + WmMaterialPackage GetInfo(int Id); + + WmMaterialPackage AddWmMaterialPackage(WmMaterialPackage parm); + + int UpdateWmMaterialPackage(WmMaterialPackage parm); + + } +} diff --git a/ZR.Service/mes/wms/WmMaterialPackageService.cs b/ZR.Service/mes/wms/WmMaterialPackageService.cs new file mode 100644 index 00000000..8d81fe3a --- /dev/null +++ b/ZR.Service/mes/wms/WmMaterialPackageService.cs @@ -0,0 +1,83 @@ +using Infrastructure.Attribute; +using SqlSugar; +using ZR.Model; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using ZR.Repository; +using ZR.Service.mes.wms.IService; + +namespace ZR.Service.mes.wms +{ + /// + /// Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmMaterialPackageService), ServiceLifetime = LifeTime.Transient)] + public class WmMaterialPackageService : BaseService, IWmMaterialPackageService + { + /// + /// 查询列表 + /// + /// + /// + public PagedInfo GetList(WmMaterialPackageQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmMaterialPackage GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加 + /// + /// + /// + public WmMaterialPackage AddWmMaterialPackage(WmMaterialPackage model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改 + /// + /// + /// + public int UpdateWmMaterialPackage(WmMaterialPackage model) + { + //var response = Update(w => w.Id == model.Id, it => new WmMaterialPackage() + //{ + // PartNumber = model.PartNumber, + // BlankNumber = model.BlankNumber, + // RecordType = model.RecordType, + // Color = model.Color, + // Specification = model.Specification, + // Description = model.Description, + // PackageProductionQualifiedPalletNum = model.PackageProductionQualifiedPalletNum, + // PackageProductionPolishPalletNum = model.PackageProductionPolishPalletNum, + // UpdateTime = model.UpdateTime, + // UpdateBy = model.UpdateBy, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file