| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockSelectViewDTO.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/ErpJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/ErpApiService.cs
@@ -226,10 +226,10 @@ } else { materialRequest.modifyDateStart = DateTime.Now.AddDays(-1).Date.ToString("yyyy-MM-dd") + " 00:00:01"; materialRequest.modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":01"; materialRequest.pageNum = 1; materialRequest.pageSize = 5000; //materialRequest.modifyDateStart = DateTime.Now.AddDays(-1).Date.ToString("yyyy-MM-dd") + " 00:00:01"; //materialRequest.modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":01"; //materialRequest.pageNum = 1; //materialRequest.pageSize = 5000; var result = await PostAsync<MaterialRequest, MaterialResponse>("erp/getMaterialInfo", materialRequest, true, true); if (result != null && result.data != null && result.data.Any()) ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockSelectViewDTO.cs
@@ -18,5 +18,7 @@ public string PalletCode { get; set; } public string LocationCode { get; set; } } } ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -148,53 +148,41 @@ List<Dt_OutboundOrderDetail>? orderDetails = null; List<Dt_OutStockLockInfo>? outStockLockInfos = null; List<Dt_LocationInfo>? locationInfos = null; //if (outboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) (List<Dt_StockInfo>, List<Dt_OutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundOrderDetailService.AssignStockOutbound(outboundOrderDetails); if (result.Item1 != null && result.Item1.Count > 0) { (List<Dt_StockInfo>, List<Dt_OutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundOrderDetailService.AssignStockOutbound(outboundOrderDetails); if (result.Item1 != null && result.Item1.Count > 0) Dt_OutboundOrder outboundOrder = _outboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId); TaskTypeEnum typeEnum = outboundOrder.OrderType switch { Dt_OutboundOrder outboundOrder = _outboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId); TaskTypeEnum typeEnum = outboundOrder.OrderType switch { (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound, (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate, (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality, _ => TaskTypeEnum.Outbound }; tasks = GetTasks(result.Item1, typeEnum, outStation); tasks.ForEach(x => { x.OrderNo = outboundOrder.OrderNo; }); result.Item2.ForEach(x => { x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); }); result.Item3.ForEach(x => { x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); }); (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound, (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate, (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality, _ => TaskTypeEnum.Outbound }; tasks = GetTasks(result.Item1, typeEnum, outStation); tasks.ForEach(x => { x.OrderNo = outboundOrder.OrderNo; }); result.Item2.ForEach(x => { x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); }); result.Item3.ForEach(x => { x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); }); stockInfos = result.Item1; orderDetails = result.Item2; outStockLockInfos = result.Item3; locationInfos = result.Item4; } else { throw new Exception("æ åºå"); } stockInfos = result.Item1; orderDetails = result.Item2; outStockLockInfos = result.Item3; locationInfos = result.Item4; } //else //{ // List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetail.OrderId, OutLockStockStatusEnum.å·²åé ); // if (stockLockInfos != null && stockLockInfos.Count > 0) // { // List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList()); // tasks = GetTasks(stocks); // } //} else { throw new Exception("æ åºå"); } return (tasks, stockInfos, orderDetails, outStockLockInfos, locationInfos); } @@ -257,7 +245,7 @@ taskType = "carry", taskGroupCode = "", groupPriority = 0, tasks = new List<TasksType>() tasks = new List<TasksType>() }; foreach (var task in tasks) @@ -290,7 +278,7 @@ else { return WebResponseContent.Instance.Error("ä¸åæºå¨äººä»»å¡å¤±è´¥ï¼"); } } } catch (Exception ex) { @@ -331,7 +319,7 @@ // TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), PalletType = stockInfo.PalletType, WarehouseId = stockInfo.WarehouseId, }; //if (taskType != TaskTypeEnum.OutEmpty) //{ @@ -353,7 +341,7 @@ /// </summary> /// <param name="keys">åºåºåæç»ä¸»é®</param> /// <returns></returns> public async Task<WebResponseContent> GenerateOutboundTasksAsync(int[] keys,string outStation) public async Task<WebResponseContent> GenerateOutboundTasksAsync(int[] keys, string outStation) { try { @@ -364,7 +352,7 @@ List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = OutboundTaskDataHandle(keys,outStation); (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = OutboundTaskDataHandle(keys, outStation); if (result.Item2 != null && result.Item2.Count > 0) { stockInfos.AddRange(result.Item2); ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/ErpJob.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ using Quartz; using SqlSugar; using WIDESEA_DTO.Basic; namespace WIDESEA_WMSServer.Jobs { [DisallowConcurrentExecution] public class ErpJob : IJob { private readonly ILogger<ErpJob> _logger; private readonly ISqlSugarClient _db; private readonly WIDESEA_IBasicService.IErpApiService _erpApiService; // éè¿æé 彿°ç´æ¥æ³¨å ¥ä¾èµ public ErpJob(ILogger<ErpJob> logger, ISqlSugarClient db, WIDESEA_IBasicService.IErpApiService erpApiService) { _logger = logger; _db = db; _erpApiService = erpApiService; } public async Task Execute(IJobExecutionContext context) { _logger.LogInformation($"宿¶ä»»å¡å¼å§æ§è¡ï¼æ¶é´ï¼{DateTime.Now:yyyy-MM-dd HH:mm:ss}"); try { await _erpApiService.GetSuppliersAsync(); await _erpApiService.GetMaterialUnitAsync(); var materialRequest = new MaterialRequest { modifyDateStart = DateTime.Now.AddDays(-10).Date.ToString("yyyy-MM-dd") + " 00:00:01", modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":01", pageNum = 1, pageSize = 5000 }; await _erpApiService.GetMaterialInfoAsync(materialRequest); _logger.LogInformation($"宿¶ä»»å¡æ§è¡æå"); } catch (Exception ex) { _logger.LogError(ex, "宿¶ä»»å¡æ§è¡å¤±è´¥"); } } } } ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
@@ -22,6 +22,8 @@ //using WIDESEA_Core.HostedService; using WIDESEA_Core.Middlewares; using WIDESEA_WMSServer.Filter; using Quartz; using WIDESEA_WMSServer.Jobs; var builder = WebApplication.CreateBuilder(args); @@ -146,10 +148,26 @@ client.Timeout = TimeSpan.FromSeconds(30); }); builder.Services.AddQuartz(q => { var jobKey = new JobKey("ErpJob"); q.AddJob<ErpJob>(opts => opts.WithIdentity(jobKey)); // æ·»å 触åå¨ - æ¯å¤©10:00, 14:00, 20:00æ§è¡ q.AddTrigger(opts => opts .ForJob(jobKey) .WithIdentity("ErpJob-trigger") .WithCronSchedule("0 0 10,14,20 * * ?")); }); builder.Services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true); var app = builder.Build(); // 3ãé ç½®ä¸é´ä»¶ app.UseMiniProfiler();//æ§è½åæå¨ app.ConfigureApplication();//é ç½®æä»¶ app.UseApplicationSetup();//å¯å¨é ç½® ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj
@@ -47,6 +47,8 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Quartz" Version="3.13.1" /> <PackageReference Include="Quartz.Extensions.Hosting" Version="3.13.1" /> <PackageReference Include="Serilog" Version="4.3.0" /> <PackageReference Include="Serilog.AspNetCore" Version="9.0.0" /> <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.7.3" />