chengsc
2025-04-29 9a7c4fea85f85824dddeac9e6ce6ebb75ccee679
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -278,22 +278,27 @@
                            {
                                return; // 层数错误
                            }
                            //添加小车充电位置
                            WcsTask modCarTask = new WcsTask()
                            var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
                            if (getCdTask == null)
                            {
                                TaskNo = _taskService.GetTaskCode(),
                                TaskType = TaskTypeEnum.Move,
                                Type = PLCTypeEnum.ShuttleCar,
                                StartLocate = carXYZ,
                                EndLocate = endLocateCar,
                                PalletNo = "",
                                Status = TaskStatusEnum.Wait,
                                Levels = 888, //充电等级优先任务等级
                                Origin = "WCS",
                                CarIp = modDevice.PlcIdIP
                            };
                            _db.Insertable(modCarTask).ExecuteCommand();
                            HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
                                //添加小车充电位置
                                WcsTask modCarTask = new WcsTask()
                                {
                                    TaskNo = _taskService.GetTaskCode(),
                                    TaskType = TaskTypeEnum.Move,
                                    Type = PLCTypeEnum.ShuttleCar,
                                    StartLocate = carXYZ,
                                    EndLocate = endLocateCar,
                                    PalletNo = "",
                                    Status = TaskStatusEnum.Wait,
                                    Levels = 888, //充电等级优先任务等级
                                    Origin = "WCS",
                                    CarIp = modDevice.PlcIdIP
                                };
                                _db.Insertable(modCarTask).ExecuteCommand();
                                HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
                            }
                        }
                        else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2)
                        {
@@ -326,32 +331,37 @@
                                        var endLocateCar = "";
                                        if (valuez == 1)
                                        {
                                            endLocateCar = "011201";
                                            endLocateCar = "210401";
                                        }
                                        else if (valuez == 2)
                                        {
                                            endLocateCar = "011202";
                                            endLocateCar = "210402";
                                        }
                                        else
                                        {
                                            return; // 层数错误
                                        }
                                        //添加小车充电位置
                                        WcsTask modCarTask = new WcsTask()
                                        var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
                                        if (getCdTask == null)
                                        {
                                            TaskNo = _taskService.GetTaskCode(),
                                            TaskType = TaskTypeEnum.Move,
                                            Type = PLCTypeEnum.ShuttleCar,
                                            StartLocate = carXYZ,
                                            EndLocate = endLocateCar,
                                            PalletNo = "",
                                            Status = TaskStatusEnum.Wait,
                                            Levels = 888, //充电等级优先任务等级
                                            Origin = "WCS",
                                            CarIp = modDevice.PlcIdIP
                                        };
                                        _db.Insertable(modCarTask).ExecuteCommand();
                                        HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
                                            //添加小车充电位置
                                            WcsTask modCarTask = new WcsTask()
                                            {
                                                TaskNo = _taskService.GetTaskCode(),
                                                TaskType = TaskTypeEnum.Move,
                                                Type = PLCTypeEnum.ShuttleCar,
                                                StartLocate = carXYZ,
                                                EndLocate = endLocateCar,
                                                PalletNo = "",
                                                Status = TaskStatusEnum.Wait,
                                                Levels = 888, //充电等级优先任务等级
                                                Origin = "WCS",
                                                CarIp = modDevice.PlcIdIP
                                            };
                                            _db.Insertable(modCarTask).ExecuteCommand();
                                            HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
                                        }
                                    }
                                }
@@ -463,6 +473,13 @@
                            carTaskNext.CarTaskNo = carTaskNo;
                            _db.Updateable(carTaskNext).ExecuteCommand();
                            //清除小车空闲时间
                            var carTimeClear = _db.Queryable<WcsCarTime>().First(m=>m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
                            if (carTimeClear!= null)
                            {
                                carTimeClear.CarTime = null;
                                carTimeClear.UpdateTime = DateTime.Now;
                                _db.Updateable(carTimeClear).ExecuteCommand();
                            }
                            var taskMonitor = new WcsTaskMonitor()
                            {
                                TaskNo = carTaskNext.TaskNo,