zhanghonglin
2026-04-06 cfb3f2c7e9cde8cc2eb2a19263d0802c0c5410a3
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/UpstreamJob.cs
@@ -4,8 +4,15 @@
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
@@ -13,21 +20,88 @@
    [DisallowConcurrentExecution]
    public class UpstreamJob : JobBase, IJob
    {
        private readonly IRepository<Dt_FillingOrder_Hty> _FillingHtyRepository;
        //mes校验码
        private static string mesVerification = "";
        //秒
        private static int shijian = 0;
        public UpstreamJob(IRepository<Dt_FillingOrder_Hty> fillingHtyRepository)
        {
            _FillingHtyRepository = fillingHtyRepository;
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
                //WMS生成任务
                string address = AppSettings.Get("WMSApiAddress");
                if (!string.IsNullOrEmpty(address))
                //一天获取一次校验码
                Thread.Sleep(1000);
                shijian = shijian -1;
                string mes = AppSettings.Get("MSE");
                if (!string.IsNullOrEmpty(mes))
                {
                    //string k = HttpHelper.Post($"{address}/api/Task/addInTask/?location={1}", "");
                    Reports reports = new Reports();
                    //获取MES校验码
                    if (shijian <= 0)
                    {
                        User user = new User();
                        Return s = JsonConvert.DeserializeObject<Return>(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<string, string>();
                        headers.Add("token", mesVerification);
                        Return k = JsonConvert.DeserializeObject<Return>(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)
            {
                //写入日志
                WriteInfo( "上游系统", $"{ex.Message}");
                LogLock.OutLogAOP("上游系统日志", new string[] { "上游系统", $"{ex.Message}" });
            }
            return Task.CompletedTask;