zhanghonglin
2026-03-21 beb0b5d9e1bab1ace04b5860b5ca308b6f913d4f
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/ConveyorLineJob.cs
@@ -3,12 +3,16 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac.Core;
using HslCommunication.WebSocket;
using Microsoft.AspNetCore.Components;
using Quartz;
using SqlSugar;
using WIDESEA_Model.Models.Basic;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.MES;
using WIDESEAWCS_DTO.Stock;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models.System;
@@ -28,21 +32,25 @@
        private readonly IRepository<Dt_StationManger> _stationMangerRepository;
        private readonly IRepository<Dt_Task> _TaskRepository;
        private readonly IRepository<Dt_FillingOrder> _FillingOrderRepository;
        private readonly ITaskService _ITaskService;
        private static Stock Stock = new Stock();
        private static bool k = true;
        private static int i = 0;
        //判断是否把出库信号发给WMS
        private static bool m = true;
        private static bool n = true;
        //存储信号
        private readonly Commands comm = new Commands();
        public ConveyorLineJob(WebSocketServer webSocketServer, IRepository<Dt_StationManger> stationMangerRepository, IRepository<Dt_Task> TaskRepository, ITaskService ITaskService)
        public ConveyorLineJob(WebSocketServer webSocketServer, IRepository<Dt_StationManger> stationMangerRepository, IRepository<Dt_Task> TaskRepository, IRepository<Dt_FillingOrder> FillingOrderRepository, ITaskService ITaskService)
        {
            _stationMangerRepository = stationMangerRepository;
            _TaskRepository = TaskRepository;
            _ITaskService = ITaskService;
            _FillingOrderRepository = FillingOrderRepository;
        }
        public Task Execute(IJobExecutionContext context)
@@ -130,7 +138,26 @@
                                            //发送收到编号信号
                                            device.SetValue(ConveyorLineName.W_ReceivedD, 1, item.StationCode);
                                            k = true;
                                            //向MES发送报工单
                                            if (Stock.MaterialCode1 != null && !Stock.MaterialCode1.Equals(""))
                                            {
                                                MESReport(Stock.MaterialCode1);
                                            }
                                            if (Stock.MaterialCode2 != null && !Stock.MaterialCode2.Equals(""))
                                            {
                                                MESReport(Stock.MaterialCode2);
                                            }
                                            if (Stock.MaterialCode3 != null && !Stock.MaterialCode3.Equals(""))
                                            {
                                                MESReport(Stock.MaterialCode3);
                                            }
                                            if (Stock.MaterialCode4 != null && !Stock.MaterialCode4.Equals(""))
                                            {
                                                MESReport(Stock.MaterialCode4);
                                            }
                                        }
                                    }
                                }
                                catch (Exception ex)
@@ -188,6 +215,7 @@
                                    n = true;
                                }
                            }
                            //告诉WMS不可以出库
                            else
                            {
                                if (n)
@@ -209,5 +237,35 @@
            }
            return Task.CompletedTask;
        }
        //MES报工
        public void MESReport(string MaterialCode)
        {
            try
            {
                Reports reports = new Reports();
                //查询二维码
                Dt_FillingOrder FillingOrder = _FillingOrderRepository.QueryFirst(x => x.BarCode == MaterialCode);
                reports.report.Qty = FillingOrder.BarNum;
                reports.report.DispatchID = FillingOrder.WorkID + "";
                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;
                string mes = AppSettings.Get("WMSApiAddress");
                if (!string.IsNullOrEmpty(mes))
                {
                    HttpHelper.Post($"{mes}/Task/SaveReportRaw/", reports.Serialize());
                }
            }
            catch (Exception ex) {
                WriteInfo( "MES报工错误", $"{ex.Message}");
            }
        }
    }
}