diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs index d2cad974..260f57b4 100644 --- a/src/WMS.Web.Api/Controllers/InStockController.cs +++ b/src/WMS.Web.Api/Controllers/InStockController.cs @@ -48,19 +48,19 @@ namespace WMS.Web.Api.Controllers } /// - /// 保存 + /// 上架 /// /// /// [HttpPost] - [Route("Save")] - public async Task Save(List dto) + [Route("Shelf")] + public async Task Shelf([FromBody] SaveInStockRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); - return await _inStockService.Save(dto, loginInfo); + return await _inStockService.Shelf(dto, loginInfo); } /// @@ -70,7 +70,7 @@ namespace WMS.Web.Api.Controllers /// [HttpPost] [Route("Sync")] - public async Task Sync(OperateRequest dto) + public async Task Sync([FromBody] OperateRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) diff --git a/src/WMS.Web.Api/Controllers/InStockTaskController.cs b/src/WMS.Web.Api/Controllers/InStockTaskController.cs index afe84d13..816dec34 100644 --- a/src/WMS.Web.Api/Controllers/InStockTaskController.cs +++ b/src/WMS.Web.Api/Controllers/InStockTaskController.cs @@ -5,8 +5,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Values; @@ -20,10 +22,12 @@ namespace WMS.Web.Api.Controllers public class InStockTaskController : ControllerBase { private readonly ILoginService _loginService; + private readonly IInStockService _inStockService; private readonly IInStockTaskRepositories _inStockTaskRepositories; - public InStockTaskController(ILoginService loginService, IInStockTaskRepositories inStockTaskRepositories) + public InStockTaskController(ILoginService loginService, IInStockTaskRepositories inStockTaskRepositories, IInStockService inStockService) { this._loginService = loginService; + this._inStockService = inStockService; this._inStockTaskRepositories = inStockTaskRepositories; } @@ -42,5 +46,21 @@ namespace WMS.Web.Api.Controllers var result = await _inStockTaskRepositories.GetPagedList(dto); return result; } + + /// + /// 收货 + /// + /// + /// + [HttpPost] + [Route("Receive")] + public async Task Receive([FromBody] UpdateInStockTaskRequest dto) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return Result.ReFailure(ResultCodes.Token_Invalid_Error); + + return await _inStockService.Receive(dto, loginInfo); + } } } diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index 5fd87e7d..5d0834e9 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -47,6 +47,10 @@ namespace WMS.Web.Api.Controllers { response.InstockType.Add(enumv.ToString(), enumv.GetRemark()); } + foreach (InstockStatus enumv in Enum.GetValues(typeof(InstockStatus))) + { + response.InstockStatus.Add(enumv.ToString(), enumv.GetRemark()); + } //2 //1 return Task.FromResult(Result.ReSuccess(response)); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 17126da2..956e9988 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -35,9 +35,9 @@ - + - 保存 + 上架 @@ -61,6 +61,13 @@ + + + 收货 + + + + 登录接口 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index f5978902..8f107fe2 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -250,6 +250,11 @@ 入库单类型 + + + 入库状态 + + ERP:单据查询-dto @@ -390,6 +395,51 @@ 创建时间 + + + 入库任务单-详情信息 + + + + + 修改-入库任务单-明细对象 + + + + + 明细ID + + + + + 单据头ID + + + + + 物料ID + + + + + 收货数量 + + + + + 入库任务-修改请求对象 + + + + + 单据ID + + + + + 明细 + + 入库单查询请求对象 @@ -525,6 +575,46 @@ 同步成功或者失败 + + + 保存入库单明细-请求对象 + + + + + 来源单号 + + + + + 供应商 + + + + + 组织 + + + + + 物料Id + + + + + 仓库ID + + + + + 仓位ID + + + + + 入库数量 + + 保存入库单-请求对象 @@ -535,41 +625,16 @@ 入库类型 - - - 来源单号 - - - + - 供应商 + 任务单ID - + - 组织 + 明细 - - - 物料Id - - - - - 仓库ID - - - - - 仓位ID - - - - - 入库数量 - - 授权token -- 给前端用的验证token @@ -955,11 +1020,6 @@ 用户在单点中维一ID - - - 规格型号 - - 箱号 @@ -1615,6 +1675,56 @@ 来源单号 + + + 入库类型 + + + + + 入库状态 + + + + + 收货人 + + + + + 上架人 + + + + + 创建时间(入库时间) + + + + + 创建时间(入库时间) + + + + + 供应商ID + + + + + 组织ID + + + + + 物料编码 + + + + + 仓库ID + + 入库任务表-查询对象 @@ -1710,12 +1820,12 @@ 收货时间 - + 上架人 - + 入库时间 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index add28018..ebe851ea 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -270,6 +270,11 @@ ID + + + 任务单ID + + 单据编号 @@ -391,14 +396,14 @@ 收货时间 - + - 操作人(上架人) + 上架人 - + - 操作时间(入库时间) + 入库时间(上架时间) @@ -412,6 +417,18 @@ + + + 收货 + + + + + + 上架 + + + erp入库任务明细表 @@ -995,6 +1012,20 @@ + + + 详情 + + + + + + + 列表 + + + + 批量添加 @@ -1069,14 +1100,6 @@ 入库单服务接口 - - - 保存 - - - - - 同步金蝶 @@ -1084,6 +1107,51 @@ + + + 收货 + + + + + + + + 上架 + + + + + + + + 保存-出库单 + + + + + + + + + 修改-入库任务信息 + + + + + + + + + + 批量修改-入库任务信息 + + + + + + + 出库服务 @@ -1582,14 +1650,6 @@ 入库单服务 - - - 出库单 - - - - - 同步金蝶 @@ -1597,6 +1657,51 @@ + + + 收货 + + + + + + + + 上架 + + + + + + + + 保存-出库单 + + + + + + + + + 修改-入库任务信息 + + + + + + + + + + 批量修改-入库任务信息 + + + + + + + 出库服务 diff --git a/src/WMS.Web.Core/Dto/EnumStatusResponse.cs b/src/WMS.Web.Core/Dto/EnumStatusResponse.cs index d5e4b112..58a968d5 100644 --- a/src/WMS.Web.Core/Dto/EnumStatusResponse.cs +++ b/src/WMS.Web.Core/Dto/EnumStatusResponse.cs @@ -26,8 +26,12 @@ namespace WMS.Web.Core.Dto /// 入库单类型 /// public Dictionary InstockType { get; set; } = new Dictionary(); + /// + /// 入库状态 + /// + public Dictionary InstockStatus { get; set; } = new Dictionary(); + - } } diff --git a/src/WMS.Web.Core/Dto/InStock/SaveInStockDetailsRequest.cs b/src/WMS.Web.Core/Dto/InStock/SaveInStockDetailsRequest.cs new file mode 100644 index 00000000..b26b9abc --- /dev/null +++ b/src/WMS.Web.Core/Dto/InStock/SaveInStockDetailsRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace WMS.Web.Core.Dto.InStock +{ + /// + /// 保存入库单明细-请求对象 + /// + public class SaveInStockDetailsRequest + { + /// + /// 来源单号 + /// + [Required(ErrorMessage = "来源单号不能为空")] + public string SourceBillNo { get; set; } + + /// + /// 供应商 + /// + [Required(ErrorMessage = "供应商不能为空")] + public int SupplierId { get; set; } + /// + /// 组织 + /// + [Required(ErrorMessage = "组织不能为空")] + public int OrgId { get; set; } + + /// + /// 物料Id + /// + [Required(ErrorMessage = "物料不能为空")] + public int MaterialId { get; set; } + + /// + /// 仓库ID + /// + [Required(ErrorMessage = "仓库不能为空")] + public int StockId { get; set; } + /// + /// 仓位ID + /// + [Required(ErrorMessage = " 仓位不能为空")] + public int SubStockId { get; set; } + + /// + /// 入库数量 + /// + [Required(ErrorMessage = "入库数量不能为空")] + public decimal Qty { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/InStock/SaveInStockRequest.cs b/src/WMS.Web.Core/Dto/InStock/SaveInStockRequest.cs index 35c15bc2..6e4ad951 100644 --- a/src/WMS.Web.Core/Dto/InStock/SaveInStockRequest.cs +++ b/src/WMS.Web.Core/Dto/InStock/SaveInStockRequest.cs @@ -18,43 +18,14 @@ namespace WMS.Web.Core.Dto.InStock public int Type { get; set; } /// - /// 来源单号 - /// - [Required(ErrorMessage = "来源单号不能为空")] - public string SourceBillNo { get; set; } - - /// - /// 供应商 + /// 任务单ID /// - [Required(ErrorMessage = "供应商不能为空")] - public int SupplierId { get; set; } + [Required(ErrorMessage = "任务单ID不能为空")] + public int TaskId { get; set; } + /// - /// 组织 + /// 明细 /// - [Required(ErrorMessage = "组织不能为空")] - public int OrgId { get; set; } - - /// - /// 物料Id - /// - [Required(ErrorMessage = "物料不能为空")] - public int MaterialId { get; set; } - - /// - /// 仓库ID - /// - [Required(ErrorMessage = "仓库不能为空")] - public int StockId { get; set; } - /// - /// 仓位ID - /// - [Required(ErrorMessage = " 仓位不能为空")] - public int SubStockId { get; set; } - - /// - /// 入库数量 - /// - [Required(ErrorMessage = "入库数量不能为空")] - public decimal Qty { get; set; } + public List Details { get; set; } = new List(); } } diff --git a/src/WMS.Web.Core/Dto/InStockTask/InStockTaskInfoDto.cs b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskInfoDto.cs new file mode 100644 index 00000000..1cef8279 --- /dev/null +++ b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskInfoDto.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.InStockTask +{ + /// + /// 入库任务单-详情信息 + /// + public class InStockTaskInfoDto + { + } +} diff --git a/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs new file mode 100644 index 00000000..977ad491 --- /dev/null +++ b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskDetailsRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.InStockTask +{ + /// + /// 修改-入库任务单-明细对象 + /// + public class UpdateInStockTaskDetailsRequest + { + /// + /// 明细ID + /// + public int Id { get; set; } + /// + /// 单据头ID + /// + public int Fid { get; set; } + /// + /// 物料ID + /// + public int MaterialId { get; set; } + /// + /// 收货数量 + /// + public decimal ReceiveQty { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskRequest.cs b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskRequest.cs new file mode 100644 index 00000000..e471549d --- /dev/null +++ b/src/WMS.Web.Core/Dto/InStockTask/UpdateInStockTaskRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace WMS.Web.Core.Dto.InStockTask +{ + /// + /// 入库任务-修改请求对象 + /// + public class UpdateInStockTaskRequest + { + /// + /// 单据ID + /// + [Required(ErrorMessage = "唯一编号不能未空")] + public int Id { get; set; } + + /// + /// 明细 + /// + public List Details { get; set; } = new List(); + } +} diff --git a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs index 75e23f5a..b4b31331 100644 --- a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs @@ -13,5 +13,50 @@ namespace WMS.Web.Core.Dto /// 来源单号 /// public string SourceBillNo { get; set; } + /// + /// 入库类型 + /// + public int? Type { get; set; } + + /// + /// 入库状态 + /// + public int? Status { get; set; } + + /// + /// 收货人 + /// + public string Receiver { get; set; } + + /// + /// 上架人 + /// + public string Operator { get; set; } + + /// + /// 创建时间(入库时间) + /// + public DateTime? CreateBeginDate { get; set; } = null; + /// + /// 创建时间(入库时间) + /// + public DateTime? CreateEndDate { get; set; } = null; + + /// + /// 供应商ID + /// + public int? SupplierId { get; set; } + /// + /// 组织ID + /// + public int? OrgId { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 仓库ID + /// + public int? StockId { get; set; } } } diff --git a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs index 2d69ed0a..499100e8 100644 --- a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs +++ b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs @@ -94,11 +94,11 @@ namespace WMS.Web.Core.Dto /// /// 上架人 /// - public string Operator { get; set; } + public string Shelfer { get; set; } /// /// 入库时间 /// - public DateTime OperateTime { get; set; } + public DateTime ShelfTime { get; set; } /// /// 明细备注 /// diff --git a/src/WMS.Web.Domain/Entitys/InStock.cs b/src/WMS.Web.Domain/Entitys/InStock.cs index a9ec4518..9fca0d0c 100644 --- a/src/WMS.Web.Domain/Entitys/InStock.cs +++ b/src/WMS.Web.Domain/Entitys/InStock.cs @@ -17,6 +17,12 @@ namespace WMS.Web.Domain.Entitys /// ID /// public int Id { get; set; } + + /// + /// 任务单ID + /// + public int TaskId { get; set; } + /// /// 单据编号 /// diff --git a/src/WMS.Web.Domain/Entitys/InstockTask.cs b/src/WMS.Web.Domain/Entitys/InstockTask.cs index f432fb66..79168765 100644 --- a/src/WMS.Web.Domain/Entitys/InstockTask.cs +++ b/src/WMS.Web.Domain/Entitys/InstockTask.cs @@ -38,13 +38,13 @@ namespace WMS.Web.Domain.Entitys /// public DateTime ReceiveTime { get; set; } /// - /// 操作人(上架人) + /// 上架人 /// - public int OperatorId { get; set; } + public int ShelferId { get; set; } /// - /// 操作时间(入库时间) + /// 入库时间(上架时间) /// - public DateTime OperateTime { get; set; } + public DateTime ShelfTime { get; set; } /// /// 明细 @@ -76,5 +76,25 @@ namespace WMS.Web.Domain.Entitys this.BillNo = "RKRW" + needStr + newId.ToString(); } } + + /// + /// 收货 + /// + /// + public void Receive(int creatorId) + { + this.ReceiverId = creatorId; + this.ReceiveTime = DateTime.Now; + } + + /// + /// 上架 + /// + /// + public void Shelf(int creatorId) + { + this.ShelferId = creatorId; + this.ShelfTime = DateTime.Now; + } } } diff --git a/src/WMS.Web.Domain/IService/IInStockService.cs b/src/WMS.Web.Domain/IService/IInStockService.cs index 5f7d1caf..ff574fde 100644 --- a/src/WMS.Web.Domain/IService/IInStockService.cs +++ b/src/WMS.Web.Domain/IService/IInStockService.cs @@ -4,6 +4,7 @@ using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.InStock; +using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Internal.Results; @@ -14,13 +15,6 @@ namespace WMS.Web.Domain.IService /// public interface IInStockService { - /// - /// 保存 - /// - /// - /// - /// - Task Save(List dto, LoginInDto loginInfo); /// /// 同步金蝶 @@ -28,5 +22,50 @@ namespace WMS.Web.Domain.IService /// /// Task Sync(OperateRequest dto); + + /// + /// 收货 + /// + /// + /// + /// + Task Receive(UpdateInStockTaskRequest dto, LoginInDto loginInfo); + + /// + /// 上架 + /// + /// + /// + /// + Task Shelf(SaveInStockRequest instock, LoginInDto loginInfo); + + /// + /// 保存-出库单 + /// + /// + /// + /// + /// + Task Save(SaveInStockRequest dto, int staffId, bool isTransaction = true); + + /// + /// 修改-入库任务信息 + /// + /// + /// + /// + /// + /// + Task Update(UpdateInStockTaskRequest dto, int staffId, bool isReceive, bool isTransaction = true); + + /// + /// 批量修改-入库任务信息 + /// + /// + /// + /// + /// + /// + Task UpdateRange(List ids, int staffId, bool isReceive, bool isTransaction = true); } } diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs index 572f1a85..18b6b014 100644 --- a/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs @@ -20,6 +20,20 @@ namespace WMS.Web.Domain.Infrastructure /// Task> GetPagedList(InStockTaskQueryRequest dto); + /// + /// 详情 + /// + /// + /// + Task Get(int id); + + /// + /// 列表 + /// + /// + /// + Task> GetList(List ids); + /// /// 批量添加 /// diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index dee56fd8..fa332314 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -2,10 +2,12 @@ using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.InStock; +using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; @@ -19,7 +21,7 @@ namespace WMS.Web.Domain.Services /// /// 入库单服务 /// - public class InStockService: IInStockService + public class InStockService : IInStockService { private readonly IMapper _mapper; private readonly ILoginService _loginService; @@ -37,35 +39,7 @@ namespace WMS.Web.Domain.Services _inStockTaskRepositories = inStockTaskRepositories; } - /// - /// 出库单 - /// - /// - /// - /// - public async Task Save(List dto, LoginInDto loginInfo) - { - var entity = new InStock(); - entity.Details = _mapper.Map>(dto); - entity.Create(loginInfo.UserInfo.StaffId); - //需要填写序列号 - //需要修改库存 - //需要同步金蝶 - - IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); - bool isRollback = false; - bool isSuccess = true; - entity = await _inStockRepositories.Add(entity, true); - if (entity == null) isRollback = true; - - //提交事务 - isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); - if (!isSuccess) - return Result.ReFailure(ResultCodes.DateWriteError); - - return Result.ReSuccess(); - } /// /// 同步金蝶 @@ -78,5 +52,139 @@ namespace WMS.Web.Domain.Services return Task.FromResult(Result.ReSuccess()); } + + /// + /// 收货 + /// + /// + /// + /// + public async Task Receive(UpdateInStockTaskRequest dto, LoginInDto loginInfo) + { + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isTransaction = false; + var result = await this.Update(dto, loginInfo.UserInfo.StaffId,true, isTransaction); + if (!result.IsSuccess) isRollback = true; + + //提交事务 + var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + + /// + /// 上架 + /// + /// + /// + /// + public async Task Shelf(SaveInStockRequest instock, LoginInDto loginInfo) + { + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isTransaction = false; + + //1.添加入库单:(同步金蝶在save方法里面进行) + var save_result = await this.Save(instock, loginInfo.UserInfo.StaffId, isTransaction); + if (!save_result.IsSuccess) isRollback = true; + { + //2.修改入库任务单 + var ids = new List(); + ids.Add(instock.TaskId); + var result = await this.UpdateRange(ids, loginInfo.UserInfo.StaffId, false, isTransaction); + if (!result.IsSuccess) isRollback = true; + } + + //提交事务 + var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + + /// + /// 保存-出库单 + /// + /// + /// + /// + /// + public async Task Save(SaveInStockRequest dto, int staffId, bool isTransaction = true) + { + var entity = new InStock(); + entity.Type = (InstockType)dto.Type; + entity.TaskId = dto.TaskId; + entity.Details = _mapper.Map>(dto.Details); + entity.Create(staffId); + + //需要填写序列号 + //需要修改库存 + //需要同步金蝶 + + entity = await _inStockRepositories.Add(entity, isTransaction); + + if (entity != null) + return Result.ReSuccess(); + else + return Result.ReFailure(ResultCodes.DateWriteError); + } + + /// + /// 修改-入库任务信息 + /// + /// + /// + /// + /// + /// + public async Task Update(UpdateInStockTaskRequest dto, int staffId,bool isReceive, bool isTransaction = true) + { + var entity = await _inStockTaskRepositories.Get(dto.Id); + if (entity == null) + return Result.ReFailure(ResultCodes.DateWriteError); + + entity = _mapper.Map(dto, entity); + if (isReceive) + entity.Receive(staffId); + else + entity.Shelf(staffId); + var result = _inStockTaskRepositories.Update(entity, isTransaction); + if (result != null) + return Result.ReSuccess(); + else + return Result.ReFailure(ResultCodes.DateWriteError); + } + + /// + /// 批量修改-入库任务信息 + /// + /// + /// + /// + /// + /// + public async Task UpdateRange(List ids, int staffId, bool isReceive, bool isTransaction = true) + { + var entitys = await _inStockTaskRepositories.GetList(ids); + if (entitys == null || entitys.Count==0) + return Result.ReFailure(ResultCodes.DateWriteError); + + foreach (var item in entitys) + { + if (isReceive) + item.Receive(staffId); + else + item.Shelf(staffId); + } + var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction); + if (isSuccess) + return Result.ReSuccess(); + else + return Result.ReFailure(ResultCodes.DateWriteError); + } } } diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index 6a21e8fb..5f298e6f 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -66,12 +66,12 @@ namespace WMS.Web.Repositories query = query.Where(w => w.detail.StockId == dto.StockId.Value); if (dto.Type.HasValue) - query = query.Where(w => (int)w.order.Type == dto.Type); + query = query.Where(w => (int)w.order.Type == dto.Type.Value); if (dto.CreateBeginDate != null) - query = query.Where(w => w.order.CreateTime >= dto.CreateBeginDate); + query = query.Where(w => w.order.CreateTime >= dto.CreateBeginDate.Value); if (dto.CreateEndDate != null) - query = query.Where(w => w.order.CreateTime <= dto.CreateEndDate); + query = query.Where(w => w.order.CreateTime <= dto.CreateEndDate.Value); var response = new ResultPagedList(); int total = await query.CountAsync(); diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index 03e210f6..0a0b07ba 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -47,6 +47,29 @@ namespace WMS.Web.Repositories if (!string.IsNullOrEmpty(dto.SourceBillNo)) query = query.Where(w => EF.Functions.Like(w.detail.SourceBillNo, "%" + dto.SourceBillNo + "%")); + //if (!string.IsNullOrEmpty(dto.MaterialNumber)) + // query = query.Where(w => EF.Functions.Like(w.detail.BillNo, "%" + dto.BillNo + "%")); + + if (dto.SupplierId.HasValue) + query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value); + + if (dto.OrgId.HasValue) + query = query.Where(w => w.detail.OrgId == dto.OrgId.Value); + + if (dto.StockId.HasValue) + query = query.Where(w => w.detail.StockId == dto.StockId.Value); + + if (dto.Type.HasValue) + query = query.Where(w => (int)w.order.Type == dto.Type.Value); + + if (dto.Status.HasValue) + query = query.Where(w => (int)w.order.Status == dto.Status.Value); + + if (dto.CreateBeginDate != null) + query = query.Where(w => w.order.ShelfTime >= dto.CreateBeginDate.Value); + if (dto.CreateEndDate != null) + query = query.Where(w => w.order.ShelfTime <= dto.CreateEndDate.Value); + var response = new ResultPagedList(); int total = await query.CountAsync(); response.TotalCount = total; @@ -71,8 +94,8 @@ namespace WMS.Web.Repositories RealityQty = s.detail.RealityQty, Receiver = "", ReceiveTime = s.order.ReceiveTime, - Operator = "", - OperateTime = s.order.OperateTime, + Shelfer = "", + ShelfTime = s.order.ShelfTime, CreateTime = s.detail.CreateTime, }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); @@ -80,6 +103,31 @@ namespace WMS.Web.Repositories return response; } + /// + /// 详情 + /// + /// + /// + public async Task Get(int id) + { + return await _context.InStockTask + .Include(s => s.Details) + .FirstOrDefaultAsync(f => f.Id == id); + } + + /// + /// 列表 + /// + /// + /// + public async Task> GetList(List ids) + { + return await _context.InStockTask + .Include(s => s.Details) + .Where(f => ids.Contains(f.Id)) + .ToListAsync(); + } + /// /// 批量添加 ///