From b4039d0b49d66df6e08121f7b46356efc4c23dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=AD=A3=E6=98=93?= Date: Mon, 13 May 2024 17:32:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93-=E6=AF=9B=E5=9D=AF=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E6=B7=BB=E5=8A=A0=EF=BC=8C=E6=AF=9B=E5=9D=AF=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E6=97=A5=E5=BF=97=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/wms/WmBlankInventoryController.cs | 136 ++++++++++++++++++ .../mes/wms/WmBlankRecordController.cs | 111 ++++++++++++++ ....NET-毛坯库存库存变动记录表-0513140439.zip | Bin 0 -> 8688 bytes .../ZrAdmin.NET-毛坯库存表-0513140434.zip | Bin 0 -> 8845 bytes ...114234102ae279d-bb09-4390-90e0-490342e8ebb4.xlsx | Bin 0 -> 4879 bytes ZR.Model/MES/wms/Dto/WmBlankInventoryDto.cs | 73 ++++++++++ ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs | 43 ++++++ ZR.Model/MES/wms/WmBlankInventory.cs | 91 ++++++++++++ ZR.Model/MES/wms/WmBlankRecord.cs | 74 ++++++++++ .../wms/IService/IWmBlankInventoryService.cs | 24 ++++ .../mes/wms/IService/IWmBlankRecordService.cs | 24 ++++ ZR.Service/mes/wms/WmBlankInventoryService.cs | 121 ++++++++++++++++ ZR.Service/mes/wms/WmBlankRecordService.cs | 87 +++++++++++ .../mes/wms/WmGoodsNowProductionService.cs | 7 + 14 files changed, 791 insertions(+) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存库存变动记录表-0513140439.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存表-0513140434.zip create mode 100644 ZR.Admin.WebApi/导出统计报表-2024051114234102ae279d-bb09-4390-90e0-490342e8ebb4.xlsx create mode 100644 ZR.Model/MES/wms/Dto/WmBlankInventoryDto.cs create mode 100644 ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs create mode 100644 ZR.Model/MES/wms/WmBlankInventory.cs create mode 100644 ZR.Model/MES/wms/WmBlankRecord.cs create mode 100644 ZR.Service/mes/wms/IService/IWmBlankInventoryService.cs create mode 100644 ZR.Service/mes/wms/IService/IWmBlankRecordService.cs create mode 100644 ZR.Service/mes/wms/WmBlankInventoryService.cs create mode 100644 ZR.Service/mes/wms/WmBlankRecordService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs new file mode 100644 index 00000000..4cdd6589 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs @@ -0,0 +1,136 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; +using ZR.Model.MES.wms; + +//创建时间:2024-05-13 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 毛坯库存表 + /// + [Verify] + [Route("/mes/wm/WmBlankInventory")] + public class WmBlankInventoryController : BaseController + { + /// + /// 毛坯库存表接口 + /// + private readonly IWmBlankInventoryService _WmBlankInventoryService; + + public WmBlankInventoryController(IWmBlankInventoryService WmBlankInventoryService) + { + _WmBlankInventoryService = WmBlankInventoryService; + } + + /// + /// 查询毛坯库存表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:wmblankinventory:list")] + public IActionResult QueryWmBlankInventory([FromQuery] WmBlankInventoryQueryDto parm) + { + var response = _WmBlankInventoryService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询毛坯库存表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:wmblankinventory:query")] + public IActionResult GetWmBlankInventory(string Id) + { + var response = _WmBlankInventoryService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加毛坯库存表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:wmblankinventory:add")] + [Log(Title = "毛坯库存表", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmBlankInventory([FromBody] WmBlankInventoryDto parm) + { + try + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmBlankInventoryService.AddWmBlankInventory(modal); + + return SUCCESS(response); + } + catch (Exception ex) + { + return ToResponse(new ApiResult(500, ex.Message, null)); + } + + } + + /// + /// 更新毛坯库存表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:wmblankinventory:edit")] + [Log(Title = "毛坯库存表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmBlankInventory([FromBody] WmBlankInventoryDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmBlankInventoryService.UpdateWmBlankInventory(modal); + + return ToResponse(response); + } + + /// + /// 删除毛坯库存表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:wmblankinventory:delete")] + [Log(Title = "毛坯库存表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmBlankInventory(string ids) + { + string[] idsArr = ids.Split(','); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _WmBlankInventoryService.Delete(idsArr); + + return ToResponse(response); + } + + + /// + /// 物料清单数据同步 + /// + /// + [HttpPost("synchronousMaterial")] + [ActionPermissionFilter(Permission = "business:wmblankinventory:add")] + [Log(Title = "物料清单数据同步", BusinessType = BusinessType.INSERT)] + public IActionResult SynchronousMaterial([FromBody] WmBlankInventoryDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmBlankInventoryService.AddWmBlankInventory(modal); + + return SUCCESS(response); + + } + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs new file mode 100644 index 00000000..4f5275dc --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs @@ -0,0 +1,111 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; +using ZR.Model.MES.wms; + +//创建时间:2024-05-13 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 毛坯库存库存变动记录表 + /// + [Verify] + [Route("/mes/wm/WmBlankRecord")] + public class WmBlankRecordController : BaseController + { + /// + /// 毛坯库存库存变动记录表接口 + /// + private readonly IWmBlankRecordService _WmBlankRecordService; + + public WmBlankRecordController(IWmBlankRecordService WmBlankRecordService) + { + _WmBlankRecordService = WmBlankRecordService; + } + + /// + /// 查询毛坯库存库存变动记录表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:wmblankrecord:list")] + public IActionResult QueryWmBlankRecord([FromQuery] WmBlankRecordQueryDto parm) + { + var response = _WmBlankRecordService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询毛坯库存库存变动记录表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:wmblankrecord:query")] + public IActionResult GetWmBlankRecord(string Id) + { + var response = _WmBlankRecordService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加毛坯库存库存变动记录表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:wmblankrecord:add")] + [Log(Title = "毛坯库存库存变动记录表", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmBlankRecord([FromBody] WmBlankRecordDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmBlankRecordService.AddWmBlankRecord(modal); + + return SUCCESS(response); + } + + /// + /// 更新毛坯库存库存变动记录表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:wmblankrecord:edit")] + [Log(Title = "毛坯库存库存变动记录表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmBlankRecord([FromBody] WmBlankRecordDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmBlankRecordService.UpdateWmBlankRecord(modal); + + return ToResponse(response); + } + + /// + /// 删除毛坯库存库存变动记录表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:wmblankrecord:delete")] + [Log(Title = "毛坯库存库存变动记录表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmBlankRecord(string ids) + { + string[] idsArr = ids.Split(','); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _WmBlankRecordService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存库存变动记录表-0513140439.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存库存变动记录表-0513140439.zip new file mode 100644 index 0000000000000000000000000000000000000000..7e132c55e162a25e077e98d7c8243a8defa49d87 GIT binary patch literal 8688 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 literal 0 HcmV?d00001 diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存表-0513140434.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-毛坯库存表-0513140434.zip new file mode 100644 index 0000000000000000000000000000000000000000..864ffebf60d93de2b3781edb8f64b3285a72a2f0 GIT binary patch literal 8845 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 Nd*k}-@#}U0@PF+wP{jZM literal 0 HcmV?d00001 diff --git a/ZR.Model/MES/wms/Dto/WmBlankInventoryDto.cs b/ZR.Model/MES/wms/Dto/WmBlankInventoryDto.cs new file mode 100644 index 00000000..47b69532 --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmBlankInventoryDto.cs @@ -0,0 +1,73 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 毛坯库存表查询对象 + /// + public class WmBlankInventoryQueryDto : PagerInfo + { + public string BlankNum { get; set; } + public int? Type { get; set; } + public int? Status { get; set; } + } + + /// + /// 毛坯库存表输入输出对象 + /// + public class WmBlankInventoryDto + { + // [Required(ErrorMessage = "主键不能为空")] + public string Id { get; set; } + + public string FkPaintId { get; set; } + + public string BlankNum { get; set; } + + /// + /// 单位 + /// + public string Unit { get; set; } + /// + /// 颜色 + /// + public string Color { get; set; } + /// + /// 规格 + /// + public string Specification { get; set; } + /// + /// 描述 + /// + public string Description { get; set; } + /// + /// 版本号 + /// + public string Version { get; set; } + + public int? Quantity { get; set; } + + public int? MaxNum { get; set; } + + public int? MinNum { get; set; } + + public int? WarnNum { get; set; } + + public int? Type { get; set; } + + public int? Status { get; set; } + + public string Remark { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs new file mode 100644 index 00000000..445d4a0d --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs @@ -0,0 +1,43 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 毛坯库存库存变动记录表查询对象 + /// + public class WmBlankRecordQueryDto : PagerInfo + { + } + + /// + /// 毛坯库存库存变动记录表输入输出对象 + /// + public class WmBlankRecordDto + { + [Required(ErrorMessage = "主键不能为空")] + public string Id { get; set; } + + public string FkBlankInventoryId { get; set; } + + public string BlankNum { get; set; } + + public int? ChangeQuantity { get; set; } + + public decimal Type { get; set; } + + public decimal Status { get; set; } + + public string Remark { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmBlankInventory.cs b/ZR.Model/MES/wms/WmBlankInventory.cs new file mode 100644 index 00000000..7daec9cd --- /dev/null +++ b/ZR.Model/MES/wms/WmBlankInventory.cs @@ -0,0 +1,91 @@ + +namespace ZR.Model.MES.wms +{ + /// + /// 毛坯库存表 + /// + [SugarTable("wm_blank_inventory")] + public class WmBlankInventory + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false)] + public string Id { get; set; } + + /// + /// 油漆id + /// + [SugarColumn(ColumnName = "fk_paint_id")] + public string FkPaintId { get; set; } + + /// + /// 毛坯号 + /// + [SugarColumn(ColumnName = "blank_num")] + public string BlankNum { get; set; } + + /// + /// 库存数量 + /// + public int? Quantity { get; set; } + + /// + /// 最大库存 + /// + [SugarColumn(ColumnName = "max_num")] + public int? MaxNum { get; set; } + + /// + /// 最小库存 + /// + [SugarColumn(ColumnName = "min_num")] + public int? MinNum { get; set; } + + /// + /// 预警库存 + /// + [SugarColumn(ColumnName = "warn_num")] + public int? WarnNum { get; set; } + + /// + /// 类别 + /// + public int? Type { get; set; } + + /// + /// 状态 + /// + public int? Status { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmBlankRecord.cs b/ZR.Model/MES/wms/WmBlankRecord.cs new file mode 100644 index 00000000..ada05def --- /dev/null +++ b/ZR.Model/MES/wms/WmBlankRecord.cs @@ -0,0 +1,74 @@ + +namespace ZR.Model.MES.wms +{ + /// + /// 毛坯库存库存变动记录表 + /// + [SugarTable("wm_blank_record")] + public class WmBlankRecord + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false)] + public string Id { get; set; } + + /// + /// 毛坯库存主键 + /// + [SugarColumn(ColumnName = "fk_blank_inventory_id")] + public string FkBlankInventoryId { get; set; } + + /// + /// 毛坯号 + /// + [SugarColumn(ColumnName = "blank_num")] + public string BlankNum { get; set; } + + /// + /// 变动数量 + /// + [SugarColumn(ColumnName = "change_quantity")] + public int? ChangeQuantity { get; set; } + + /// + /// 类别 + /// + public decimal Type { get; set; } + + /// + /// 状态 + /// + public decimal Status { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/IService/IWmBlankInventoryService.cs b/ZR.Service/mes/wms/IService/IWmBlankInventoryService.cs new file mode 100644 index 00000000..bec77ab2 --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmBlankInventoryService.cs @@ -0,0 +1,24 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.MES.wms; +using System.Collections.Generic; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms.IService +{ + /// + /// 毛坯库存表service接口 + /// + public interface IWmBlankInventoryService : IBaseService + { + PagedInfo GetList(WmBlankInventoryQueryDto parm); + + WmBlankInventory GetInfo(string Id); + + WmBlankInventory AddWmBlankInventory(WmBlankInventory parm); + + int UpdateWmBlankInventory(WmBlankInventory parm); + + } +} diff --git a/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs new file mode 100644 index 00000000..fe4cda6b --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs @@ -0,0 +1,24 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using System.Collections.Generic; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms.IService +{ + /// + /// 毛坯库存库存变动记录表service接口 + /// + public interface IWmBlankRecordService : IBaseService + { + PagedInfo GetList(WmBlankRecordQueryDto parm); + + WmBlankRecord GetInfo(string Id); + + WmBlankRecord AddWmBlankRecord(WmBlankRecord parm); + + int UpdateWmBlankRecord(WmBlankRecord parm); + + } +} diff --git a/ZR.Service/mes/wms/WmBlankInventoryService.cs b/ZR.Service/mes/wms/WmBlankInventoryService.cs new file mode 100644 index 00000000..356d0007 --- /dev/null +++ b/ZR.Service/mes/wms/WmBlankInventoryService.cs @@ -0,0 +1,121 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.MES.wms; +using ZR.Repository; +using System.Linq; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms +{ + /// + /// 毛坯库存表Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmBlankInventoryService), ServiceLifetime = LifeTime.Transient)] + public class WmBlankInventoryService : BaseService, IWmBlankInventoryService + { + /// + /// 查询毛坯库存表列表 + /// + /// + /// + public PagedInfo GetList(WmBlankInventoryQueryDto parm) + { + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.BlankNum), it => it.BlankNum.Contains(parm.BlankNum)) + .AndIF(parm.Status > -1, it => it.Status == parm.Status) + .AndIF(parm.Type > 0, it => it.Type == parm.Type) + ; + + var response = Queryable() + .Where(predicate.ToExpression()) + .OrderByDescending(it=>it.UpdatedTime) + .ToPage(parm); + if (response.Result.Count > 0) + { + foreach (WmBlankInventoryDto item in response.Result) + { + WmMaterial material = Context.Queryable() + .Where(it => it.BlankNum == item.BlankNum) + .Where(it => it.Remarks == "毛坯") + .First(); + if (material == null) + { + item.Description = "此毛坯号不在物料清单内!"; + continue; + } + item.Color = material.Color; + item.Unit = material.Unit; + item.Version = material.Version; + item.Specification = material.Specification; + item.Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + } + } + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmBlankInventory GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加毛坯库存表 + /// + /// + /// + public WmBlankInventory AddWmBlankInventory(WmBlankInventory model) + { + bool hasRecord = Context.Queryable() + .Where(it => it.BlankNum == model.BlankNum) + .Any(); + if(hasRecord) + { + throw new Exception("毛坯仓库已有相同毛坯号记录"); + } + model.Id = SnowFlakeSingle.Instance.NextId().ToString(); + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改毛坯库存表 + /// + /// + /// + public int UpdateWmBlankInventory(WmBlankInventory model) + { + //var response = Update(w => w.Id == model.Id, it => new WmBlankInventory() + //{ + // BlankNum = model.BlankNum, + // Quantity = model.Quantity, + // MaxNum = model.MaxNum, + // MinNum = model.MinNum, + // WarnNum = model.WarnNum, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/WmBlankRecordService.cs b/ZR.Service/mes/wms/WmBlankRecordService.cs new file mode 100644 index 00000000..1a8279b2 --- /dev/null +++ b/ZR.Service/mes/wms/WmBlankRecordService.cs @@ -0,0 +1,87 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms +{ + /// + /// 毛坯库存库存变动记录表Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmBlankRecordService), ServiceLifetime = LifeTime.Transient)] + public class WmBlankRecordService : BaseService, IWmBlankRecordService + { + /// + /// 查询毛坯库存库存变动记录表列表 + /// + /// + /// + public PagedInfo GetList(WmBlankRecordQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmBlankRecord GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加毛坯库存库存变动记录表 + /// + /// + /// + public WmBlankRecord AddWmBlankRecord(WmBlankRecord model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改毛坯库存库存变动记录表 + /// + /// + /// + public int UpdateWmBlankRecord(WmBlankRecord model) + { + //var response = Update(w => w.Id == model.Id, it => new WmBlankRecord() + //{ + // BlankNum = model.BlankNum, + // ChangeQuantity = model.ChangeQuantity, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/WmGoodsNowProductionService.cs b/ZR.Service/mes/wms/WmGoodsNowProductionService.cs index b11391a5..7d802202 100644 --- a/ZR.Service/mes/wms/WmGoodsNowProductionService.cs +++ b/ZR.Service/mes/wms/WmGoodsNowProductionService.cs @@ -258,6 +258,13 @@ namespace ZR.Service.mes.wms { model.PackageCodeOriginal = model.PackageCodeClient; } + bool hasRecord = Context.Queryable() + .Where(it => it.PackageCodeClient == model.PackageCodeClient) + .Any(); + if (hasRecord) + { + throw new Exception("成品仓库已有相同批次号记录"); + } return Context.Insertable(model).ExecuteReturnEntity(); }