wangxinhui
2026-02-03 261ec6b250b3aea2d26e629203c7d699747c27ea
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs
@@ -10,6 +10,7 @@
using WIDESEAWCS_IPackInfoRepository;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_Tasks.ConveyorLineJob;
@@ -25,9 +26,9 @@
        private readonly ITaskService _taskService;
        private readonly ITaskRepository _taskRepository;
        private readonly IStationMangerRepository _stationMangerRepository;
        private readonly IDt_PackaxisRepository _packaxisRepository;
        private readonly IPackaxisRepository _packaxisRepository;
        public StackPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IDt_PackaxisRepository packaxisRepository)
        public StackPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IPackaxisRepository packaxisRepository)
        {
            _cacheService = cacheService;
            _taskService = taskService;
@@ -68,7 +69,7 @@
            var station = _stationMangerRepository.QueryFirst(x => x.StationDeviceCode == device.DeviceCode);
            if (station != null && station.Remark != null)//鑾峰彇绔欏彴閲岄潰鐨勬墭鐩樺彿
            {
                var task = _taskRepository.QueryFirst(x => x.DeviceCode == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute || x.TaskState == (int)TaskStatusEnum.AGV_Executing) && x.SourceAddress == station.AGVStationCode);
                var task = _taskRepository.QueryData(x => x.SourceAddress == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute || x.TaskState == (int)TaskStatusEnum.AGV_Executing));
                if (task == null)
                {
                    WebResponseContent content = _taskService.CPEmptyInbound(station.Remark, station.AGVStationCode);
@@ -83,14 +84,18 @@
        /// <param name="command"></param>
        public void EmptySeatAllow(CommonConveyorLine device, StackPlateTaskCommandCommand command)
        {
            var tasks = _taskRepository.QueryData(x => x.DeviceCode == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute||x.TaskState==(int)TaskStatusEnum.AGV_Executing));
            if (tasks.Count > 0 && tasks.Count < 9)
            var station = _stationMangerRepository.QueryFirst(x => x.StationDeviceCode == device.DeviceCode);
            var tasks = _taskRepository.QueryData(x => x.Roadway == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute || x.TaskState == (int)TaskStatusEnum.AGV_Executing) && x.TargetAddress == device.DeviceCode);
            if (tasks.Count + Convert.ToInt32(command.Num) < 9)
            {
                var task = _taskRepository.QueryFirst(x => x.DeviceCode == device.DeviceCode && x.TaskState == (int)TaskStatusEnum.StackPlate_Execute);
                if(task!= null)
                var task = _taskRepository.Db.Queryable<Dt_Task>().Where(x => x.Roadway == device.DeviceCode && x.TaskState == (int)TaskStatusEnum.New).OrderBy(x=>x.TaskNum).First();
                if (task != null && station != null)
                {
                    task.TaskState = (int)TaskStatusEnum.AGV_Execute;
                    task.DeviceCode = station.StackerCraneCode;
                    station.Remark = task.PalletCode;
                    _taskRepository.UpdateData(task);
                    _stationMangerRepository.UpdateData(station);
                }
            }
        }