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