From cfb3f2c7e9cde8cc2eb2a19263d0802c0c5410a3 Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期一, 06 四月 2026 15:41:04 +0800
Subject: [PATCH] mes接口

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/UpstreamJob.cs |   84 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 79 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/UpstreamJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/UpstreamJob.cs"
index 2ef6682..66e0231 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/UpstreamJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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[] { "涓婃父绯荤粺", $"{"淇敼浜岀淮鐮両D锛�" + FillingOrder.Id + "//"}" });
+                        }
+                    }
+                    else
+                    {
+                        //LogLock.OutLogAOP("涓婃父绯荤粺鏃ュ織", new string[] { "涓婃父绯荤粺", $"{"娌℃湁鍙笂鎶ョ殑浜岀淮鐮佹垨鏃犳牎楠岀爜"}" });
+                    }
                 }
+
             }
             catch (Exception ex)
             {
                 //鍐欏叆鏃ュ織
-                WriteInfo( "涓婃父绯荤粺", $"{ex.Message}");
+                LogLock.OutLogAOP("涓婃父绯荤粺鏃ュ織", new string[] { "涓婃父绯荤粺", $"{ex.Message}" });
             }
 
             return Task.CompletedTask;

--
Gitblit v1.9.3