This commit is contained in:
tongfei
2024-03-05 17:25:54 +08:00
10 changed files with 112 additions and 23 deletions

View File

@@ -196,8 +196,12 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
DateTime begin = DateTime.Now.AddDays(-3);//默认拉去三天以内的数据
var res = await _repositories.GetEntityList(dto.Ids);
return await _outStockTaskService.Sync(res.Select(s => s.BillNo).ToList());
//先刷新选中的数据
await _outStockTaskService.Sync(res.Select(s => s.BillNo).ToList());
//再刷新3天内所有的
return await _outStockTaskService.Sync(null, begin);
}
}
}

View File

@@ -176,6 +176,14 @@
<param name="qty"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Entitys.Box.OutStock(System.Int32,System.Decimal)">
<summary>
出库
</summary>
<param name="materialId"></param>
<param name="qty"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Entitys.BoxDetails">
<summary>
老ops箱信息明细
@@ -3614,11 +3622,12 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.Sync(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.Sync(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
同步金蝶数据 不传源订单号则更新所有
</summary>
<param name="billNos"></param>
<param name="begin"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.Public.ISingleDataService">
@@ -4318,6 +4327,14 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.ChangeBox_OutStock(WMS.Web.Domain.Entitys.OutStock,System.Boolean)">
<summary>
出库
</summary>
<param name="outStock"></param>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.ExportExcelService.Export``1(System.Collections.Generic.List{``0},System.String,System.Int32,System.Int32,WMS.Web.Domain.Values.FileDownLoadOrderType,Npoi.Mapper.Mapper,System.Nullable{System.Int32})">
<summary>
列表页导出
@@ -4714,7 +4731,7 @@
<param name="beginTime"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.Sync(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.Sync(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
同步金蝶数据 不传源订单号则更新所有
</summary>

View File

@@ -146,5 +146,19 @@ namespace WMS.Web.Domain.Entitys
return Result.ReSuccess();
}
/// <summary>
/// 出库
/// </summary>
/// <param name="materialId"></param>
/// <param name="qty"></param>
/// <returns></returns>
public Result OutStock(int materialId, decimal qty)
{
var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId);
if (d != null)
d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0;
return Result.ReSuccess();
}
}
}

View File

@@ -25,6 +25,8 @@ namespace WMS.Web.Domain.IService
Task<Result> ChangeBox_BackRecord(BackRecord BackRecord, LoginInDto loginInfo, bool isTransaction = true);
//非采购入库
Task<Result> ChangeBox_InStock(InStock InStocks, LoginInDto loginInfo, bool isTransaction = true);
//出库
Task<Result> ChangeBox_OutStock(OutStock outStock, bool isTransaction = true);
}
}

View File

@@ -53,7 +53,8 @@ namespace WMS.Web.Domain.IService.Public
/// 同步金蝶数据 不传源订单号则更新所有
/// </summary>
/// <param name="billNos"></param>
/// <param name="begin"></param>
/// <returns></returns>
Task<Result> Sync(List<string> billNos = null);
Task<Result> Sync(List<string> billNos = null,DateTime? begin=null);
}
}

View File

@@ -47,8 +47,10 @@ namespace WMS.Web.Domain.QuartzJob
//2.记录:开始时间
var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶出库单数据:执行开始时间->{begindatetime}");
DateTime begin = DateTime.Now.AddDays(-3);//默认拉去一天以内的数据
//3.同步数据
var result = await _outStockTaskService.Sync(null);
var result = await _outStockTaskService.Sync(null, begin);
//5.记录:结束时间
var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶出库单数据:执行结束时间->{begindatetime}");

View File

@@ -427,5 +427,47 @@ namespace WMS.Web.Domain.Services
return await ChangeBoxSave(dtoList, loginInfo, isTransaction, false);
}
/// <summary>
/// 出库
/// </summary>
/// <param name="outStock"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> ChangeBox_OutStock(OutStock outStock, bool isTransaction = true)
{
if (outStock.Method == InventoryInOutMethod.Box) return Result.ReSuccess();
List<SaveChangeBoxRecordRequest> dtoList = new List<SaveChangeBoxRecordRequest>();
var boxDetails = outStock.Details.SelectMany(s => s.BoxsDetails);
var boxIds = boxDetails.Select(s => s.BoxId).Distinct().ToList();
var boxs = await _boxRepositories.GetEntityList(boxIds);
foreach (var d in outStock.Details)
{
foreach (var db in d.BoxsDetails)
{
var box = boxs.FirstOrDefault(f => f.Id == db.BoxId);
if (box == null) continue;
box.OutStock(d.MaterialId, db.Qty);
}
}
IDbContextTransaction _transaction = null;
if (isTransaction)
_transaction = _basbicsRepositories.GetTransaction();
Result res_Rollback = Result.ReSuccess();
bool isSuccess = true;
if (res_Rollback.IsSuccess)
{
isSuccess = await _boxRepositories.EditEntityList(boxs, false);
if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
}
//提交事务
if (isTransaction)
{
isSuccess = _basbicsRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
if (!res_Rollback.IsSuccess) return res_Rollback;
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
}
return Result.ReSuccess();
}
}
}

View File

