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) if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error); return Result.ReFailure(ResultCodes.Token_Invalid_Error);
DateTime begin = DateTime.Now.AddDays(-3);//默认拉去三天以内的数据
var res = await _repositories.GetEntityList(dto.Ids); 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> <param name="qty"></param>
<returns></returns> <returns></returns>
</member> </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"> <member name="T:WMS.Web.Domain.Entitys.BoxDetails">
<summary> <summary>
老ops箱信息明细 老ops箱信息明细
@@ -3614,11 +3622,12 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </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>
同步金蝶数据 不传源订单号则更新所有 同步金蝶数据 不传源订单号则更新所有
</summary> </summary>
<param name="billNos"></param> <param name="billNos"></param>
<param name="begin"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:WMS.Web.Domain.IService.Public.ISingleDataService"> <member name="T:WMS.Web.Domain.IService.Public.ISingleDataService">
@@ -4318,6 +4327,14 @@
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </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})"> <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> <summary>
列表页导出 列表页导出
@@ -4714,7 +4731,7 @@
<param name="beginTime"></param> <param name="beginTime"></param>
<returns></returns> <returns></returns>
</member> </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>
同步金蝶数据 不传源订单号则更新所有 同步金蝶数据 不传源订单号则更新所有
</summary> </summary>

View File

@@ -146,5 +146,19 @@ namespace WMS.Web.Domain.Entitys
return Result.ReSuccess(); 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_BackRecord(BackRecord BackRecord, LoginInDto loginInfo, bool isTransaction = true);
//非采购入库 //非采购入库
Task<Result> ChangeBox_InStock(InStock InStocks, 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> /// </summary>
/// <param name="billNos"></param> /// <param name="billNos"></param>
/// <param name="begin"></param>
/// <returns></returns> /// <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.记录:开始时间 //2.记录:开始时间
var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶出库单数据:执行开始时间->{begindatetime}"); _logger.LogInformation($"出库单-同步金蝶出库单数据:执行开始时间->{begindatetime}");
DateTime begin = DateTime.Now.AddDays(-3);//默认拉去一天以内的数据
//3.同步数据 //3.同步数据
var result = await _outStockTaskService.Sync(null); var result = await _outStockTaskService.Sync(null, begin);
//5.记录:结束时间 //5.记录:结束时间
var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶出库单数据:执行结束时间->{begindatetime}"); _logger.LogInformation($"出库单-同步金蝶出库单数据:执行结束时间->{begindatetime}");

View File

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

View File

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

View File

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