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.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index f52f3a5d..966ca712 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -249,7 +249,7 @@
仓库模糊匹配 不必填
-
+
根据箱号获取箱信息
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 9dbe93c6..3e410cd2 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -230,16 +230,6 @@
根据箱号获取物料信息
-
-
- 单据头ID
-
-
-
-
- 箱Id
-
-
物料ID
@@ -275,6 +265,26 @@
序列号集
+
+
+ 箱信息(头部)
+
+
+
+
+ 单据头ID
+
+
+
+
+ 箱号
+
+
+
+
+ 明细信息
+
+
改箱列表请求
@@ -385,16 +395,6 @@
保存改箱
-
-
- 物料ID
-
-
-
-
- 仓库Id
-
-
原箱子ID
@@ -405,14 +405,24 @@
目标箱子ID
-
+
- 原仓位ID
+ 明细
-
+
- 目标仓位ID
+ 物料ID
+
+
+
+
+ 数量
+
+
+
+
+ 序列号
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 221fea92..b1f04aaf 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -220,11 +220,6 @@
物料ID
-
-
- 仓库Id
-
-
序列号
@@ -235,21 +230,16 @@
原箱子ID
+
+
+ 数量
+
+
目标箱子ID
-
-
- 原仓位ID
-
-
-
-
- 目标仓位ID
-
-
操作人
@@ -260,11 +250,14 @@
操作时间
-
+
创建
+
+
+
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..81965de6
--- /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; }
+ ///
+ /// 箱号
+ ///
+ public string BoxBillNo { 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..ef24724b 100644
--- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
+++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs
@@ -10,16 +10,6 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
///
public class SaveChangeBoxRecordRequest
{
- ///
- /// 物料ID
- ///
- [Required(ErrorMessage = "物料不能为空")]
- public int MaterialId { get; set; }
- ///
- /// 仓库Id
- ///
- [Required(ErrorMessage = "仓库不能为空")]
- public int StockId { get; set; }
///
/// 原箱子ID
///
@@ -30,15 +20,27 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
///
[Required(ErrorMessage = "目标箱子不能为空")]
public int DestBoxId { get; set; }
+
+ public List Details = new List();
+ }
+ ///
+ /// 明细
+ ///
+ public class SaveChangeBoxRecordDetailsRequest
+ {
///
- /// 原仓位ID
+ /// 物料ID
///
- [Required(ErrorMessage = "原仓位不能为空")]
- public int SrcSubStockId { get; set; }
+ [Required(ErrorMessage = "物料不能为空")]
+ public int MaterialId { get; set; }
///
- /// 目标仓位ID
+ /// 数量
+ ///
+ [Required(ErrorMessage = "数量不能为空")]
+ public decimal Qty { get; set; }
+ ///
+ /// 序列号
///
- [Required(ErrorMessage = "目标仓位不能为空")]
- public int DestSubStockId { get; set; }
+ public List SerialNumbers { get; set; } = new List();
}
}
diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs
index d3c0512e..5270dce2 100644
--- a/src/WMS.Web.Domain/Entitys/Box.cs
+++ b/src/WMS.Web.Domain/Entitys/Box.cs
@@ -1,7 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
using System.Text;
+using WMS.Web.Core;
+using WMS.Web.Core.Internal.Results;
+using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
@@ -11,12 +15,12 @@ namespace WMS.Web.Domain.Entitys
[Serializable]
[Table("t_ops_box")]
- public class Box
+ public class Box : EntityBase
{
///
/// ID
///
- public int Id { get; set; }
+ public override int Id { get; set; }
///
/// 对应老OPS的箱ID
@@ -37,5 +41,41 @@ namespace WMS.Web.Domain.Entitys
/// 明细
///
public List Details = new List();
+
+ //移出
+ public Result Out(List<(int MaterialId, decimal Qty, List SerialNumbers)> list)
+ {
+ foreach(var l in list)
+ {
+ var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId);
+ if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData);
+ d.Qty = d.Qty - l.Qty;
+ if (d.Qty <= 0) this.Details.Remove(d);
+ foreach (var s in l.SerialNumbers) d.SerialNumbers.Remove(s);
+ }
+ return Result.ReSuccess();
+ }
+
+ //移入
+ public Result In(List<(int MaterialId, decimal Qty, List SerialNumbers)> list)
+ {
+ foreach (var l in list)
+ {
+ var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId);
+ if (d == null)
+ {
+ this.Details.Add(new BoxDetails()
+ {
+ MaterialId = l.MaterialId,
+ Qty=l.Qty,
+ SerialNumbers=l.SerialNumbers
+ });
+ continue;
+ }
+ d.Qty = d.Qty + l.Qty;
+ d.SerialNumbers.AddRange(l.SerialNumbers);
+ }
+ return Result.ReSuccess();
+ }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/BoxDetails.cs b/src/WMS.Web.Domain/Entitys/BoxDetails.cs
index fa75df3f..c976d4ae 100644
--- a/src/WMS.Web.Domain/Entitys/BoxDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/BoxDetails.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
+using WMS.Web.Core;
namespace WMS.Web.Domain.Entitys
{
@@ -11,12 +12,12 @@ namespace WMS.Web.Domain.Entitys
[Serializable]
[Table("t_ops_box_details")]
- public class BoxDetails
+ public class BoxDetails : EntityBase
{
///
/// ID
///
- public int Id { get; set; }
+ public override int Id { get; set; }
///
/// 单据头ID
@@ -37,6 +38,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..2d5b371d 100644
--- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs
+++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs
@@ -25,36 +25,26 @@ namespace WMS.Web.Domain.Entitys
[Column("MaterialId")]
public int MaterialId { get; set; }
///
- /// 仓库Id
- ///
- [Column("StockId")]
- public int StockId { get; set; }
- ///
/// 序列号
///
[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")]
public int DestBoxId { get; set; }
///
- /// 原仓位ID
- ///
- [Column("SrcSubStockId")]
- public int SrcSubStockId { get; set; }
- ///
- /// 目标仓位ID
- ///
- [Column("DestSubStockId")]
- public int DestSubStockId { get; set; }
- ///
/// 操作人
///
[Column("CreatorId")]
@@ -68,8 +58,16 @@ namespace WMS.Web.Domain.Entitys
/// 创建
///
///
- public void Create(int creatorId)
+ ///
+ ///
+ ///
+ public void Create(int creatorId,decimal qty,int materialId, List serialNumbers,int srcBoxId,int destBoxId)
{
+ this.SrcBoxId = srcBoxId;
+ this.DestBoxId = destBoxId;
+ this.SerialNumbers = serialNumbers;
+ this.MaterialId = materialId;
+ this.Qty = qty;
this.CreatorId = creatorId;
this.CreateTime = DateTime.Now;
}
diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
index 70bcfc01..91f01e51 100644
--- a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs
@@ -12,8 +12,10 @@ namespace WMS.Web.Domain.Infrastructure
///
public interface IBoxRepositories
{
- Task Get(string BoxBillNo);
- //根据箱号查询物料信息
- Task> GetDetails(string BoxBillNo);
+ Task Get(int id);
+ //根据箱号查询明细信息
+ Task GetBox(string BoxBillNo);
+ //批量修改
+ Task EditEntityList(List entitys, bool isTransaction = true);
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/IChangeBoxRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IChangeBoxRecordRepositories.cs
index 945f4d21..e48e1183 100644
--- a/src/WMS.Web.Domain/Infrastructure/IChangeBoxRecordRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IChangeBoxRecordRepositories.cs
@@ -12,6 +12,8 @@ namespace WMS.Web.Domain.Infrastructure
{
// 新增
Task Add(ChangeBoxRecord entity, bool isTransaction = true);
+ // 批量新增
+ Task AddRange(List list, bool isTransaction = true);
// 获取列表
Task<(List list,int total)> GetListAsync(ChangeBoxRecordQueryRequest dto);
diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
index 1682f60d..6cd7a3a9 100644
--- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
+++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
@@ -2,6 +2,7 @@
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.ChangeBoxRecord;
@@ -24,15 +25,17 @@ namespace WMS.Web.Domain.Services
private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories;
public readonly ITransactionRepositories _transactionRepositories;
private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories;
- public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
+ private readonly IBoxRepositories _boxRepositories;
+ public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories,
- IMoveBoxRecordRepositories moveBoxRecordRepositories)
+ IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories)
{
_mapper = mapper;
_loginService = loginService;
_changeBoxRecordRepositories = changeBoxRecordRepositories;
_transactionRepositories = transactionRepositories;
_moveBoxRecordRepositories = moveBoxRecordRepositories;
+ _boxRepositories = boxRepositories;
}
///
/// 改箱保存
@@ -40,10 +43,32 @@ namespace WMS.Web.Domain.Services
///
///
///
- public async Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo)
+ public async Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo)
{
- var entity = _mapper.Map(dto);
- entity.Create(loginInfo.UserInfo.StaffId);
+ List boxList = new List();
+ var srcBox = await _boxRepositories.Get(dto.SrcBoxId);
+ var destBox = await _boxRepositories.Get(dto.DestBoxId);
+ if (srcBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
+ if (destBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
+ var l = dto.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList();
+ //原箱移出
+ var res = srcBox.Out(l);
+ if (!res.IsSuccess) return res;
+ //目标箱移入
+ res = destBox.In(l);
+ if (!res.IsSuccess) return res;
+
+ boxList.Add(srcBox);
+ boxList.Add(destBox);
+
+ //var entity = _mapper.Map(dto);\
+ List list = new List();
+ foreach (var d in dto.Details)
+ {
+ ChangeBoxRecord entity = new ChangeBoxRecord();
+ entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dto.SrcBoxId, dto.DestBoxId);
+ list.Add(entity);
+ }
//需要填写序列号
//需要修改库存
@@ -51,8 +76,12 @@ namespace WMS.Web.Domain.Services
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
bool isRollback = false;
bool isSuccess = true;
- entity = await _changeBoxRecordRepositories.Add(entity, true);
- if (entity == null) isRollback = true;
+ isSuccess = await _changeBoxRecordRepositories.AddRange(list, false);
+ if (!isSuccess) isRollback = true;
+
+ isSuccess = await _boxRepositories.EditEntityList(boxList, false);
+ if (!isSuccess) isRollback = true;
+
//提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs
index cddf6d70..a3fcd4bf 100644
--- a/src/WMS.Web.Domain/Values/ResultCodes.cs
+++ b/src/WMS.Web.Domain/Values/ResultCodes.cs
@@ -24,5 +24,8 @@ namespace WMS.Web.Domain.Values
//出库任务单
public static ValueTuple MergeStatusError = (70000, "所选单据数据不一致,不能合并");
+
+ public static ValueTuple BoxNoData = (80000, "箱信息不存在");
+ public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在");
}
}
diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs
index 51b195e0..de1108fd 100644
--- a/src/WMS.Web.Repositories/BoxRepositories.cs
+++ b/src/WMS.Web.Repositories/BoxRepositories.cs
@@ -1,14 +1,17 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
+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.Help;
using WMS.Web.Domain.Entitys;
using WMS.Web.Domain.Infrastructure;
using WMS.Web.Domain.IService.Public;
+using WMS.Web.Domain.Mappers;
using WMS.Web.Repositories.Configuration;
namespace WMS.Web.Repositories
@@ -35,35 +38,79 @@ namespace WMS.Web.Repositories
_loginRepositories = loginRepositories;
_basicsRepositories = basicsRepositories;
}
- public async Task Get(string BoxBillNo)
+ public async Task Get(int id)
{
- return await _context.Box.Include(x => x.Details)
- .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(BoxBillNo));
+ var entity= await _context.Box.Include(x => x.Details)
+ .FirstOrDefaultAsync(f => f.Id.Equals(id));
+
+ return entity.Clone();
}
///
/// 根据箱号查询物料信息
///
///
///
- 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,
+ BoxBillNo = entity.BoxBillNo
+ };
+ 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;
+ }
+
+ ///
+ /// 批量修改
+ ///
+ ///
+ ///
+ ///
+ public async Task EditEntityList(List entitys, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+ try
+ {
+ List list = entitys.Select(s => s.Id).ToList();
+
+ var res = await _context.Box
+ .Include(s => s.Details)
+ .Where(f => list.Contains(f.Id)).ToListAsync();
+
+ _mapper.ToMapList(entitys, res);
+ _mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
+
+ await _context.SaveChangesAsync();
+ if (_transaction != null)
+ _transaction.Commit();
+ }
+ catch (Exception ex)
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return false;
+ }
+ return true;
+
}
}
}
diff --git a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs
index 5637de04..59d182ca 100644
--- a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs
+++ b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs
@@ -1,6 +1,7 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -70,6 +71,34 @@ namespace WMS.Web.Repositories
}
}
+ ///
+ /// 批量添加
+ ///
+ ///
+ ///
+ ///
+ public async Task AddRange(List list, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+ try
+ {
+ _context.ChangeBoxRecord.AddRange(list);
+ await _context.SaveChangesAsync();
+
+ if (_transaction != null)
+ _transaction.Commit();
+ return true;
+ }
+ catch (Exception ex)
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return false;
+ }
+ }
+
///
/// 列表
///
@@ -98,12 +127,12 @@ namespace WMS.Web.Repositories
query = query.Where(w => EF.Functions.Like(w.srcBox.BoxBillNo, "%" + dto.SrcBox + "%"));
if (!string.IsNullOrEmpty(dto.DestBox))
query = query.Where(w => EF.Functions.Like(w.destBox.BoxBillNo, "%" + dto.DestBox + "%"));
- if (dto.StockId != null)
- query = query.Where(w => w.changeBox.StockId == dto.StockId);
- if (dto.SrcSubStockId != null)
- query = query.Where(w => w.changeBox.SrcSubStockId == dto.SrcSubStockId);
- if (dto.DestSubStockId != null)
- query = query.Where(w => w.changeBox.DestSubStockId == dto.DestSubStockId);
+ //if (dto.StockId != null)
+ // query = query.Where(w => w.changeBox.StockId == dto.StockId);
+ //if (dto.SrcSubStockId != null)
+ // query = query.Where(w => w.changeBox.SrcSubStockId == dto.SrcSubStockId);
+ //if (dto.DestSubStockId != null)
+ // query = query.Where(w => w.changeBox.DestSubStockId == dto.DestSubStockId);
if (dto.CreateBeginDate != null)
query = query.Where(w => w.changeBox.CreateTime >= dto.CreateBeginDate);
if (dto.CreateEndDate != null)
@@ -116,12 +145,12 @@ namespace WMS.Web.Repositories
MaterialName = "",
MaterialNumber = "",
Specifications = "",
- Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.changeBox.StockId),
- SerialNumbers = s.changeBox.SerialNumbers,
+ //Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.changeBox.StockId),
+ SerialNumbers = JsonConvert.SerializeObject(s.changeBox.SerialNumbers),
SrcBox = s.srcBox.BoxBillNo,
DestBox = s.destBox.BoxBillNo,
- SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, s.changeBox.SrcSubStockId),
- DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, s.changeBox.DestSubStockId),
+ //SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, s.changeBox.SrcSubStockId),
+ //DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, s.changeBox.DestSubStockId),
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, _loginRepositories.CompanyId, s.changeBox.CreatorId),
CreateTime = s.changeBox.CreateTime.DateToStringSeconds()
#endregion
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