duyongjia
2024-12-03 14aaca9a2e1da2849d602487a52094ee26bbe30a
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -42,6 +42,7 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
@@ -210,7 +211,7 @@
                            if (taskinfo != null)
                            {
                                UpdateTaskStatus(taskinfo.TaskId, (int)TaskInStatusEnum.AGV_InExecuting);
                                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"AGV入库执行中");
                                _taskExecuteDetailService.AddTaskExecuteDetail(taskinfo.TaskId, $"AGV入库执行中");
                                ServiceLogger.WriteDebug("ReceiveTask", $"AGV入库执行中(自动3001)更新状态成功,任务号:{taskinfo.TaskId}");
                                return content = WebResponseContent.Instance.OK($"AGV入库执行中(自动3001)更新状态成功,任务号:{taskinfo.TaskId}");
                            }
@@ -226,7 +227,7 @@
                        {
                            //更新任务表中NextAddress字段为新的任务号   taskDTO.weight-旧的任务号   taskDTO.task_id-新的任务号
                            UpdateTaskStatus(taskinfo.TaskId, taskDTO.task_id, (int)TaskInStatusEnum.AGV_InFinish);
                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"AGV搬运完成");
                            _taskExecuteDetailService.AddTaskExecuteDetail(taskinfo.TaskId, $"AGV搬运完成");
                            ServiceLogger.WriteDebug("ReceiveTask", $"AGV搬运完成(101)更新状态成功,任务号:{taskinfo.TaskId}");
                            return content = WebResponseContent.Instance.OK($"AGV搬运完成(101)更新状态成功,任务号:{taskinfo.TaskId}");
                        }
@@ -241,6 +242,10 @@
                        task.TaskType= (int)TaskRelocationTypeEnum.Relocation;
                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
                        task.Roadway = "SC01";
                        if (taskDTO.total > 0)
                        {
                            task.Remark = taskDTO.total.ToString();//取出库的总层数
                        }
                        task.Grade = 1;
                        break;
                    case 102:
@@ -586,6 +591,15 @@
        }
        /// <summary>
        /// æŸ¥è¯¢ç§»åº“任务
        /// </summary>
        /// <returns></returns>
        public Dt_Task QueryStackerCraneTaskByRelotion(int taskNum)
        {
            return BaseDal.QueryFirst(x => (x.Roadway == "SC01" )&&x.TaskType==(int)TaskRelocationTypeEnum.Relocation && x.TaskNum==taskNum, TaskOrderBy);
        }
        /// <summary>
        /// æŸ¥è¯¢å°å †åž›æœºå‡ºåº“完成任务
        /// </summary>
        /// <returns></returns>
@@ -749,7 +763,7 @@
                {
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                    {
                        if (task.TaskType == (int)TaskOutboundTypeEnum.OutInventory || task.TaskType == (int)TaskOutboundTypeEnum.OutPick)//异常出库 ç©ºè½¦å‡ºåº“
                        {
                            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
@@ -1176,7 +1190,7 @@
                        MESResponse res = ApiInvoke.SendTaskCMD(sendcmd);
                        if (res != null && res.code != 0)
                        {
                            ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大堆垛机完成入库任务后回传MES失败!,任务号:【{taskNum}】,失败信息:【{res.message}】");
                            content = WebResponseContent.Instance.Error($"大堆垛机完成入库任务后回传MES失败!,任务号:【{taskNum}】,失败信息:【{res.message}】");
                        }
@@ -1225,6 +1239,24 @@
                            ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大堆垛机完成出库任务后回传MES失败!,任务号:【{taskNum}】,失败信息:【{res.message}】");
                            content = WebResponseContent.Instance.Error($"大堆垛机完成出库任务后回传MES失败!,任务号:【{taskNum}】,失败信息:【{res.message}】");
                        }
                        //if(task.TaskType== (int)TaskRelocationTypeEnum.Relocation&&!string.IsNullOrEmpty(task.Remark.Trim()))//出库任务写总层数标识
                        //{
                        //    CommonStackerCrane commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC01") as CommonStackerCrane;
                        //    //根据任务源地址确定写入PLC位置 Depth
                        //    Dt_LocationInfo location = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
                        //    if (commonStackerCrane!=null&&location != null)
                        //    {
                        //        bool issuccess = commonStackerCrane.Communicator.Write<short>("DB28." + location.Depth + ".0", 9);
                        //        if (issuccess)
                        //        {
                        //            ServiceLogger.WriteDebug("TaskService", $"原料出库后写入标识成功!");
                        //        }
                        //        else
                        //        {
                        //            ServiceLogger.WriteDebug("TaskService", $"原料出库后写入标识失败!");
                        //        }
                        //    }
                        //}
                    }
                    catch (Exception ex)