wankeda
2025-05-26 0864509e1eb593c3dedb66196ec19fe51437922b
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -17,6 +17,7 @@
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using System.Threading.Tasks;
using AutoMapper;
using Quartz;
using WIDESEAWCS_Common.TaskEnum;
@@ -40,8 +41,9 @@
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly IRouterService _routerService;
        private readonly IMapper _mapper;
        private readonly ITaskCZDetailsRepository _detailsRepository;
        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, ITaskCZRepository taskCZRepository)
        public CommonConveyorLineJob(ITaskService taskService, ITaskCZDetailsRepository detailsRepository, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, ITaskCZRepository taskCZRepository)
        {
            _taskService = taskService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -49,10 +51,10 @@
            _mapper = mapper;
            _taskRepository = taskRepository;
            _taskCZRepository = taskCZRepository;
            _detailsRepository = detailsRepository;
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
@@ -66,7 +68,7 @@
                // å®šä¹‰çº¿ä½“实盘入库请求的地址和任务类型
                var requests = new Dictionary<string, string>
                {
                    { "DB1002.693.0", "ZJXL-WLX002" },
                    { "DB1002.1493.0", "ZJXL-WLX002" },
                    { "DB1002.1093.0", "FJXL-WLX002" }
                };
@@ -78,7 +80,7 @@
                };
                // å¤„理实盘入库请求
                ProcessRequests(conveyorLine, requests, "下线请求入库");
                //ProcessRequests(conveyorLine, requests, "下线请求入库");
                // å¤„理空盘回流请求
                ProcessKpRequests(conveyorLine, requestsKP);
@@ -121,7 +123,7 @@
                }
                // æŸ¥è¯¢ä»»åŠ¡ç±»åž‹å¯¹åº”çš„czTask
                DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType && x.TaskStatus == TaskInStatusEnum.InFinish.ToString());
                DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType && (x.TaskStatus == TaskInStatusEnum.InFinish.ToString() || x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ToString()));
                if (czTask == null)
                {
                    ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},{taskType}任务不存在,稍后重试......");
@@ -159,18 +161,22 @@
                Dt_Task task = null;
                if (isUpRequest)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "空托盘", taskType);
                    List<Dt_Task> dt_Task = _taskRepository.QueryData(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InPending);
                    if (dt_Task.Count < 0) { continue; }
                    var tasks = dt_Task.Where(x => x.SourceAddress == fromAdd).OrderBy(t => t.CreateDate).First();
                    tasks.TaskState = (int)TaskInStatusEnum.InNew;
                    _taskService.UpdateData(tasks);
                }
                else if (isGMRequest && isGMState == 1)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "隔膜空托盘", taskType);
                }
                //else if (isGMRequest && isGMState == 1)
                //{
                //    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "隔膜空托盘", taskType);
                //}
                // æ·»åŠ ä»»åŠ¡åˆ°ä»»åŠ¡è¡¨
                if (task != null)
                {
                    _taskRepository.AddData(task);
                }
                //// æ·»åŠ ä»»åŠ¡åˆ°ä»»åŠ¡è¡¨
                //if (task != null)
                //{
                //    _taskRepository.AddData(task);
                //}
            }
        }
@@ -191,6 +197,28 @@
        // è¾…助方法:创建任务对象
        private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType, int czTaskID = 0)
        {
            if (targetAddress != "WaitBind")
            {
                var details = _detailsRepository.QueryData(x => x.TaskEndAddress == targetAddress).ToList();
                foreach (var item in details)
                {
                    var taskCZ = _taskCZRepository.QueryFirst(x => x.TaskTaskID == item.TaskTaskID);
                    if (taskCZ.TaskType.Contains("正极"))
                    {
                        taskCZ.TaskZJFinishNumber += 1;
                    }
                    else
                    {
                        taskCZ.TaskFJFinishNumber += 1;
                    }
                    if (taskCZ.TaskZJFinishNumber == taskCZ.TaskNumber || taskCZ.TaskFJFinishNumber == taskCZ.TaskNumber)
                    {
                        _taskCZRepository.DeleteData(taskCZ);
                    }
                    var isTrue = _taskCZRepository.UpdateData(taskCZ);
                }
            }
            Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == currentAddress);
            if (dt_Task != null)
            {