diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs
index 4488185a..def8569c 100644
--- a/src/WMS.Web.Api/Controllers/SysConfigController.cs
+++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs
@@ -118,17 +118,17 @@ namespace WMS.Web.Api.Controllers
/// 必填
///
[HttpGet]
- [Route("GetBoxDetails")]
- public async Task> GetBoxDetails([FromQuery] string billNo)
+ [Route("GetBox")]
+ public async Task> GetBox([FromQuery] string billNo)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
- return ResultList.ReFailure(ResultCodes.Token_Invalid_Error);
- if(string.IsNullOrEmpty(billNo))
- return ResultList.ReSuccess(new List());
+ return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+ if (string.IsNullOrEmpty(billNo))
+ return Result.ReSuccess(null);
- var r = await _boxRepositories.GetDetails(billNo);
- return ResultList.ReSuccess(r);
+ var r = await _boxRepositories.GetBox(billNo);
+ return Result.ReSuccess(r);
}
}
}
diff --git a/src/WMS.Web.Core/Dto/BoxDetailResponse.cs b/src/WMS.Web.Core/Dto/BoxDetailResponse.cs
index 0e50d697..ea6103f0 100644
--- a/src/WMS.Web.Core/Dto/BoxDetailResponse.cs
+++ b/src/WMS.Web.Core/Dto/BoxDetailResponse.cs
@@ -9,14 +9,6 @@ namespace WMS.Web.Core.Dto
///
public class BoxDetailResponse
{
- ///
- /// 单据头ID
- ///
- public int Fid { get; set; }
- ///
- /// 箱Id
- ///
- public int BoxId { get; set; }
///
/// 物料ID
///
@@ -44,6 +36,6 @@ namespace WMS.Web.Core.Dto
///
/// 序列号集
///
- public string SerialNumbers { get; set; }
+ public List SerialNumbers { get; set; } = new List();
}
}
diff --git a/src/WMS.Web.Core/Dto/BoxResponse.cs b/src/WMS.Web.Core/Dto/BoxResponse.cs
new file mode 100644
index 00000000..2a43290b
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/BoxResponse.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto
+{
+ ///
+ /// 箱信息(头部)
+ ///
+ public class BoxResponse
+ {
+ ///
+ /// 单据头ID
+ ///
+ public int Id { get; set; }
+ ///
+ /// 箱Id
+ ///
+ public int BoxId { get; set; }
+ ///
+ /// 明细信息
+ ///
+ public List Details = new List();
+ }
+}
diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
index 3aa186f7..e443118b 100644
--- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
+++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
@@ -16,11 +16,6 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; }
///
- /// 仓库Id
- ///
- [Required(ErrorMessage = "仓库不能为空")]
- public int StockId { get; set; }
- ///
/// 原箱子ID
///
[Required(ErrorMessage = "原箱子不能为空")]
@@ -31,14 +26,10 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
[Required(ErrorMessage = "目标箱子不能为空")]
public int DestBoxId { get; set; }
///
- /// 原仓位ID
- ///
- [Required(ErrorMessage = "原仓位不能为空")]
- public int SrcSubStockId { get; set; }
- ///
- /// 目标仓位ID
- ///
- [Required(ErrorMessage = "目标仓位不能为空")]
- public int DestSubStockId { get; set; }
+ /// 数量
+ ///
+ [Required(ErrorMessage = "数量不能为空")]
+ public decimal Qty { get; set; }
+
}
}
diff --git a/src/WMS.Web.Domain/Entitys/BoxDetails.cs b/src/WMS.Web.Domain/Entitys/BoxDetails.cs
index fa75df3f..1b066b16 100644
--- a/src/WMS.Web.Domain/Entitys/BoxDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/BoxDetails.cs
@@ -37,6 +37,6 @@ namespace WMS.Web.Domain.Entitys
///
/// 序列号集
///
- public string SerialNumbers { get; set; }
+ public List SerialNumbers { get; set; } = new List();
}
}
diff --git a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs
index c7ce8ee6..6382327e 100644
--- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs
+++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs
@@ -33,13 +33,18 @@ namespace WMS.Web.Domain.Entitys
/// 序列号
///
[Column("SerialNumbers")]
- public string SerialNumbers { get; set; }
+ public List SerialNumbers { get; set; } = new List();
///
/// 原箱子ID
///
[Column("SrcBoxId")]
public int SrcBoxId { get; set; }
///
+ /// 数量
+ ///
+ [Column("Qty")]
+ public decimal Qty { get; set; }
+ ///
/// 目标箱子ID
///
[Column("DestBoxId")]
diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
index 70bcfc01..0fa4ce3a 100644
--- a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
@@ -13,7 +13,7 @@ namespace WMS.Web.Domain.Infrastructure
public interface IBoxRepositories
{
Task Get(string BoxBillNo);
- //根据箱号查询物料信息
- Task> GetDetails(string BoxBillNo);
+ //根据箱号查询明细信息
+ Task GetBox(string BoxBillNo);
}
}
diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs
index 51b195e0..54e66981 100644
--- a/src/WMS.Web.Repositories/BoxRepositories.cs
+++ b/src/WMS.Web.Repositories/BoxRepositories.cs
@@ -45,25 +45,31 @@ namespace WMS.Web.Repositories
///
///
///
- public async Task> GetDetails(string BoxBillNo)
+ public async Task GetBox(string BoxBillNo)
{
- return await _context.BoxDetails
- .GroupJoin(_context.Box, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
- .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
- .Where(w => w.order.BoxBillNo.Equals(BoxBillNo))
- .Select(s => new BoxDetailResponse()
- {
- Fid = s.detail.Fid,
- BoxId = s.order.OpsBoxId,
- MaterialId = s.detail.MaterialId,
- MaterialName = "",
- MaterialNumber = "",
- Specifications = "",
- SerialNumbers = s.detail.SerialNumbers,
- SupplierId = s.detail.SupplierId,
- Qty = s.detail.Qty
- })
- .ToListAsync();
+ var entity = await _context.Box.FirstOrDefaultAsync(f => f.BoxBillNo.Equals(BoxBillNo));
+ if (entity == null) return null;
+ BoxResponse result = new BoxResponse()
+ {
+ Id = entity.Id,
+ BoxId = entity.OpsBoxId
+ };
+ result.Details = await _context.BoxDetails
+ .GroupJoin(_context.Box, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
+ .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
+ .Where(w => w.order.BoxBillNo.Equals(BoxBillNo))
+ .Select(s => new BoxDetailResponse()
+ {
+ MaterialId = s.detail.MaterialId,
+ MaterialName = "",
+ MaterialNumber = "",
+ Specifications = "",
+ SerialNumbers = s.detail.SerialNumbers,
+ SupplierId = s.detail.SupplierId,
+ Qty = s.detail.Qty
+ })
+ .ToListAsync();
+ return result;
}
}
}
diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
index 80f4c4d1..23bdb3fe 100644
--- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
+++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
@@ -1,9 +1,11 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Debug;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
+using System.Text.Json;
using WMS.Web.Domain.Entitys;
using WMS.Web.Repositories.Configuration.Log;
@@ -35,6 +37,10 @@ namespace WMS.Web.Repositories.Configuration
{
ent.ToTable("t_wms_changebox_record");
ent.HasKey(x => x.Id);
+
+ ent.Property(f => f.SerialNumbers).HasConversion(
+ v => JsonConvert.SerializeObject(v),
+ v => JsonConvert.DeserializeObject>(v));
});
//移箱
builder.Entity(ent =>
@@ -197,6 +203,10 @@ namespace WMS.Web.Repositories.Configuration
{
ent.ToTable("t_ops_box_details");
ent.HasKey(x => x.Id);
+
+ ent.Property(f => f.SerialNumbers).HasConversion(
+ v => JsonConvert.SerializeObject(v),
+ v => JsonConvert.DeserializeObject>(v));
});
#endregion