From fc7ab6e3fb150b10289011fbfd75d26bb3041562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=99=93=E4=B8=9C?= <17363321594@163.com> Date: Fri, 14 Nov 2025 17:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProFinishedProductReceiptController.cs | 109 ++++++++++ .../ProFinishedProductReceiptLogController.cs | 109 ++++++++++ ...y-e60ed214-33d1-4b35-aa1e-d8d5f9423f06.xml | 16 ++ ...主表(含产品信息及标签打印状态)-1114144448.zip | Bin 0 -> 13009 bytes ...NET-MES成品入库单操作日志表-1114144226.zip | Bin 0 -> 9336 bytes .../pro/DTO/ProFinishedProductReceiptDto.cs | 109 ++++++++++ .../DTO/ProFinishedProductReceiptLogDto.cs | 45 ++++ ZR.Model/MES/pro/ProFinishedProductReceipt.cs | 196 ++++++++++++++++++ .../MES/pro/ProFinishedProductReceiptLog.cs | 58 ++++++ .../IProFinishedProductReceiptLogService.cs | 23 ++ .../IProFinishedProductReceiptService.cs | 23 ++ .../ProFinishedProductReceiptLogService.cs | 83 ++++++++ .../pro/ProFinishedProductReceiptService.cs | 153 ++++++++++++++ 13 files changed, 924 insertions(+) create mode 100644 ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptLogController.cs create mode 100644 ZR.Admin.WebApi/DataProtection/key-e60ed214-33d1-4b35-aa1e-d8d5f9423f06.xml create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单主表(含产品信息及标签打印状态)-1114144448.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单操作日志表-1114144226.zip create mode 100644 ZR.Model/MES/pro/DTO/ProFinishedProductReceiptDto.cs create mode 100644 ZR.Model/MES/pro/DTO/ProFinishedProductReceiptLogDto.cs create mode 100644 ZR.Model/MES/pro/ProFinishedProductReceipt.cs create mode 100644 ZR.Model/MES/pro/ProFinishedProductReceiptLog.cs create mode 100644 ZR.Service/mes/pro/IService/IProFinishedProductReceiptLogService.cs create mode 100644 ZR.Service/mes/pro/IService/IProFinishedProductReceiptService.cs create mode 100644 ZR.Service/mes/pro/ProFinishedProductReceiptLogService.cs create mode 100644 ZR.Service/mes/pro/ProFinishedProductReceiptService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptController.cs b/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptController.cs new file mode 100644 index 00000000..c7655526 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-11-14 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// MES成品入库单主表(含产品信息及标签打印状态) + /// + [Verify] + [Route("productManagement/ProFinishedProductReceipt")] + public class ProFinishedProductReceiptController : BaseController + { + /// + /// MES成品入库单主表(含产品信息及标签打印状态)接口 + /// + private readonly IProFinishedProductReceiptService _ProFinishedProductReceiptService; + + public ProFinishedProductReceiptController(IProFinishedProductReceiptService ProFinishedProductReceiptService) + { + _ProFinishedProductReceiptService = ProFinishedProductReceiptService; + } + + /// + /// 查询MES成品入库单主表(含产品信息及标签打印状态)列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceipt:list")] + public IActionResult QueryProFinishedProductReceipt([FromQuery] ProFinishedProductReceiptQueryDto parm) + { + var response = _ProFinishedProductReceiptService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询MES成品入库单主表(含产品信息及标签打印状态)详情 + /// + /// + /// + [HttpGet("{ReceiptNo}")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceipt:query")] + public IActionResult GetProFinishedProductReceipt(string ReceiptNo) + { + var response = _ProFinishedProductReceiptService.GetInfo(ReceiptNo); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加MES成品入库单主表(含产品信息及标签打印状态) + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceipt:add")] + [Log(Title = "MES成品入库单主表(含产品信息及标签打印状态)", BusinessType = BusinessType.INSERT)] + public IActionResult AddProFinishedProductReceipt([FromBody] ProFinishedProductReceiptDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _ProFinishedProductReceiptService.AddProFinishedProductReceipt(modal); + + return SUCCESS(response); + } + + /// + /// 更新MES成品入库单主表(含产品信息及标签打印状态) + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceipt:edit")] + [Log(Title = "MES成品入库单主表(含产品信息及标签打印状态)", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateProFinishedProductReceipt([FromBody] ProFinishedProductReceiptDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _ProFinishedProductReceiptService.UpdateProFinishedProductReceipt(modal); + + return ToResponse(response); + } + + /// + /// 删除MES成品入库单主表(含产品信息及标签打印状态) + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceipt:delete")] + [Log(Title = "MES成品入库单主表(含产品信息及标签打印状态)", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteProFinishedProductReceipt(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _ProFinishedProductReceiptService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptLogController.cs b/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptLogController.cs new file mode 100644 index 00000000..97d5794f --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/pro/ProFinishedProductReceiptLogController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-11-14 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// MES成品入库单操作日志表 + /// + [Verify] + [Route("productManagement/ProFinishedProductReceiptLog")] + public class ProFinishedProductReceiptLogController : BaseController + { + /// + /// MES成品入库单操作日志表接口 + /// + private readonly IProFinishedProductReceiptLogService _ProFinishedProductReceiptLogService; + + public ProFinishedProductReceiptLogController(IProFinishedProductReceiptLogService ProFinishedProductReceiptLogService) + { + _ProFinishedProductReceiptLogService = ProFinishedProductReceiptLogService; + } + + /// + /// 查询MES成品入库单操作日志表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceiptlog:list")] + public IActionResult QueryProFinishedProductReceiptLog([FromQuery] ProFinishedProductReceiptLogQueryDto parm) + { + var response = _ProFinishedProductReceiptLogService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询MES成品入库单操作日志表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceiptlog:query")] + public IActionResult GetProFinishedProductReceiptLog(long Id) + { + var response = _ProFinishedProductReceiptLogService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加MES成品入库单操作日志表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceiptlog:add")] + [Log(Title = "MES成品入库单操作日志表", BusinessType = BusinessType.INSERT)] + public IActionResult AddProFinishedProductReceiptLog([FromBody] ProFinishedProductReceiptLogDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _ProFinishedProductReceiptLogService.AddProFinishedProductReceiptLog(modal); + + return SUCCESS(response); + } + + /// + /// 更新MES成品入库单操作日志表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceiptlog:edit")] + [Log(Title = "MES成品入库单操作日志表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateProFinishedProductReceiptLog([FromBody] ProFinishedProductReceiptLogDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _ProFinishedProductReceiptLogService.UpdateProFinishedProductReceiptLog(modal); + + return ToResponse(response); + } + + /// + /// 删除MES成品入库单操作日志表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "productManagement:profinishedproductreceiptlog:delete")] + [Log(Title = "MES成品入库单操作日志表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteProFinishedProductReceiptLog(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _ProFinishedProductReceiptLogService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/DataProtection/key-e60ed214-33d1-4b35-aa1e-d8d5f9423f06.xml b/ZR.Admin.WebApi/DataProtection/key-e60ed214-33d1-4b35-aa1e-d8d5f9423f06.xml new file mode 100644 index 00000000..1da3a7ff --- /dev/null +++ b/ZR.Admin.WebApi/DataProtection/key-e60ed214-33d1-4b35-aa1e-d8d5f9423f06.xml @@ -0,0 +1,16 @@ + + + 2025-11-14T02:49:12.7305702Z + 2025-11-14T02:49:12.6652806Z + 2026-02-12T02:49:12.6652806Z + + + + + + + +yuBV7XpvuKsyiwxbcTT5sL3f+rT2wOrOh14Tycwnk485eHhYsRPaLzosQaivCvSCEK+lOwkOPg+CQrr/bdO3g== + + + + \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单主表(含产品信息及标签打印状态)-1114144448.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单主表(含产品信息及标签打印状态)-1114144448.zip new file mode 100644 index 0000000000000000000000000000000000000000..f10bebed1e36ae0414fec9f521987e22ed0c0bce GIT binary patch literal 13009 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 literal 0 HcmV?d00001 diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单操作日志表-1114144226.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-MES成品入库单操作日志表-1114144226.zip new file mode 100644 index 0000000000000000000000000000000000000000..270b643652f30caccf66f1a8f0ebd152a09fd039 GIT binary patch literal 9336 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 G_ViyelG4Ng literal 0 HcmV?d00001 diff --git a/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptDto.cs b/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptDto.cs new file mode 100644 index 00000000..c9363933 --- /dev/null +++ b/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptDto.cs @@ -0,0 +1,109 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.Dto +{ + /// + /// MES成品入库单主表(含产品信息及标签打印状态)查询对象 + /// + public class ProFinishedProductReceiptQueryDto : PagerInfo + { + /// + /// 入库类型 + /// + public string ReceiptType { get; set; } + + /// + /// 单据状态 + /// + public string Status { get; set; } + + public DateTime? StartTime { get; set; } + + public DateTime? EndTime { get; set; } + } + + /// + /// MES成品入库单主表(含产品信息及标签打印状态)输入输出对象 + /// + public class ProFinishedProductReceiptDto + { + [Required(ErrorMessage = "入库单号(主键,规则:RCP+日期+流水号,如RCP20251112001)不能为空")] + public string ReceiptNo { get; set; } + + [Required(ErrorMessage = "入库日期不能为空")] + public DateTime? ReceiptDate { get; set; } + + public string SiteNo { get; set; } + + public string WorkOrder { get; set; } + + [Required(ErrorMessage = "仓库编码(关联仓库表)不能为空")] + public string WarehouseCode { get; set; } + + [Required(ErrorMessage = "入库类型:NORMAL-正常入库;REWORK-返工入库;RETURN-客户退货;OTHER-其他不能为空")] + public string ReceiptType { get; set; } + + [Required(ErrorMessage = "单据状态:DRAFT-草稿;SUBMITTED-已提交;APPROVED-已审核;CANCELED-已取消不能为空")] + public string Status { get; set; } + + [Required(ErrorMessage = "产品编号(对应JSON中的PartNumber,如5615101DSV0000B96)不能为空")] + public string PartNumber { get; set; } + + [Required(ErrorMessage = "产品名称(对应JSON中的Description,如A58左后门把手-手动版-幻彩银)不能为空")] + public string Description { get; set; } + + public string Color { get; set; } + + public string Specification { get; set; } + + public string ProductionLine { get; set; } + + public string Team { get; set; } + + public string ShiftNo { get; set; } + + public string LabelFrom { get; set; } + + public DateTime? ProductionTime { get; set; } + + [Required(ErrorMessage = "批次编码(对应JSON中的BatchCode,如20251016)不能为空")] + public string BatchCode { get; set; } + + [Required(ErrorMessage = "计量单位(如个、箱、台)不能为空")] + public string Unit { get; set; } + + public string PackageCode { get; set; } + + public int? PackageCount { get; set; } + + public int? PackageNum { get; set; } + + public string LabelCode { get; set; } + + [Required(ErrorMessage = "标签打印状态:UNPRINTED-未打印;PRINTED-已打印不能为空")] + public string LabelPrintStatus { get; set; } + + public string StorageLocation { get; set; } + + public string QcStatus { get; set; } + + [Required(ErrorMessage = "创建人(用户ID)不能为空")] + public string CreatedBy { get; set; } + + [Required(ErrorMessage = "创建时间(对应JSON中的CreatedTime)不能为空")] + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + public string ApprovedBy { get; set; } + + public DateTime? ApprovedTime { get; set; } + + public string Remark { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptLogDto.cs b/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptLogDto.cs new file mode 100644 index 00000000..18f707a8 --- /dev/null +++ b/ZR.Model/MES/pro/DTO/ProFinishedProductReceiptLogDto.cs @@ -0,0 +1,45 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.Dto +{ + /// + /// MES成品入库单操作日志表查询对象 + /// + public class ProFinishedProductReceiptLogQueryDto : PagerInfo + { + public DateTime? StartTime { get; set; } + + public DateTime? EndTime { get; set; } + } + + /// + /// MES成品入库单操作日志表输入输出对象 + /// + public class ProFinishedProductReceiptLogDto + { + [Required(ErrorMessage = "自增主键不能为空")] + [JsonConverter(typeof(ValueToStringConverter))] + public long Id { get; set; } + + [Required(ErrorMessage = "关联入库单号不能为空")] + public string ReceiptNo { get; set; } + + [Required(ErrorMessage = "操作人(用户ID)不能为空")] + public string OperatedBy { get; set; } + + [Required(ErrorMessage = "操作时间不能为空")] + public DateTime? OperatedTime { get; set; } + + [Required(ErrorMessage = "操作类型:CREATE-创建;UPDATE-修改;APPROVE-审核;CANCEL-取消;PRINT_LABEL-打印标签;OTHER-其他不能为空")] + public string OperationType { get; set; } + + public string OperationContent { get; set; } + + public string OperationResult { get; set; } + + public string Remark { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/pro/ProFinishedProductReceipt.cs b/ZR.Model/MES/pro/ProFinishedProductReceipt.cs new file mode 100644 index 00000000..6b009e2a --- /dev/null +++ b/ZR.Model/MES/pro/ProFinishedProductReceipt.cs @@ -0,0 +1,196 @@ + +namespace ZR.Model.Business +{ + /// + /// MES成品入库单主表(含产品信息及标签打印状态) + /// + [SugarTable("pro_finished_product_receipt")] + public class ProFinishedProductReceipt + { + /// + /// 入库单号(主键,规则:RCP+日期+流水号,如RCP20251112001) + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "receipt_no")] + public string ReceiptNo { get; set; } + + /// + /// 入库日期 + /// + [SugarColumn(ColumnName = "receipt_date")] + public DateTime? ReceiptDate { get; set; } + + /// + /// 站点编号(对应JSON中的SiteNo) + /// + [SugarColumn(ColumnName = "site_no")] + public string SiteNo { get; set; } + + /// + /// 生产工单号(对应JSON中的WorkOrder) + /// + [SugarColumn(ColumnName = "work_order")] + public string WorkOrder { get; set; } + + /// + /// 仓库编码(关联仓库表) + /// + [SugarColumn(ColumnName = "warehouse_code")] + public string WarehouseCode { get; set; } + + /// + /// 入库类型:NORMAL-正常入库;REWORK-返工入库;RETURN-客户退货;OTHER-其他 + /// + [SugarColumn(ColumnName = "receipt_type")] + public string ReceiptType { get; set; } + + /// + /// 单据状态:DRAFT-草稿;SUBMITTED-已提交;APPROVED-已审核;CANCELED-已取消 + /// + public string Status { get; set; } + + /// + /// 产品编号(对应JSON中的PartNumber,如5615101DSV0000B96) + /// + [SugarColumn(ColumnName = "part_number")] + public string PartNumber { get; set; } + + /// + /// 产品名称(对应JSON中的Description,如A58左后门把手-手动版-幻彩银) + /// + public string Description { get; set; } + + /// + /// 颜色(对应JSON中的Color,如幻彩银) + /// + public string Color { get; set; } + + /// + /// 规格型号(对应JSON中的Specification,如手动版) + /// + public string Specification { get; set; } + + /// + /// 生产线 + /// + [SugarColumn(ColumnName = "production_line")] + public string ProductionLine { get; set; } + + /// + /// 班组(对应JSON中的Team,如B班) + /// + public string Team { get; set; } + + /// + /// 班次(如早班/中班/晚班) + /// + [SugarColumn(ColumnName = "shift_no")] + public string ShiftNo { get; set; } + + /// + /// 标签来源(对应JSON中的LabelFrom,如后道) + /// + [SugarColumn(ColumnName = "label_from")] + public string LabelFrom { get; set; } + + /// + /// 生产时间(对应JSON中的ProductionTime) + /// + [SugarColumn(ColumnName = "production_time")] + public DateTime? ProductionTime { get; set; } + + /// + /// 批次编码(对应JSON中的BatchCode,如20251016) + /// + [SugarColumn(ColumnName = "batch_code")] + public string BatchCode { get; set; } + + /// + /// 计量单位(如个、箱、台) + /// + public string Unit { get; set; } + + /// + /// 包装编码(对应JSON中的PackageCode,如BNW20240401_001) + /// + [SugarColumn(ColumnName = "package_code")] + public string PackageCode { get; set; } + + /// + /// 包装数量(对应JSON中的PackageCout,如1) + /// + [SugarColumn(ColumnName = "package_count")] + public int? PackageCount { get; set; } + + /// + /// 每包数量(对应JSON中的PackageNum,如24) + /// + [SugarColumn(ColumnName = "package_num")] + public int? PackageNum { get; set; } + + /// + /// 标签编码(对应JSON中的LabelCode,如60102853-Y73-01/2025040811//) + /// + [SugarColumn(ColumnName = "label_code")] + public string LabelCode { get; set; } + + /// + /// 标签打印状态:UNPRINTED-未打印;PRINTED-已打印 + /// + [SugarColumn(ColumnName = "label_print_status")] + public string LabelPrintStatus { get; set; } + + /// + /// 存储库位(如A区-1货架-01层) + /// + [SugarColumn(ColumnName = "storage_location")] + public string StorageLocation { get; set; } + + /// + /// 质检状态:PENDING-待检;QUALIFIED-合格;UNQUALIFIED-不合格 + /// + [SugarColumn(ColumnName = "qc_status")] + public string QcStatus { get; set; } + + /// + /// 创建人(用户ID) + /// + [SugarColumn(ColumnName = "created_by")] + public string CreatedBy { get; set; } + + /// + /// 创建时间(对应JSON中的CreatedTime) + /// + [SugarColumn(ColumnName = "created_time")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人(用户ID) + /// + [SugarColumn(ColumnName = "updated_by")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "updated_time")] + public DateTime? UpdatedTime { get; set; } + + /// + /// 审核人(用户ID) + /// + [SugarColumn(ColumnName = "approved_by")] + public string ApprovedBy { get; set; } + + /// + /// 审核时间 + /// + [SugarColumn(ColumnName = "approved_time")] + public DateTime? ApprovedTime { get; set; } + + /// + /// 备注信息 + /// + public string Remark { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/pro/ProFinishedProductReceiptLog.cs b/ZR.Model/MES/pro/ProFinishedProductReceiptLog.cs new file mode 100644 index 00000000..4608bcc0 --- /dev/null +++ b/ZR.Model/MES/pro/ProFinishedProductReceiptLog.cs @@ -0,0 +1,58 @@ + +namespace ZR.Model.Business +{ + /// + /// MES成品入库单操作日志表 + /// + [SugarTable("pro_finished_product_receipt_log")] + public class ProFinishedProductReceiptLog + { + /// + /// 自增主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public long Id { get; set; } + + /// + /// 关联入库单号 + /// + [SugarColumn(ColumnName = "receipt_no")] + public string ReceiptNo { get; set; } + + /// + /// 操作人(用户ID) + /// + [SugarColumn(ColumnName = "operated_by")] + public string OperatedBy { get; set; } + + /// + /// 操作时间 + /// + [SugarColumn(ColumnName = "operated_time")] + public DateTime? OperatedTime { get; set; } + + /// + /// 操作类型:CREATE-创建;UPDATE-修改;APPROVE-审核;CANCEL-取消;PRINT_LABEL-打印标签;OTHER-其他 + /// + [SugarColumn(ColumnName = "operation_type")] + public string OperationType { get; set; } + + /// + /// 操作内容(如“标签打印成功,编码:XXX”) + /// + [SugarColumn(ColumnName = "operation_content")] + public string OperationContent { get; set; } + + /// + /// 操作结果:SUCCESS-成功;FAIL-失败 + /// + [SugarColumn(ColumnName = "operation_result")] + public string OperationResult { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/pro/IService/IProFinishedProductReceiptLogService.cs b/ZR.Service/mes/pro/IService/IProFinishedProductReceiptLogService.cs new file mode 100644 index 00000000..27195f3b --- /dev/null +++ b/ZR.Service/mes/pro/IService/IProFinishedProductReceiptLogService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// MES成品入库单操作日志表service接口 + /// + public interface IProFinishedProductReceiptLogService : IBaseService + { + PagedInfo GetList(ProFinishedProductReceiptLogQueryDto parm); + + ProFinishedProductReceiptLog GetInfo(long Id); + + ProFinishedProductReceiptLog AddProFinishedProductReceiptLog(ProFinishedProductReceiptLog parm); + + int UpdateProFinishedProductReceiptLog(ProFinishedProductReceiptLog parm); + + } +} diff --git a/ZR.Service/mes/pro/IService/IProFinishedProductReceiptService.cs b/ZR.Service/mes/pro/IService/IProFinishedProductReceiptService.cs new file mode 100644 index 00000000..6c83d328 --- /dev/null +++ b/ZR.Service/mes/pro/IService/IProFinishedProductReceiptService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// MES成品入库单主表(含产品信息及标签打印状态)service接口 + /// + public interface IProFinishedProductReceiptService : IBaseService + { + PagedInfo GetList(ProFinishedProductReceiptQueryDto parm); + + ProFinishedProductReceipt GetInfo(string ReceiptNo); + + ProFinishedProductReceipt AddProFinishedProductReceipt(ProFinishedProductReceipt parm); + + int UpdateProFinishedProductReceipt(ProFinishedProductReceipt parm); + + } +} diff --git a/ZR.Service/mes/pro/ProFinishedProductReceiptLogService.cs b/ZR.Service/mes/pro/ProFinishedProductReceiptLogService.cs new file mode 100644 index 00000000..1c4be0f3 --- /dev/null +++ b/ZR.Service/mes/pro/ProFinishedProductReceiptLogService.cs @@ -0,0 +1,83 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// MES成品入库单操作日志表Service业务层处理 + /// + [AppService(ServiceType = typeof(IProFinishedProductReceiptLogService), ServiceLifetime = LifeTime.Transient)] + public class ProFinishedProductReceiptLogService : BaseService, IProFinishedProductReceiptLogService + { + /// + /// 查询MES成品入库单操作日志表列表 + /// + /// + /// + public PagedInfo GetList(ProFinishedProductReceiptLogQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public ProFinishedProductReceiptLog GetInfo(long Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加MES成品入库单操作日志表 + /// + /// + /// + public ProFinishedProductReceiptLog AddProFinishedProductReceiptLog(ProFinishedProductReceiptLog model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改MES成品入库单操作日志表 + /// + /// + /// + public int UpdateProFinishedProductReceiptLog(ProFinishedProductReceiptLog model) + { + //var response = Update(w => w.Id == model.Id, it => new ProFinishedProductReceiptLog() + //{ + // ReceiptNo = model.ReceiptNo, + // OperatedBy = model.OperatedBy, + // OperatedTime = model.OperatedTime, + // OperationType = model.OperationType, + // OperationContent = model.OperationContent, + // OperationResult = model.OperationResult, + // Remark = model.Remark, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/pro/ProFinishedProductReceiptService.cs b/ZR.Service/mes/pro/ProFinishedProductReceiptService.cs new file mode 100644 index 00000000..0be8a115 --- /dev/null +++ b/ZR.Service/mes/pro/ProFinishedProductReceiptService.cs @@ -0,0 +1,153 @@ +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using SqlSugar; +using System; +using System.Linq; +using ZR.Model; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using ZR.Service.System.IService; + +namespace ZR.Service.Business +{ + /// + /// MES成品入库单主表(含产品信息及标签打印状态)Service业务层处理 + /// + [AppService(ServiceType = typeof(IProFinishedProductReceiptService), ServiceLifetime = LifeTime.Transient)] + public class ProFinishedProductReceiptService : BaseService, IProFinishedProductReceiptService + { + private readonly IProFinishedProductReceiptLogService _receiptLogService; + + /// + /// 查询MES成品入库单主表(含产品信息及标签打印状态)列表 + /// + /// + /// + public PagedInfo GetList(ProFinishedProductReceiptQueryDto parm) + { + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.ReceiptType), r => r.ReceiptType.Contains(parm.ReceiptType)) + .AndIF(!string.IsNullOrEmpty(parm.Status), r => r.Status.Contains(parm.Status)) + .AndIF(parm.StartTime != null, r => r.CreatedTime >= parm.StartTime) + .AndIF(parm.EndTime != null, r => r.CreatedTime <= parm.EndTime); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + /// + /// 获取详情 + /// + /// + /// + public ProFinishedProductReceipt GetInfo(string ReceiptNo) + { + var response = Queryable() + .Where(x => x.ReceiptNo == ReceiptNo) + .First(); + + return response; + } + + /// + /// 添加MES成品入库单主表(含产品信息及标签打印状态) + /// + /// + /// + public ProFinishedProductReceipt AddProFinishedProductReceipt(ProFinishedProductReceipt model) + { + + + try + { + model.CreatedTime = DateTime.Now; + var insertedModel = Context.Insertable(model).ExecuteReturnEntity(); + + if (insertedModel != null && !string.IsNullOrEmpty(insertedModel.ReceiptNo)) + { + _receiptLogService.AddProFinishedProductReceiptLog( + new ProFinishedProductReceiptLog + { + ReceiptNo = model.ReceiptNo, + OperatedBy = "", + OperatedTime = DateTime.Now, + OperationType = "CREATE", + OperationContent = "入库单创建成功", + OperationResult = "SUCCESS", + Remark = "" + }); + return insertedModel; + } else + { + throw new Exception("入库单插入失败"); + } + } + catch (Exception ex) + { + _receiptLogService.AddProFinishedProductReceiptLog( + new ProFinishedProductReceiptLog + { + ReceiptNo = model.ReceiptNo, + OperatedBy = "", + OperatedTime = DateTime.Now, + OperationType = "CREATE", + OperationContent = "入库单创建失败", + OperationResult = "FAIL", + Remark = "" + }); + throw new Exception($"添加成品入库单失败:{ex.Message}", ex); + } + } + + /// + /// 修改MES成品入库单主表(含产品信息及标签打印状态) + /// + /// + /// + public int UpdateProFinishedProductReceipt(ProFinishedProductReceipt model) + { + //var response = Update(w => w.ReceiptNo == model.ReceiptNo, it => new ProFinishedProductReceipt() + //{ + // ReceiptDate = model.ReceiptDate, + // SiteNo = model.SiteNo, + // WorkOrder = model.WorkOrder, + // WarehouseCode = model.WarehouseCode, + // ReceiptType = model.ReceiptType, + // Status = model.Status, + // PartNumber = model.PartNumber, + // Description = model.Description, + // Color = model.Color, + // Specification = model.Specification, + // ProductionLine = model.ProductionLine, + // Team = model.Team, + // ShiftNo = model.ShiftNo, + // LabelFrom = model.LabelFrom, + // ProductionTime = model.ProductionTime, + // BatchCode = model.BatchCode, + // Unit = model.Unit, + // PackageCode = model.PackageCode, + // PackageCount = model.PackageCount, + // PackageNum = model.PackageNum, + // LabelCode = model.LabelCode, + // LabelPrintStatus = model.LabelPrintStatus, + // StorageLocation = model.StorageLocation, + // QcStatus = model.QcStatus, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + // ApprovedBy = model.ApprovedBy, + // ApprovedTime = model.ApprovedTime, + // Remark = model.Remark, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file