using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autofac.Core; using Newtonsoft.Json; using Quartz; using WIDESEA_Common.FillingEnum; using WIDESEA_DTO.Basic; using WIDESEA_Model.Models.Basic; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Core.LogHelper; using WIDESEAWCS_DTO.MES; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_Tasks { [DisallowConcurrentExecution] public class UpstreamJob : JobBase, IJob { private readonly IRepository _FillingHtyRepository; //mes校验码 private static string mesVerification = ""; //秒 private static int shijian = 0; public UpstreamJob(IRepository fillingHtyRepository) { _FillingHtyRepository = fillingHtyRepository; } public Task Execute(IJobExecutionContext context) { try { //一天获取一次校验码 Thread.Sleep(1000); shijian = shijian -1; string mes = AppSettings.Get("MSE"); if (!string.IsNullOrEmpty(mes)) { Reports reports = new Reports(); //获取MES校验码 if (shijian <= 0) { User user = new User(); Return s = JsonConvert.DeserializeObject(HttpHelper.Post($"{mes}/Account/Check/", user.Serialize())); if (s.code.Equals("200")) { mesVerification = s.message; shijian = 86400; LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{"获取mes校验码成功" + s.message}" }); } else { LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{"获取mes校验码失败" + JsonConvert.SerializeObject(s)}" }); } } //查询二维码 Dt_FillingOrder_Hty FillingOrder = _FillingHtyRepository.QueryFirst(x => x.BarStatus == (int)FillingStatusEnum.ExecuteCompleted); if (FillingOrder != null && !mesVerification.Equals("")) { reports.report.Qty = FillingOrder.BarNum; reports.report.DispatchID = FillingOrder.WorkID + ""; reports.barcodeSN.Add(new barcodeSN()); reports.barcodeSN[0].Barcode = FillingOrder.BarCode; reports.barcodeSN[0].BatchNum = int.Parse(FillingOrder.batchNum); reports.barcodeSN[0].Id = FillingOrder.BarCodeID; reports.barcodeSN[0].MaterialId = FillingOrder.ArticleNumID; reports.barcodeSN[0].Quantity = (int)FillingOrder.BarNum; reports.barcodeSN[0].DispatchId = FillingOrder.WorkID; reports.barcodeSN[0].BarcodeType = 0; var headers = new Dictionary(); headers.Add("token", mesVerification); Return k = JsonConvert.DeserializeObject(HttpHelper.Post($"{mes}/Task/SaveReportRaw/", reports.Serialize(), "application/json", headers)); string zhi = JsonConvert.SerializeObject(reports); LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{"发送二维码:" + zhi + "//"}" }); //修改状态 if (k.code.Equals("200")) { FillingOrder.BarStatus = (int)FillingStatusEnum.Send; _FillingHtyRepository.UpdateData(FillingOrder); LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{"修改二维码ID:" + FillingOrder.Id + "//"}" }); } } else { //LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{"没有可上报的二维码或无校验码"}" }); } } } catch (Exception ex) { //写入日志 LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{ex.Message}" }); } return Task.CompletedTask; } } }