From 1736096743cb2be9f1752d5fa49eac3a5bad2a62 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Wed, 15 Nov 2023 15:28:39 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E7=AE=B1=E6=94=AF=E6=8C=81=E5=A4=9A?=
=?UTF-8?q?=E4=B8=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/MoveBoxRecordController.cs | 4 +-
src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 4 +-
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 76 ++++++++++++++++++-
src/WMS.Web.Domain/Entitys/ErpOutStockSync.cs | 40 ++++++++++
.../Entitys/ErpOutStockSyncDetails.cs | 46 +++++++++++
.../IService/IChangeMoveBoxService.cs | 2 +-
.../IService/ISerialNumberService.cs | 2 +-
.../IMoveBoxRecordRepositories.cs | 2 +
src/WMS.Web.Domain/Mappers/OutStockMapper.cs | 3 +-
.../Services/ChangeMoveBoxService.cs | 17 +++--
.../Services/OutStockTaskService.cs | 8 +-
.../Services/SerialNumberService.cs | 15 ++--
.../MoveBoxRecordRepositories.cs | 32 ++++++++
13 files changed, 224 insertions(+), 27 deletions(-)
create mode 100644 src/WMS.Web.Domain/Entitys/ErpOutStockSync.cs
create mode 100644 src/WMS.Web.Domain/Entitys/ErpOutStockSyncDetails.cs
diff --git a/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs b/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs
index 56002464..19106fd0 100644
--- a/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs
+++ b/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs
@@ -88,7 +88,7 @@ namespace WMS.Web.Api.Controllers
///
[HttpPost]
[Route("Down_Save")]
- public async Task Down_Save(SaveMoveBoxRecordRequest dto)
+ public async Task Down_Save(List dto)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
@@ -103,7 +103,7 @@ namespace WMS.Web.Api.Controllers
///
[HttpPost]
[Route("Up_Save")]
- public async Task Up_Save(SaveMoveBoxRecordRequest dto)
+ public async Task Up_Save(List dto)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index d05e80c7..0d486a03 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -301,14 +301,14 @@
-
+
移箱下架保存-PDA
-
+
移箱上架保存-PDA
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index d8a35e27..3e94ade7 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -321,6 +321,71 @@
最新一次同步时间
+
+
+ erp原始数据表
+
+
+
+
+ 主键 订单编号
+
+
+
+
+ 来源单号
+
+
+
+
+ 同步成功或者失败 null 就是未同步
+
+
+
+
+ 备注
+
+
+
+
+ 明细
+
+
+
+
+ erp原始数据表明细
+
+
+
+
+ 主键 订单编号
+
+
+
+
+ 单据头Id
+
+
+
+
+ 物料Id
+
+
+
+
+ 应出库数量
+
+
+
+
+ 已出库数量
+
+
+
+
+ 当前最新一次出库数量(用来做再次同步)
+
+
文件下载类型
@@ -1755,6 +1820,9 @@
公司Id
+
+ 批量添加
+
查询实体集合
@@ -2075,7 +2143,7 @@
改箱
-
+
移箱
@@ -2892,7 +2960,7 @@
-
+
移箱保存
@@ -3870,11 +3938,11 @@
-
+
移箱
-
+
diff --git a/src/WMS.Web.Domain/Entitys/ErpOutStockSync.cs b/src/WMS.Web.Domain/Entitys/ErpOutStockSync.cs
new file mode 100644
index 00000000..3572a03f
--- /dev/null
+++ b/src/WMS.Web.Domain/Entitys/ErpOutStockSync.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Text;
+using WMS.Web.Core;
+
+namespace WMS.Web.Domain.Entitys
+{
+ ///
+ /// erp原始数据表
+ ///
+ public class ErpOutStockSync:EntityBase
+ {
+ public ErpOutStockSync() { }
+ ///
+ /// 主键 订单编号
+ ///
+ [Column("Id")]
+ public override int Id { get; set; }
+ ///
+ /// 来源单号
+ ///
+ [Column("SourceBillNo")]
+ public string SourceBillNo { get; set; }
+ ///
+ /// 同步成功或者失败 null 就是未同步
+ ///
+ [Column("SuccessSync")]
+ public bool? SuccessSync { get; set; } = null;
+ ///
+ /// 备注
+ ///
+ [Column("Remark")]
+ public string Remark { get; set; }
+ ///
+ /// 明细
+ ///
+ public List Details { get; set; } = new List();
+ }
+}
diff --git a/src/WMS.Web.Domain/Entitys/ErpOutStockSyncDetails.cs b/src/WMS.Web.Domain/Entitys/ErpOutStockSyncDetails.cs
new file mode 100644
index 00000000..d4318fce
--- /dev/null
+++ b/src/WMS.Web.Domain/Entitys/ErpOutStockSyncDetails.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Text;
+using WMS.Web.Core;
+
+namespace WMS.Web.Domain.Entitys
+{
+ ///
+ /// erp原始数据表明细
+ ///
+ public class ErpOutStockSyncDetails : EntityBase
+ {
+ public ErpOutStockSyncDetails() { }
+ ///
+ /// 主键 订单编号
+ ///
+ [Column("Id")]
+ public override int Id { get; set; }
+ ///
+ /// 单据头Id
+ ///
+ [Column("Fid")]
+ public int Fid { get; set; }
+ ///
+ /// 物料Id
+ ///
+ [Column("MaterialId")]
+ public int MaterialId { get; set; }
+ ///
+ /// 应出库数量
+ ///
+ [Column("AccruedQty")]
+ public decimal AccruedQty { get; set; }
+ ///
+ /// 已出库数量
+ ///
+ [Column("RealityQty")]
+ public decimal RealityQty { get; set; }
+ ///
+ /// 当前最新一次出库数量(用来做再次同步)
+ ///
+ [Column("NewQty")]
+ public decimal NewQty { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs
index 0241c94f..868c0880 100644
--- a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs
+++ b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs
@@ -19,7 +19,7 @@ namespace WMS.Web.Domain.IService
//改箱保存
Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo, bool isTransaction=true);
//移箱保存
- Task MoveBoxSave(SaveMoveBoxRecordRequest dto,bool IsUp, LoginInDto loginInfo);
+ Task MoveBoxSave(List dto,bool IsUp, LoginInDto loginInfo);
}
}
diff --git a/src/WMS.Web.Domain/IService/ISerialNumberService.cs b/src/WMS.Web.Domain/IService/ISerialNumberService.cs
index 3682f1a7..fd4f127f 100644
--- a/src/WMS.Web.Domain/IService/ISerialNumberService.cs
+++ b/src/WMS.Web.Domain/IService/ISerialNumberService.cs
@@ -17,7 +17,7 @@ namespace WMS.Web.Domain.IService
/// 改箱
Task ChangeBox(List changeBoxRecords, LoginInDto loginInfo, bool isTransaction = true);
/// 移箱
- Task MoveBox(MoveBoxRecord moveBoxRecord, LoginInDto loginInfo, bool isTransaction = true);
+ Task MoveBox(List moveBoxRecords, LoginInDto loginInfo, bool isTransaction = true);
/// 出库
Task OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true);
/// 入库
diff --git a/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs
index 4ffcd2e0..9d079af1 100644
--- a/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs
@@ -11,6 +11,8 @@ namespace WMS.Web.Domain.Infrastructure
{
// 新增
Task Add(MoveBoxRecord entity, bool isTransaction = true);
+ /// 批量添加
+ Task AddRange(List entitys, bool isTransaction = true);
// 获取列表
Task<(List list, int total)> GetListAsync(MoveBoxRecordQueryRequest dto);
}
diff --git a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
index 6cf9ac0b..6781d43d 100644
--- a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
@@ -25,7 +25,8 @@ namespace WMS.Web.Domain.Mappers
CreateMap();
CreateMap()
- .ForPath(x => x.SourceBillNos, ops => ops.MapFrom(x =>new List() { x.SourceBillNo }));
+ .ForPath(x => x.SourceBillNos, ops => ops.MapFrom(x =>new List() { x.SourceBillNo }))
+ .ForPath(x => x.SaleBillNos, ops => ops.MapFrom(x => new List() { x.SaleBillNo }));
}
}
}
diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
index c71fd02b..08b58e1e 100644
--- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
+++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs
@@ -109,19 +109,24 @@ namespace WMS.Web.Domain.Services
///
///
///
- public async Task MoveBoxSave(SaveMoveBoxRecordRequest dto, bool IsUp, LoginInDto loginInfo)
+ public async Task MoveBoxSave(List dto, bool IsUp, LoginInDto loginInfo)
{
- var entity = new MoveBoxRecord();
- entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, dto.BoxId, dto.SubStockId, loginInfo.UserInfo.StaffId);
+ List entityList = new List();
+ foreach (var d in dto)
+ {
+ var entity = new MoveBoxRecord();
+ entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.SubStockId, loginInfo.UserInfo.StaffId);
+ entityList.Add(entity);
+ }
//需要填写规格型号
//需要修改库存
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
bool isRollback = false;
bool isSuccess = true;
- entity = await _moveBoxRecordRepositories.Add(entity, true);
- if (entity == null) isRollback = true;
- var res_change = await _serialNumberService.MoveBox(entity, loginInfo, false);
+ isSuccess = await _moveBoxRecordRepositories.AddRange(entityList, true);
+ if (!isSuccess) isRollback = true;
+ var res_change = await _serialNumberService.MoveBox(entityList, loginInfo, false);
if (!res_change.IsSuccess) isRollback = true;
//提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
index d803158b..66c9aa6a 100644
--- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
@@ -133,14 +133,14 @@ namespace WMS.Web.Domain.Services
foreach (var item in billNos)
{
var e = erp_list.FirstOrDefault(f => f.SourceBillNo == item);
- var dto = new OutStockTask();
- dto.Create((OutStockType)e.Type, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
+ var entity = new OutStockTask();
+ entity.Create((OutStockType)e.Type, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
//找到当前对应来源单据编号的集合数据
var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList();
//给到dto的实体明细中
- dto.Details = _mapper.Map>(current_erp_details);
- add_entitys.Add(dto);
+ entity.Details = _mapper.Map>(current_erp_details);
+ add_entitys.Add(entity);
}
//3.1提交新增
isSuccess = await _outStockTaskRepositories.AddRange(add_entitys, isTransaction);
diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs
index c40b4e41..5b903615 100644
--- a/src/WMS.Web.Domain/Services/SerialNumberService.cs
+++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs
@@ -104,15 +104,16 @@ namespace WMS.Web.Domain.Services
///
/// 移箱
///
- ///
+ ///
///
///
///
- public async Task MoveBox(MoveBoxRecord moveBoxRecord, LoginInDto loginInfo, bool isTransaction = true)
+ public async Task MoveBox(List moveBoxRecords, LoginInDto loginInfo, bool isTransaction = true)
{
//获取序列号信息
- var entityList = await _serialNumbersRepositories.GetEntityListByBoxId(moveBoxRecord.BoxId);
- var box = await _boxRepositories.Get(moveBoxRecord.BoxId);
+ var boxids = moveBoxRecords.Select(s => s.BoxId).ToList();
+ var entityList = await _serialNumbersRepositories.GetEntityListByBoxIds(boxids);
+ var boxList = await _boxRepositories.GetEntityList(boxids);
var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId);
IDbContextTransaction _transaction = null;
@@ -123,8 +124,10 @@ namespace WMS.Web.Domain.Services
List sList = new List();
foreach (var entity in entityList)
{
+ var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId);
+ var moveBoxRecord = moveBoxRecords.FirstOrDefault(f => f.BoxId == entity.BoxId);
//修改序列号和箱绑定关系
- entity.Bind(moveBoxRecord.BoxId);
+ //entity.Bind(moveBoxRecord.BoxId);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
@@ -201,7 +204,7 @@ namespace WMS.Web.Domain.Services
OperateTime = DateTime.Now,
OperateType = OutStockTypeConvert(outStock.Type),
OperateUser = userName,
- Remark = "来源单号:" + string.Join(",",outstockDetail.SourceBillNos) + "\r\n" + "出库单号:" + outStock.BillNo
+ Remark = "来源单号:" + string.Join(",", outstockDetail.SourceBillNos) + "\r\n" + "出库单号:" + outStock.BillNo
};
if (outStock.Type == OutStockType.Sal)
{
diff --git a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs
index 2c2cb838..c1cce180 100644
--- a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs
+++ b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs
@@ -71,6 +71,38 @@ namespace WMS.Web.Repositories
}
}
+
+ public async Task AddRange(List entitys, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+ try
+ {
+ if (entitys != null && entitys.Count != 0)
+ {
+ await _context.MoveBoxRecord.AddRangeAsync(entitys);
+ await _context.SaveChangesAsync();
+ foreach (var item in entitys)
+ {
+ if (string.IsNullOrEmpty(item.BillNo))
+ //自动生成单据编号
+ item.GenerateNo();
+ }
+ await _context.SaveChangesAsync();
+ }
+ if (_transaction != null)
+ _transaction.Commit();
+ return true;
+ }
+ catch
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return false;
+ }
+ }
+
///
/// 列表
///