优化
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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}");
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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++)
|
||||
|
||||
Reference in New Issue
Block a user