增加同步时间

This commit is contained in:
18942506660
2023-11-10 15:15:17 +08:00
parent 2546646533
commit 61c052d1f7
15 changed files with 350 additions and 81 deletions

View File

@@ -118,7 +118,7 @@ namespace WMS.Web.Api.Controllers
return Result<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
//搜索之前同步金蝶数据
await _outStockTaskService.Ssyn(new List<string>() { billNo });
await _outStockTaskService.Sync(new List<string>() { billNo });
var res = await _repositories.GetOutStockTaskByNo(billNo);
if (res == null) return Result<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.OutStockTaskNoData);
@@ -139,7 +139,7 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
return await _outStockTaskService.Ssyn(dto.Ids);
return await _outStockTaskService.Sync(dto.Ids);
}
}
}

View File

@@ -274,6 +274,23 @@
<param name="materialId"></param>
<param name="serialNumbers"></param>
</member>
<member name="T:WMS.Web.Domain.Entitys.ErpOpsSyncDate">
<summary>
erp同步时间管理 记录最新一次重金蝶和ops拉取数据时间
系统部署时第一次需要预埋数据
定时任务最新一次时间管理
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.ErpOpsSyncDate.Type">
<summary>
同步类型
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.ErpOpsSyncDate.SyncTime">
<summary>
最新一次同步时间
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.InStock">
<summary>
wms入库单
@@ -1291,6 +1308,11 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Infrastructure.IErpOpsSyncDateRepositories">
<summary>
定时任务最新一次时间管理
</summary>
</member>
<member name="T:WMS.Web.Domain.Infrastructure.IInStockRepositories">
<summary>
wms入库单-仓储接口
@@ -1733,37 +1755,37 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForDeliveryNoticeOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForDeliveryNoticeOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-出库单
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForTransferDirectOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForTransferDirectOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-直接调拨出库
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForTransferOutOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForTransferOutOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-分布式调出
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForAssembledAppOutStock_Dassembly(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForAssembledAppOutStock_Dassembly(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-组装拆卸单(拆卸 主出)
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForAssembledAppOutStock_Assembly(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForAssembledAppOutStock_Assembly(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-组装拆卸单(组装 子出)
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForMisDeliveryOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForMisDeliveryOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-其他出库
</summary>
@@ -1880,38 +1902,38 @@
出库任务
</summary>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForDeliveryNoticeOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForDeliveryNoticeOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
采购发货通知单
</summary>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForTransferDirectOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForTransferDirectOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-直接调拨出库
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForTransferOutOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForTransferOutOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-分布式调出
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForAssembledAppOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForAssembledAppOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-组装拆卸单(拆卸 主出) 组装 子出
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForMisDeliveryOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.BillQueryForMisDeliveryOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
erp:单据查询-其他出库
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.Ssyn(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.Sync(System.Collections.Generic.List{System.String})">
<summary>
同步金蝶数据 不传源订单号则更新所有
</summary>
@@ -2308,6 +2330,13 @@
私钥
</summary>
</member>
<member name="M:WMS.Web.Domain.QuartzJob.BoxQuartzJob.Execute(Quartz.IJobExecutionContext)">
<summary>
执行方法
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.QuartzJob.InStockOrderQuartzJob">
<summary>
erp入库任务单-获取定时任务
@@ -2527,14 +2556,14 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForDeliveryNoticeOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForDeliveryNoticeOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
发货通知单同步数据
</summary>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForTransferDirectOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForTransferDirectOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
直接调拨
</summary>
@@ -2542,7 +2571,7 @@
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForTransferOutOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForTransferOutOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
分布式调出
</summary>
@@ -2550,7 +2579,7 @@
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForAssembledAppOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForAssembledAppOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
组装拆卸单
</summary>
@@ -2558,7 +2587,7 @@
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForMisDeliveryOutStock(System.Boolean,System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.BillQueryForMisDeliveryOutStock(System.Boolean,System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
其他入库单
</summary>
@@ -2566,7 +2595,7 @@
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.Ssyn(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.Sync(System.Collections.Generic.List{System.String})">
<summary>
同步金蝶数据 不传源订单号则更新所有
</summary>
@@ -2729,35 +2758,35 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForTransferDirectOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForTransferDirectOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
直接调拨出库
</summary>
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForTransferOutOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForTransferOutOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
分布式调出
</summary>
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForAssembledAppOutStock_Dassembly(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForAssembledAppOutStock_Dassembly(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
组装拆卸单 (拆卸 主出)
</summary>
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForMisDeliveryOutStock(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForMisDeliveryOutStock(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
其他出库
</summary>
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForAssembledAppOutStock_Assembly(System.Collections.Generic.List{System.String})">
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForAssembledAppOutStock_Assembly(System.Collections.Generic.List{System.String},System.Nullable{System.DateTime})">
<summary>
组装拆卸单 (组装 子出)
</summary>
@@ -3161,6 +3190,21 @@
出库回退上架
</summary>
</member>
<member name="T:WMS.Web.Domain.Values.ErpOpsSyncType">
<summary>
erp和ops同步时间管理 单据类型
</summary>
</member>
<member name="F:WMS.Web.Domain.Values.ErpOpsSyncType.Ops">
<summary>
老Ops
</summary>
</member>
<member name="F:WMS.Web.Domain.Values.ErpOpsSyncType.OutStock">
<summary>
出库单
</summary>
</member>
<member name="T:WMS.Web.Domain.Values.Erp.FormIdParam">
<summary>
业务对象表单Id对应erp的单据表的名称

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
/// <summary>
/// erp同步时间管理 记录最新一次重金蝶和ops拉取数据时间
/// 系统部署时第一次需要预埋数据
/// 定时任务最新一次时间管理
/// </summary>
[Serializable]
[Table("t_wms_sync_date")]
public class ErpOpsSyncDate
{
/// <summary>
/// 同步类型
/// </summary>
public ErpOpsSyncType Type { get; set; } = ErpOpsSyncType.Ops;
/// <summary>
/// 最新一次同步时间
/// </summary>
public DateTime SyncTime { get; set; } = DateTime.Now;
}
}

View File

@@ -24,32 +24,32 @@ namespace WMS.Web.Domain.IService.Public
/// erp:单据查询-出库单
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForDeliveryNoticeOutStock(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForDeliveryNoticeOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-直接调拨出库
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferDirectOutStock(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferDirectOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-分布式调出
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferOutOutStock(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferOutOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-组装拆卸单(拆卸 主出)
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Dassembly(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Dassembly(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-组装拆卸单(组装 子出)
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Assembly(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Assembly(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-其他出库
/// </summary>
/// <returns></returns>
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForMisDeliveryOutStock(List<string> sourceBillNos = null);
Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForMisDeliveryOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-物料
/// </summary>

View File

@@ -19,27 +19,27 @@ namespace WMS.Web.Domain.IService.Public
/// </summary>
/// <param name="isTransaction"></param>
/// <returns></returns>
Task<Result> BillQueryForDeliveryNoticeOutStock(bool isTransaction,List<string> sourceBillNos = null);
Task<Result> BillQueryForDeliveryNoticeOutStock(bool isTransaction,List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-直接调拨出库
/// </summary>
/// <returns></returns>
Task<Result> BillQueryForTransferDirectOutStock(bool isTransaction, List<string> sourceBillNos = null);
Task<Result> BillQueryForTransferDirectOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-分布式调出
/// </summary>
/// <returns></returns>
Task<Result> BillQueryForTransferOutOutStock(bool isTransaction, List<string> sourceBillNos = null);
Task<Result> BillQueryForTransferOutOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-组装拆卸单(拆卸 主出) 组装 子出
/// </summary>
/// <returns></returns>
Task<Result> BillQueryForAssembledAppOutStock(bool isTransaction, List<string> sourceBillNos = null);
Task<Result> BillQueryForAssembledAppOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null);
/// <summary>
/// erp:单据查询-其他出库
/// </summary>
/// <returns></returns>
Task<Result> BillQueryForMisDeliveryOutStock(bool isTransaction, List<string> sourceBillNos = null);
Task<Result> BillQueryForMisDeliveryOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null);
//出库任务作废
Task<Result> Repeal(OperateRequest dto, LoginInDto loginInfo);
//出库任务作废
@@ -49,6 +49,6 @@ namespace WMS.Web.Domain.IService.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
Task<Result> Ssyn(List<string> sourceBillNos = null);
Task<Result> Sync(List<string> sourceBillNos = null);
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Infrastructure
{
/// <summary>
/// 定时任务最新一次时间管理
/// </summary>
public interface IErpOpsSyncDateRepositories
{
//获取最新一次更新时间
Task<DateTime> Get(ErpOpsSyncType type);
//定时任务执行后更新时间
Task<bool> Edit(ErpOpsSyncType type, bool isTransaction = true);
}
}

View File

@@ -0,0 +1,52 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Quartz;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Domain.IService;
namespace WMS.Web.Domain.QuartzJob
{
public class BoxQuartzJob : IJob
{
private readonly ILogger<BoxQuartzJob> _logger;
private readonly IServiceScopeFactory _serviceScopeFactory;
private readonly IBoxService _boxService;
public BoxQuartzJob(ILogger<BoxQuartzJob> logger,
IServiceScopeFactory serviceScopeFactory, IBoxService boxService)
{
this._logger = logger;
_serviceScopeFactory = serviceScopeFactory;
_boxService = boxService;
}
/// <summary>
/// 执行方法
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Execute(IJobExecutionContext context)
{
try
{
//2.记录:开始时间
var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶入库单数据:执行开始时间->{begindatetime}");
//3.同步数据
var result = await _boxService.Sync();
//5.记录:结束时间
var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶入库单数据:执行结束时间->{begindatetime}");
}
catch (Exception ex)
{
_logger.LogInformation($"同步金蝶入库单数据:定时任务执行失败->{ex.Message}");
}
}
}
}

View File

@@ -48,7 +48,7 @@ namespace WMS.Web.Domain.QuartzJob
var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶入库单数据:执行开始时间->{begindatetime}");
//3.同步数据
var result = await _outStockTaskService.Ssyn(null);
var result = await _outStockTaskService.Sync(null);
//5.记录:结束时间
var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"出库单-同步金蝶入库单数据:执行结束时间->{begindatetime}");

View File

@@ -26,9 +26,12 @@ namespace WMS.Web.Domain.Services
private readonly IBoxRepositories _boxRepositories;
private readonly IOpsService _opsService;
private readonly ISerialNumberOperateRepositories _serialNumberOperateRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
public BoxService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IBoxRepositories boxRepositories, IOpsService opsService, ISerialNumberOperateRepositories serialNumberOperateRepositories)
IBoxRepositories boxRepositories, IOpsService opsService,
ISerialNumberOperateRepositories serialNumberOperateRepositories,
IErpOpsSyncDateRepositories erpOpsSyncDateRepositories)
{
_mapper = mapper;
_loginService = loginService;
@@ -36,11 +39,13 @@ namespace WMS.Web.Domain.Services
_boxRepositories = boxRepositories;
_opsService = opsService;
_serialNumberOperateRepositories = serialNumberOperateRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
}
public async Task<Result> Sync()
{
OpsBoxRequest request = new OpsBoxRequest(DateTime.Now.AddYears(-1), DateTime.Now);
DateTime begin = await _erpOpsSyncDateRepositories.Get(ErpOpsSyncType.Ops);
OpsBoxRequest request = new OpsBoxRequest(begin, DateTime.Now);
var list = await _opsService.GetBox(request);
var nos = list.Select(s => s.BoxBillNo).ToList();
var old_nos = await _boxRepositories.GetByNos(nos);
@@ -72,7 +77,9 @@ namespace WMS.Web.Domain.Services
//序列号操作记录
var res = await this.SerialNumberOperate(sList, false);
if (!res.Success) isRollback = true;
//更新时间管理
isSuccess = await _erpOpsSyncDateRepositories.Edit(ErpOpsSyncType.Ops, false);
if (!isSuccess) isRollback = true;
//提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)

View File

@@ -29,9 +29,10 @@ namespace WMS.Web.Domain.Services
private readonly IBasicsRepositories _transactionRepositories;
private readonly IOutStockRepositories _outStockRepositories;
private readonly IOutStockTaskRepositories _outStockTaskRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories)
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories)
{
_mapper = mapper;
_erpService = erpService;
@@ -39,6 +40,7 @@ namespace WMS.Web.Domain.Services
_transactionRepositories = transactionRepositories;
_outStockRepositories = outStockRepositories;
_outStockTaskRepositories = outStockTaskRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
}
/// <summary>
@@ -158,10 +160,10 @@ namespace WMS.Web.Domain.Services
/// </summary>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> BillQueryForDeliveryNoticeOutStock(bool isTransaction, List<string> sourceBillNos = null)
public async Task<Result> BillQueryForDeliveryNoticeOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null)
{
//1.获取金蝶数据:采购订单数据
var erp_result = await _erpService.BillQueryForDeliveryNoticeOutStock(sourceBillNos);
var erp_result = await _erpService.BillQueryForDeliveryNoticeOutStock(sourceBillNos, beginTime);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
@@ -173,9 +175,9 @@ namespace WMS.Web.Domain.Services
/// <param name="isTransaction"></param>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> BillQueryForTransferDirectOutStock(bool isTransaction, List<string> sourceBillNos = null)
public async Task<Result> BillQueryForTransferDirectOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null)
{
var erp_result = await _erpService.BillQueryForTransferDirectOutStock(sourceBillNos);
var erp_result = await _erpService.BillQueryForTransferDirectOutStock(sourceBillNos, beginTime);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
@@ -187,9 +189,9 @@ namespace WMS.Web.Domain.Services
/// <param name="isTransaction"></param>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> BillQueryForTransferOutOutStock(bool isTransaction, List<string> sourceBillNos = null)
public async Task<Result> BillQueryForTransferOutOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null)
{
var erp_result = await _erpService.BillQueryForTransferOutOutStock(sourceBillNos);
var erp_result = await _erpService.BillQueryForTransferOutOutStock(sourceBillNos, beginTime);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
@@ -201,16 +203,16 @@ namespace WMS.Web.Domain.Services
/// <param name="isTransaction"></param>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> BillQueryForAssembledAppOutStock(bool isTransaction, List<string> sourceBillNos = null)
public async Task<Result> BillQueryForAssembledAppOutStock(bool isTransaction, List<string> sourceBillNos = null, DateTime? beginTime = null)
{
List<ErpDeliveryNoticeOutStockResultDto> list = new List<ErpDeliveryNoticeOutStockResultDto>();
var erp_result = await _erpService.BillQueryForAssembledAppOutStock_Dassembly(sourceBillNos);
var erp_result = await _erpService.BillQueryForAssembledAppOutStock_Dassembly(sourceBillNos, beginTime);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
list.AddRange(erp_result.Data);
var erp_result_a = await _erpService.BillQueryForAssembledAppOutStock_Assembly(sourceBillNos);
var erp_result_a = await _erpService.BillQueryForAssembledAppOutStock_Assembly(sourceBillNos, beginTime);
if (!erp_result_a.IsSuccess)
return Result.ReFailure(erp_result_a.Message, erp_result_a.Status);
list.AddRange(erp_result_a.Data);
@@ -223,9 +225,9 @@ namespace WMS.Web.Domain.Services
/// <param name="isTransaction"></param>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> BillQueryForMisDeliveryOutStock(bool isTransaction, List<string> sourceBillNos = null)
public async Task<Result> BillQueryForMisDeliveryOutStock(bool isTransaction, List<string> sourceBillNos = null,DateTime? beginTime=null)
{
var erp_result = await _erpService.BillQueryForMisDeliveryOutStock(sourceBillNos);
var erp_result = await _erpService.BillQueryForMisDeliveryOutStock(sourceBillNos,beginTime);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
@@ -236,7 +238,7 @@ namespace WMS.Web.Domain.Services
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<Result> Ssyn(List<string> sourceBillNos = null)
public async Task<Result> Sync(List<string> sourceBillNos = null)
{
//1.事务
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
@@ -246,9 +248,9 @@ namespace WMS.Web.Domain.Services
//定时任务更新
if (sourceBillNos == null)
{
DateTime begin = await _erpOpsSyncDateRepositories.Get(ErpOpsSyncType.OutStock);
//更新时间范围内所有
result= await BillQueryForDeliveryNoticeOutStock(false, null);
result = await BillQueryForDeliveryNoticeOutStock(false, null);
if (!result.IsSuccess) isRollback = true;
result = await BillQueryForTransferDirectOutStock(false, null);
if (!result.IsSuccess) isRollback = true;
@@ -262,6 +264,9 @@ namespace WMS.Web.Domain.Services
//同步成功后 更新定时开始时间
if (!isRollback)
{
//更新时间管理
isSuccess = await _erpOpsSyncDateRepositories.Edit(ErpOpsSyncType.Ops, false);
if (!isSuccess) isRollback = true;
}
//4.提交事务

View File

@@ -659,7 +659,7 @@ namespace WMS.Web.Domain.Services.Public
}
#region
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForDeliveryNoticeOutStock(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForDeliveryNoticeOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -675,8 +675,10 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.SAL_DELIVERYNOTICE.ToString());
@@ -688,7 +690,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and FRemainOutQty>=0";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C' and FRemainOutQty>=0";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
@@ -735,7 +737,7 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferDirectOutStock(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferDirectOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -751,8 +753,9 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_TransferDirect.ToString());
@@ -764,7 +767,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C'";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FSrcStockId in (" + srt.Substring(1, srt.Length - 2) + ")";
@@ -811,7 +814,7 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferOutOutStock(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForTransferOutOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -827,8 +830,9 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_TRANSFEROUT.ToString());
@@ -840,7 +844,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C'";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
@@ -887,7 +891,7 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Dassembly(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Dassembly(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -903,8 +907,9 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
@@ -916,7 +921,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and FAffairType='Dassembly'";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C' and FAffairType='Dassembly'";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
@@ -963,7 +968,7 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForMisDeliveryOutStock(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForMisDeliveryOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -979,8 +984,9 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_MisDelivery.ToString());
@@ -992,7 +998,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C'";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
@@ -1039,7 +1045,7 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Assembly(List<string> sourceBillNos = null)
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForAssembledAppOutStock_Assembly(List<string> sourceBillNos = null, DateTime? beginTime = null)
{
try
{
@@ -1055,8 +1061,9 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var beginStr = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00");
var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
@@ -1068,7 +1075,7 @@ namespace WMS.Web.Domain.Services.Public
//3.未出库数量>0
//4.日期>=系统上线之日
//5.仓库wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and FAffairType='Assembly'";
param.FilterString = "FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "' and FDocumentStatus='C' and FAffairType='Assembly'";
//string srt = JsonConvert.SerializeObject(stocks_codes);
//param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
using WMS.Web.Core;
namespace WMS.Web.Domain.Values
{
/// <summary>
/// erp和ops同步时间管理 单据类型
/// </summary>
public enum ErpOpsSyncType
{
/// <summary>
/// 老Ops
/// </summary>
[EnumRemark("老Ops")]
Ops =1,
/// <summary>
/// 出库单
/// </summary>
[EnumRemark("出库单")]
OutStock =2
}
}

View File

@@ -56,6 +56,13 @@ namespace WMS.Web.Repositories.Configuration
ent.HasKey(x => x.Id);
});
//序列号操作记录
builder.Entity<ErpOpsSyncDate>(ent =>
{
ent.ToTable("t_wms_sync_date");
});
#region
builder.Entity<OutStock>(ent =>
{
@@ -230,6 +237,7 @@ namespace WMS.Web.Repositories.Configuration
base.OnModelCreating(builder);
}
public DbSet<ErpOpsSyncDate> ErpOpsSyncDate { get; set; }
public DbSet<SerialNumberOperate> SerialNumberOperate { get; set; }
public DbSet<ChangeBoxRecord> ChangeBoxRecord { get; set; }
public DbSet<MoveBoxRecord> MoveBoxRecord { get; set; }

View File

@@ -53,6 +53,7 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddTransient<IOutStockRepositories, OutStockRepositories>();
services.AddTransient<IOutStockTaskRepositories, OutStockTaskRepositories>();
services.AddTransient<ITakeStockRepositories, TakeStockRepositories>();
services.AddTransient<IErpOpsSyncDateRepositories, ErpOpsSyncDateRepositories>();
}
}
}

View File

@@ -0,0 +1,75 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Domain.Infrastructure;
using WMS.Web.Domain.Values;
using WMS.Web.Repositories.Configuration;
namespace WMS.Web.Repositories
{
/// <summary>
/// 定时任务最新一次时间管理
/// </summary>
public class ErpOpsSyncDateRepositories : IErpOpsSyncDateRepositories
{
private readonly IMapper _mapper;
private readonly IServiceProvider _serviceProvider;
private readonly RepositoryDbContext _context;
public ErpOpsSyncDateRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider)
{
_context = context;
_mapper = mapper;
_serviceProvider = serviceProvider;
}
/// <summary>
/// 定时任务执行后更新时间
/// </summary>
/// <param name="type"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<bool> Edit(ErpOpsSyncType type, bool isTransaction = true)
{
IDbContextTransaction _transaction = null;
if (isTransaction)
_transaction = _context.Database.BeginTransaction();
try
{
var res = await _context.ErpOpsSyncDate
.FirstOrDefaultAsync(f => f.Type == type);
if (res == null) return false;
res.SyncTime = DateTime.Now;
await _context.SaveChangesAsync();
if (_transaction != null)
_transaction.Commit();
return true;
}
catch (Exception)
{
if (_transaction != null)
_transaction.Rollback();
return false;
}
}
/// <summary>
/// 获取最新一次更新时间
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public async Task<DateTime> Get(ErpOpsSyncType type)
{
var res = await _context.ErpOpsSyncDate
.FirstOrDefaultAsync(f => f.Type == type);
return res == null ? DateTime.Now : res.SyncTime;
}
}
}