@@ -48,13 +48,15 @@ namespace WMS.Web.Domain.Services
private readonly ISingleDataService _singleDataService;
private readonly IServiceScopeFactory _serviceScopeFactory;
private readonly IInStockTaskBoxService _inStockTaskService;
private readonly IChangeMoveBoxService _changeMoveBoxService;
public OutStockService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories,
IOutStockTaskService outStockTaskService, IErpService erpService, ISerialNumberService serialNumberService,
IBoxInventoryService boxInventoryService, IInventoryInOutDetailsService inventoryInOutDetailsService,
IBoxInventoryRepositories boxInventoryRepositories, ILogger<OutStockService> logger, IBoxRepositories boxRepositories,
ISingleDataService singleDataService, IServiceScopeFactory serviceScopeFactory, IInStockTaskBoxService inStockTaskService)
ISingleDataService singleDataService, IServiceScopeFactory serviceScopeFactory, IInStockTaskBoxService inStockTaskService,
IChangeMoveBoxService changeMoveBoxService)
{
_mapper = mapper;
_loginService = loginService;
@@ -72,6 +74,7 @@ namespace WMS.Web.Domain.Services
_singleDataService = singleDataService;
_serviceScopeFactory = serviceScopeFactory;
_inStockTaskService = inStockTaskService;
_changeMoveBoxService = changeMoveBoxService;
}
/// <summary>
/// 出库单
@@ -195,6 +198,11 @@ namespace WMS.Web.Domain.Services
if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory;
}
if (res_Rollback.IsSuccess)
{
var res_changeMoveBox = await _changeMoveBoxService.ChangeBox_OutStock(entity, false);
if (!res_changeMoveBox.IsSuccess) res_Rollback = res_changeMoveBox;
}
if (res_Rollback.IsSuccess)
{
boxIds = entity.Details.SelectMany(s => s.BoxsDetails).Select(s => s.BoxId).ToList();
var res_InStockTask = await _inStockTaskService.UnBind(boxIds, false);

View File

@@ -285,7 +285,7 @@ namespace WMS.Web.Domain.Services
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> Sync(List<string> billNos = null)
public async Task<Result> Sync(List<string> billNos = null, DateTime? begin = null)
{
//1.事务
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
@@ -296,8 +296,7 @@ namespace WMS.Web.Domain.Services
if (billNos == null)
{
//DateTime begin = await _erpOpsSyncDateRepositories.Get(ErpOpsSyncType.OutStock);
DateTime begin = Convert.ToDateTime("2024-03-01 00:00:00");//正式环境 从3月1好开始
if (DateTime.Now > Convert.ToDateTime("2024-03-04 00:00:00"))
if (begin == null)
begin = DateTime.Now.AddDays(-3);//默认拉去三天以内的数据
//更新时间范围内所有
result = await BillQueryForSalOutStock(false, null, begin);

View File

@@ -1609,8 +1609,8 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FRemainOutQty>=0 and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FRemainOutQty>=0 and FMaterialID.FERPCLSID not in (10,11,6)";
//param.FilterString += " and FStockID.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FDeliveryOrgID.FNumber in (" + stocks_orgs + ")";
for (int i = 0; i < stocks.Count(); i++)
@@ -1703,8 +1703,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//3.单据类型:标准
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a' and FMaterialID.FERPCLSID not in (10,11,6)";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString += " and FSrcStockId.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FStockOutOrgId.FNumber in (" + stocks_orgs + ")";
@@ -1796,8 +1796,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//3.单据类型:标准
//4.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='de3bcacc98434ec68a358aa5abcd9183' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='de3bcacc98434ec68a358aa5abcd9183' and FMaterialID.FERPCLSID not in (10,11,6)";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString += " and FSrcStockID.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FStockOrgID.FNumber in (" + stocks_orgs + ")";
@@ -1889,8 +1889,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//3.单据类型:标准
//4.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FAffairType='Dassembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FAffairType='Dassembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7' and FMaterialID.FERPCLSID not in (10,11,6)";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString += " and FStockID.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FStockOrgId.FNumber in (" + stocks_orgs + ")";
@@ -1982,8 +1982,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//3.单据类型:标准
//4.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='54533291F9A44D38809F70000499BEE9' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FBillTypeID='54533291F9A44D38809F70000499BEE9' and FMaterialID.FERPCLSID not in (10,11,6)";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString += " and FStockId.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FStockOrgId.FNumber in (" + stocks_orgs + ")";
@@ -2075,8 +2075,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//3.单据类型:标准
//4.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FAffairType='Assembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FAffairType='Assembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7' and FMaterialID.FERPCLSID not in (10,11,6)";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString += " and FStockIDSETY.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FStockOrgId.FNumber in (" + stocks_orgs + ")";
@@ -2174,8 +2174,8 @@ namespace WMS.Web.Domain.Services.Public
//2.审核状态:已审核
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
//6.物料 物料属性=费用或资产的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FMaterialID.FERPCLSID not in (10,11)";
//6.物料 物料属性=费用或资产或服务的排除 不拉取
param.FilterString = "FDocumentStatus='C' and FMaterialID.FERPCLSID not in (10,11,6)";
//param.FilterString += " and FStockID.FNumber in (" + stocks_codes + ")";
//param.FilterString += " and FDeliveryOrgID.FNumber in (" + stocks_orgs + ")";
for (int i = 0; i < stocks.Count(); i++)