| | |
| | | using Masuit.Tools; |
| | | using MailKit.Search; |
| | | using Masuit.Tools; |
| | | using Microsoft.Extensions.Hosting; |
| | | using Microsoft.Extensions.Logging; |
| | | using System.Net.Mail; |
| | | using SixLabors.Fonts; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Net; |
| | | using System.Net.Mail; |
| | | using System.Text; |
| | | using WIDESEA_Cache; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_IOrderRepository; |
| | | using WIDESEA_IServices; |
| | | using WIDESEA_Model.Models.ERP; |
| | | using WIDESEA_Model.Models.Order; |
| | | using WIDESEA_OrderRepository; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | |
| | | namespace WIDESEA_StorageTaskServices |
| | |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ISys_ConfigService _configService; |
| | | private readonly ILocationInfoRepository _locationRepository; |
| | | private readonly IDt_InboundOrderRepository _inboundOrderRepository; |
| | | |
| | | private Timer _timer; |
| | | |
| | | public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService) |
| | | public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService,IDt_InboundOrderRepository inboundOrderRepository) |
| | | { |
| | | _logger = logger; |
| | | _locationRepository = locationRepository; |
| | |
| | | _taskRepository = taskRepository; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _configService = configService; |
| | | _inboundOrderRepository = inboundOrderRepository; |
| | | } |
| | | |
| | | public Task StartAsync(CancellationToken cancellationToken) |
| | | { |
| | | _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(5)); |
| | | _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1)); |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | List<WMS_éè´å
¥æåå
¥åºèªå¨æå°æ¸
å_ST> ERPPrintChecklist =SqlSugarHelper.DBERP.Queryable<WMS_éè´å
¥æåå
¥åºèªå¨æå°æ¸
å_ST>().Where(x => true).ToList(); |
| | | |
| | | |
| | | var printCheckList = _inboundOrderRepository.QueryData(x => true); |
| | | List<Dt_InboundOrder> inboundOrderAdd = new List<Dt_InboundOrder>(); |
| | | List<Dt_InboundOrder> inboundOrderUpdate = new List<Dt_InboundOrder>(); |
| | | if (ERPPrintChecklist != null) return; |
| | | foreach (var item in ERPPrintChecklist) |
| | | { |
| | | var x = printCheckList.Where(x => x.MaterialNo == item.æå· && x.OrderNo == item.åå· && x.WarehouseName == item.å
¥åºä»åºåç§°).FirstOrDefault(); |
| | | if (x == null) |
| | | { |
| | | Dt_InboundOrder Print = new Dt_InboundOrder() |
| | | { |
| | | PrintCode = GetOrderPintCode(), |
| | | OrderNo = item.åå·, |
| | | DemandClassification = item.éæ±åç±», |
| | | OrderType = item.åæ®ç±»å, |
| | | WarehouseName = item.å
¥åºä»åºåç§°, |
| | | Datetime = item.æ¥æ.ToString(), |
| | | LineNumber = item.è¡å·, |
| | | ProductDrawingNumber = item.产åå¾å·, |
| | | MaterialNo = item.æå·, |
| | | MaterialName = item.åå, |
| | | Weight = item.åé, |
| | | Specs = item.è§æ ¼, |
| | | Unit = item.åä½, |
| | | Texture = item.ç¨åæè´¨, |
| | | Quantity = item.å
¥åºæ°é, |
| | | OrderStatus = item.åæ®ç¶æ |
| | | |
| | | }; |
| | | inboundOrderAdd.Add(Print); |
| | | } |
| | | else |
| | | { |
| | | if (x.PrintCode == null || x.PrintCode == "") |
| | | { |
| | | x.PrintCode = GetOrderPintCode(); |
| | | x.OrderNo = item.åå·; |
| | | x.DemandClassification = item.éæ±åç±»; |
| | | x.OrderType = item.åæ®ç±»å; |
| | | x.WarehouseName = item.å
¥åºä»åºåç§°; |
| | | x.Datetime = item.æ¥æ.ToString(); |
| | | x.LineNumber = item.è¡å·; |
| | | x.ProductDrawingNumber = item.产åå¾å·; |
| | | x.MaterialNo = item.æå·; |
| | | x.MaterialName = item.åå; |
| | | x.Weight = item.åé; |
| | | x.Specs = item.è§æ ¼; |
| | | x.Unit = item.åä½; |
| | | x.Texture = item.ç¨åæè´¨; |
| | | x.Quantity = item.å
¥åºæ°é; |
| | | x.OrderStatus = item.åæ®ç¶æ; |
| | | inboundOrderUpdate.Add(x); |
| | | } |
| | | } |
| | | } |
| | | if (inboundOrderAdd.Count > 0) |
| | | { |
| | | _inboundOrderRepository.AddData(inboundOrderAdd); |
| | | } |
| | | if (inboundOrderUpdate.Count > 0) |
| | | { |
| | | _inboundOrderRepository.UpdateData(inboundOrderUpdate); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | public string GetOrderPintCode() |
| | | { |
| | | string PrintCode = ""; |
| | | var PrintSetting = SqlSugarHelper.DbWMS.Queryable<Dt_PrintSetting>().Where(x => x.PrintCode == "OrderNo").ToList().FirstOrDefault(); |
| | | |
| | | if (PrintSetting.Spare1 == DateTime.Now.ToString("yyyyMMdd")) |
| | | { |
| | | PrintCode = PrintSetting.Spare1 + PrintSetting.PrintNo.ToString().PadLeft(PrintSetting.Spare2, '0'); |
| | | PrintSetting.PrintNo = PrintSetting.PrintNo + 1; |
| | | } |
| | | else |
| | | { |
| | | PrintSetting.Spare1 = DateTime.Now.ToString("yyyyMMdd"); |
| | | PrintSetting.PrintNo = 2; |
| | | PrintCode = PrintSetting.PrintCode + PrintSetting.Spare1 + 1.ToString().PadLeft(PrintSetting.Spare2, '0'); |
| | | } |
| | | SqlSugarHelper.DbWMS.Updateable(PrintSetting).ExecuteCommand(); |
| | | return PrintCode; |
| | | } |
| | | |
| | | public Task StopAsync(CancellationToken cancellationToken) |
| | | { |
| | | _logger.LogInformation("MyBackgroundService is stopping."); |