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();
+ }
+
///
/// 批量添加
///