´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs
@@ -37,7 +37,7 @@ /// </summary> /// <param name="agvcode"></param> /// <returns></returns> public WebResponseContent CheckTheCar() public WebResponseContent CheckTheCar(string hkagvType) { WebResponseContent content = new WebResponseContent(); List<HIKROBOTQueryData> dataList = new List<HIKROBOTQueryData>(); @@ -51,7 +51,7 @@ try { var agvInfo = Repository.QueryData(); var agvInfo = Repository.QueryData(x => x.HkagvType == hkagvType); if (agvInfo == null || !agvInfo.Any()) { content.Error("æªæ¥è¯¢å°AGVå°è½¦ä¿¡æ¯"); ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
@@ -124,28 +124,28 @@ /// <summary> /// çå¾ æµ·åº·AGVæ¬è¿å°ä½ 19 /// å¼å«AGVå°è½¦ä¸ /// </summary> [Description("çå¾ æµ·åº·AGVæ¬è¿å°ä½")] [Description("å¼å«AGVå°è½¦ä¸")] WaitingHkAGVMovePosition, /// <summary> /// å¼å«æµ·åº·æ¬è¿ä¸ /// 海康AGV空车跨å±ä¸å /// </summary> [Description("å¼å«æµ·åº·AGVæ¬è¿")] [Description("海康AGV空车跨å±ä¸å")] CallingHKtransportation, /// <summary> /// 海康AGVæ¬è¿ä¸ /// 海康AGV空车跨å±è¿è¡ä¸ /// </summary> [Description("海康AGVæ¬è¿ä¸")] [Description("海康AGV空车跨å±è¿è¡ä¸")] HktransportIng, /// <summary> /// 海康AGVæ¬è¿å®æ 22 /// 海康AGV空车跨å±å®æ /// </summary> [Description("海康AGVæ¬è¿å®æ")] [Description("海康AGV空车跨å±å®æ")] HkTransportCompleted, ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs
@@ -19,6 +19,6 @@ /// æ£æ¥æµ·åº·å°è½¦ /// </summary> /// <returns></returns> WebResponseContent CheckTheCar(); WebResponseContent CheckTheCar(string hkagvType); } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -58,7 +58,7 @@ /// </summary> [ImporterHeader(Name = "æçç¼å·")] [ExporterHeader(DisplayName = "æçç¼å·")] [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "æçç¼å·")] [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "æçç¼å·")] public string PalletCode { get; set; } /// <summary> ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs
@@ -20,9 +20,9 @@ } [HttpPost,Route("CheckTheCar"), AllowAnonymous] public WebResponseContent CheckTheCar() public WebResponseContent CheckTheCar(string hkagvType) { return Service.CheckTheCar(); return Service.CheckTheCar(hkagvType); } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs
@@ -246,8 +246,7 @@ hIKROBOTTaskSubmit.initPriority = task.Grade; hIKROBOTTaskSubmit.robotTaskCode = task.WMSTaskNum; hIKROBOTTaskSubmit.taskType = tasktype.ToString(); ExtraDto extraDto = new ExtraDto(); if (task.TaskType != (int)TaskTypeEnum.MOVE &&task.TaskType != (int)TaskTypeEnum.Q3RK && task.TaskType != (int)TaskTypeEnum.Q3CK && task.TaskType != (int)TaskTypeEnum.F01) if (task.TaskType != (int)TaskTypeEnum.MOVE && task.TaskType != (int)TaskTypeEnum.Q3RK && task.TaskType != (int)TaskTypeEnum.Q3CK && task.TaskType != (int)TaskTypeEnum.F01) { CarrierInfoDto carrierInfoDto = new CarrierInfoDto() { ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -83,12 +83,6 @@ task.TaskState = (int)TaskStatusEnum.HktransportIng; BaseDal.UpdateData(task); } else if (task.TaskType == (int)TaskTypeEnum.Q3CK|| task.TaskType == (int)TaskTypeEnum.Q3RK) { //UpdateStandStatus(task, task.SourceAddress, LocationStatusEnum.Lock); task.TaskState = (int)TaskStatusEnum.Takeing; TaskFeedback(task, 1); } else { task.TaskState = (int)TaskStatusEnum.Takeing; @@ -97,24 +91,11 @@ break; case "outbin"://离å¼èµ·ç¹ { if (task.TaskType == (int)TaskTypeEnum.Q3RK|| task.TaskType == (int)TaskTypeEnum.Q3CK) { UpdateStandStatus(task, task.SourceAddress, LocationStatusEnum.Free); task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt(); BaseDal.UpdateData(task); TaskFeedback(task, 1); } else { TaskFromCompleted(task, deviceTypeEnum); //ä»»å¡ç¶ä½æ¹ä¸º3åè´§å®æï¼æ´æ°èµ·ç¹è´§ä½ç¶æï¼å¹¶åé¦WMSèµ·ç¹å®æ } ///夿任塿¯å¦è·è®¾å¤æå ³ } break; case "finish"://ç¦»å¼æåæº { //å ¥æåæº if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish) { @@ -160,7 +141,7 @@ BaseDal.UpdateData(task); } // //忥¼åºæåæº å ¥åº ä¹åæ¯AGV_ToExecute //è¦åæåè´§å®æç¶æTakeFinish if ((task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) else if ((task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) { var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; @@ -175,21 +156,29 @@ BaseDal.UpdateData(task); } //è·¨æ¥¼å± else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt() && task.TaskState == (int)TaskStatusEnum.TakeFinish) { if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()|| task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt()/* && task.TaskState == (int)TaskStatusEnum.TakeFinish*/) { var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; if (device == null) task.ExceptionMessage = "æªæ¾å°è´¨æ£é¨ä¿¡æ¯"; else { bool Wok = false; var Address = task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? task.TargetAddress : task.SourceAddress; if (device.IsConnected) //å以ä¸ä¸ªåºåºå®æä¿¡å· device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, task.TargetAddress); else task.ExceptionMessage = "è´¨æ£é¨ä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; { int i = 0; while (!Wok && i <= 3) { i++; Wok = device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, Address); Thread.Sleep(500); } } if (!Wok) { task.ExceptionMessage = $"ã{Address}ãå ³é请æ±è¿å ¥å¤±è´¥ï¼"; task.Remark = $"{device.DeviceCode}_RequestToEnter_{false}_{Address}"; } } BaseDal.UpdateData(task); } @@ -220,16 +209,16 @@ break; case "end"://ä»»å¡å®æéç¥ { if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.Q3CK|| task.TaskType == (int)TaskTypeEnum.MOVE) if (task.TaskType == (int)TaskTypeEnum.MOVE) { task.TaskState = TaskStatusEnum.Finish.ObjToInt(); BaseDal.UpdateData(task); TaskFeedback(task, 2); BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); var Task = BaseDal.QueryFirst(x => task.WMSTaskNum.Contains(x.WMSTaskNum)); Task.TaskState = TaskStatusEnum.HkTransportCompleted.ObjToInt(); BaseDal.UpdateData(Task); } else { ///夿任塿¯å¦è·è®¾å¤æå ³ TaskCompleted(task, deviceTypeEnum); } } @@ -443,7 +432,7 @@ try { dt_Task.TaskState = TaskStatusEnum.Finish.ObjToInt(); TaskFeedback(dt_Task, 2); TaskFeedback(dt_Task, 2, string.IsNullOrEmpty(dt_Task.Remark)); //Db.Ado.BeginTran(); UpdateLocationStatus(dt_Task.TargetAddress, dt_Task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); @@ -517,6 +506,21 @@ stationInfo.StationStatus = locationStatusEnum.ObjToInt(); _stationInfo.UpdateData(stationInfo); } Dt_StationManger stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == locationCode); if (stationManger != null) { if (locationStatusEnum == LocationStatusEnum.Free) //å¦æèµ·ç¹å®æå°±ç»è´§ä½èµå¼æçå· { stationManger.Remark = ""; stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); } else { stationManger.Remark = palletCode; stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt(); } _stationMangerService.UpdateData(stationManger); } } else if (deviceTypeEnum == DeviceTypeEnum.YuanLiJuHe) { @@ -579,7 +583,7 @@ #endregion #region 䏿¥WMS public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status) public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status, bool Del = true) { WebResponseContent content = new WebResponseContent(); WMSInOutBoundCompleteFeedback boundCompleteFeedback = new WMSInOutBoundCompleteFeedback(); @@ -613,7 +617,7 @@ finally { _trackloginfoService.AddTrackLog(boundCompleteFeedback, content, "åºå ¥åºä»»å¡ç¶æåé¦WMS", "", ""); if (agvContent != null && agvContent.code == 200 && Status == 2) if (agvContent != null && agvContent.code == 200 && Del) BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.èªå¨å®æ); else BaseDal.UpdateData(dt_Task); ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1191,7 +1191,7 @@ var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; if (device == null) throw new Exception("æªæ¾å°1楼质æ£é¨è®¾å¤ä¿¡æ¯"); if (!device.IsConnected) throw new Exception("PLC1楼质æ£é¨è®¾å¤è¿æ¥å¤±è´¥"); var sta = _stationMangerService.Repository.QueryData(x => x.Remark == "æååº"); var sta = _stationMangerService.Repository.QueryData(x => x.StationName.Contains("æåä»")); foreach (var item in sta) { bool value = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, item.StationCode); ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -50,10 +50,10 @@ foreach (var item in tasks) { // åºåºä»»å¡å¤ç (ä»1楼åºåºå°6楼) if (item.TaskType == (int)TaskTypeEnum.Q3CK) if (item.TaskType == (int)TaskTypeEnum.Q3CK || item.TaskType == (int)TaskTypeEnum.Q3RK) { // è°ç¨æ¥å£è·åå°è½¦ä¿¡æ¯ var result = _agvcartInfoService.CheckTheCar(); var result = _agvcartInfoService.CheckTheCar("MR-Q3-600LE-D(M)(YWGP)"); if (result != null && result.Status) { var dataList = result.Data as List<HIKROBOTQueryData>; @@ -61,7 +61,8 @@ { // åºåºä»»å¡ï¼æ£æ¥æ¯å¦æå¨1楼(AA)çå°è½¦ // Q3CK æ¯AAâFFç跨楼å±ä»»å¡ï¼åªè½ä½¿ç¨ä¸ç¨å°è½¦ var specialCarInAA = dataList.FirstOrDefault(d => d.mapCode == "AA" && d.CarType == "MR-Q3-600LE-D(M)(YWGP)"); var code = item.TaskType == (int)TaskTypeEnum.Q3CK ? "AA" : "FF"; var specialCarInAA = dataList.FirstOrDefault(d => d.mapCode == code); if (specialCarInAA != null) { @@ -75,11 +76,11 @@ else { // 没æä¸ç¨å°è½¦å¨1楼ï¼éè¦å¼å«ä¸ç¨å°è½¦æ¥å°1楼 var anySpecialCar = dataList.FirstOrDefault(d => d.CarType == "MR-Q3-600LE-D(M)(YWGP)"); var anySpecialCar = dataList.FirstOrDefault(); if (anySpecialCar != null) { // èµ·ç¹ï¼å°è½¦å½åæå¨æ¥¼å±çç¹ä½ï¼ç®æ ï¼1楼ç¹ä½ var callCarResult = AddAGVCartInfo(item, anySpecialCar.mapCode, "AA"); var callCarResult = AddAGVCartInfo(item, anySpecialCar.mapCode, code); if (callCarResult.Status) { // åä»»å¡ç¶ææ¹ä¸ºçå¾ ç©ºè½¦ @@ -98,54 +99,10 @@ item.ExceptionMessage = "è·åAGVå°è½¦ä¿¡æ¯å¤±è´¥"; } } // å ¥åºä»»å¡å¤ç (ä»6æ¥¼å ¥åºå°1楼) else if (item.TaskType == (int)TaskTypeEnum.Q3RK) { var result = _agvcartInfoService.CheckTheCar(); if (result != null && result.Status) { var dataList = result.Data as List<HIKROBOTQueryData>; if (dataList != null && dataList.Any()) { // Q3RK æ¯FFâAAç跨楼å±ä»»å¡ï¼åªè½ä½¿ç¨ä¸ç¨å°è½¦ var specialCarInFF = dataList.FirstOrDefault(d => d.mapCode == "FF" && d.CarType == "MR-Q3-600LE-D(M)(YWGP)"); if (specialCarInFF!=null) { // æå¨1楼çå°è½¦ï¼ç´æ¥æ§è¡ä»»å¡ var content = _taskService.SendHIKROBOTTask(item); item.TaskState = (int)TaskStatusEnum.Execut; } else { // 没æä¸ç¨å°è½¦å¨6楼ï¼éè¦å¼å«ä¸ç¨å°è½¦æ¥å°6楼 var anySpecialCar = dataList.FirstOrDefault(d => d.CarType == "MR-Q3-600LE-D(M)(YWGP)"); if (anySpecialCar != null) { // èµ·ç¹ï¼å°è½¦å½åæå¨æ¥¼å±çç¹ä½ï¼ç®æ ï¼6楼ç¹ä½ var callCarResult = AddAGVCartInfo(item, anySpecialCar.mapCode, "FF"); if (callCarResult.Status) { item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition; } } else { item.ExceptionMessage = "æªæ¾å°å¯ç¨AGVå°è½¦"; } } } } else { item.ExceptionMessage = "è·åAGVå°è½¦ä¿¡æ¯å¤±è´¥"; } } else if (item.TaskType == (int)TaskTypeEnum.F01) { // F01ä»»å¡å¤çï¼æ ¹æ®ç®æ å°å夿éè¦åªä¸ªæ¥¼å±çå°è½¦ var result = _agvcartInfoService.CheckTheCar(); var result = _agvcartInfoService.CheckTheCar("MR-Q3-600LE-D(M)"); if (result != null && result.Status) { @@ -162,7 +119,7 @@ } // æ£æ¥æ¯å¦æå¨ç®æ 楼å±çå°è½¦ var hasRequiredCar = dataList.FirstOrDefault(d => d.mapCode == requiredMapCode&&d.CarType== "MR-Q3-600LE-D(M)"); var hasRequiredCar = dataList.FirstOrDefault(d => d.mapCode == requiredMapCode); if (hasRequiredCar!=null) { @@ -239,7 +196,7 @@ Dt_Task newTask = new Dt_Task { WMSTaskNum="HKkc"+ DateTime.Now.ToString("yyyyMMddHHmmss"), // çæå¯ä¸çWMSä»»å¡å· WMSTaskNum = "HK_" + task.WMSTaskNum, // çæå¯ä¸çWMSä»»å¡å· TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), SourceAddress = currentFloorInfo.PointCode, CurrentAddress = currentFloorInfo.PointCode, @@ -247,16 +204,16 @@ NextAddress = targetFloorInfo.PointCode, TaskType = (int)TaskTypeEnum.MOVE, Grade = task.Grade, PalletCode = null, PalletCode = "", TaskState = (int)TaskStatusEnum.CallingHKtransportation, // å¤å¶å ¶ä»å¿ è¦å段 CreateDate = DateTime.Now, Creater = "System" }; _taskService.AddData(newTask); // æ·»å æ°ä»»å¡ var result = _taskService.SendHIKROBOTTask(newTask); if (result.Status) { _taskService.AddData(newTask); // æ·»å æ°ä»»å¡ content.OK("空车å¼å«ä»»å¡å建æå", newTask); } else @@ -274,25 +231,21 @@ #endregion #region å¤çagvå¾ ç©ºè½¦æ¬è¿ä»»å¡ public void SendHKWaitTask() public void SendHKWaitTask(List<Dt_Task> Tasks) { try { List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.MOVE); if (reslut.Count<=0) { List<Dt_Task> reslut2 = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Q3RK||x.TaskType==(int)TaskTypeEnum.Q3CK || x.TaskType == (int)TaskTypeEnum.F01); foreach (var item in reslut2) List<Dt_Task> Uptasks = new List<Dt_Task>(); foreach (var item in Tasks) { var content = _taskService.SendHIKROBOTTask(item); } reslut.ForEach(x => if (content.Status) { x.TaskState =(int)TaskStatusEnum.Execut; }); item.TaskState = (int)TaskStatusEnum.Execut; Uptasks.Add(item); } _taskService.UpdateData(reslut); } _taskService.UpdateData(Uptasks); } catch (Exception ex) @@ -321,7 +274,6 @@ return floorCode;//è¿åçå°±æ¯AAãBBãCCãDDãEEãFFä¸çä¸ä¸ªï¼ä»£è¡¨å¯¹åºçæ¥¼å± } } return null; } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/RGVTaskExtend.cs
@@ -300,12 +300,12 @@ locationsToUpdate.Add(rGVLocationInfo); #region éæ¾å ¥åºç«å° //var stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress); //if (stationManger != null) //{ // stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); // stationsToUpdate.Add(stationManger); //} var stationManger = _stationMangerService.GetInStationInfo(item.SourceAddress); if (stationManger != null) { stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); stationsToUpdate.Add(stationManger); } content.OK(); #endregion } @@ -412,8 +412,8 @@ _taskService.UpdateData(tasksToUpdate); if (locationsToUpdate.Any()) _rGVLocationInfoService.UpdateData(locationsToUpdate); //if (stationsToUpdate.Any()) // _stationMangerService.UpdateData(stationsToUpdate); if (stationsToUpdate.Any()) _stationMangerService.UpdateData(stationsToUpdate); _unitOfWorkManage.CommitTran(); } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs
@@ -113,8 +113,8 @@ #region å¤çagvå¾ ç©ºè½¦æ¬è¿ä»»å¡ Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.WaitingHkAGVMovePosition).OrderByDescending(x => x.Grade).ToList(); if (Tasks.Count > 0) SendHKWaitTask(); Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.HkTransportCompleted).OrderByDescending(x => x.Grade).ToList(); if (Tasks.Count > 0) SendHKWaitTask(Tasks); #endregion ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs
@@ -2,6 +2,7 @@ using HslCommunication; using HslCommunication.Core; using Microsoft.VisualBasic.FileIO; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using Quartz; using SixLabors.ImageSharp.PixelFormats; using SqlSugar; @@ -15,12 +16,14 @@ using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Communicator; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.Enums; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.DeviceBase; using WIDESEAWCS_QuartzJob.DTO; using WIDESEAWCS_QuartzJob.StackerCrane.Enum; namespace WIDESEAWCS_Tasks @@ -54,6 +57,29 @@ SendNewTask(); SendWaitToTask(); #region å¤çåå ¥è®¾å¤ä¿¡å·å¼å¸¸ä»»å¡ var tasks = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.Finish.ObjToInt() && !string.IsNullOrEmpty(x.Remark)); if (tasks.Count > 0) { List<Dt_Task> list = new List<Dt_Task>(); foreach (var item in tasks) { var infos = item.Remark.Split("_"); var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == infos[0]) as OtherDevice; if (device != null && device.IsConnected) { DeviceProDTO? devicePro = device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == infos[1] && x.DeviceChildCode == infos[3]); if (devicePro != null) { var W = device.Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, infos[2]); if (W) list.Add(item); } } } _taskService.Repository.DeleteAndMoveIntoHty(list, OperateTypeEnum.èªå¨å é¤); } #endregion } catch (Exception ex) { ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs
@@ -12,6 +12,7 @@ using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common; using WIDESEAWCS_Common.LocationEnum; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Communicator; using WIDESEAWCS_Core.Helper; @@ -50,9 +51,9 @@ // _taskService.Repository ä»å¨å±ï¼è¿è¡æ°æ®åºè®¿é®- try { #region ååè½¦ä»»å¡ List<Dt_Task> Uptasks = new List<Dt_Task>(); var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt()); var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt()&& (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6å6-1æ¥¼ä»»å¡ //ä»»å¡çç®æ å°å对äºç«å°å·ï¼ foreach (var task in taskList) { @@ -103,19 +104,57 @@ Uptasks.Add(task); } } #endregion var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6å6-1æ¥¼ä»»å¡ foreach (var item in AGVtaskList) { if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, item.SourceAddress)) var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress; var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address); if (stationManger == null) { item.ExceptionMessage = $"{item.SourceAddress}ç«å°æè´§,æ æ³è¿å ¥"; item.ExceptionMessage = $"æªæ¾å°ã{address}ãç«å°ä¿¡æ¯"; Uptasks.Add(item); continue; } //intoè¿å ¥ä¸æ¥¼ä½ç½®çæ¶åï¼åå ¥è¿å ¥ä¿¡å· device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, item.SourceAddress); if (!device.GetValue<QualityInspectionCommandEnum,bool>(QualityInspectionCommandEnum.Blocking)==true) var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address); if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) { item.ExceptionMessage = $"{item.TargetAddress}ç«å°å æ ä¸ä¸ºtrueï¼1ï¼!"; if (StockAvailableSymbol) { item.ExceptionMessage = $"{address}ç«å°å çµæ£æµæè´§ï¼"; Uptasks.Add(item); continue; } if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock) { item.ExceptionMessage = $"ç«å°æè´§ï¼"; Uptasks.Add(item); continue; } } else { if (!StockAvailableSymbol) { item.ExceptionMessage = $"{address}ç«å°å çµæ£æµæ è´§ï¼"; Uptasks.Add(item); continue; } if (stationManger.IsOccupied == (int)LocationStatusEnum.Free) { item.ExceptionMessage = $"ç«å°æ è´§ï¼"; Uptasks.Add(item); continue; } } //intoè¿å ¥ä¸æ¥¼ä½ç½®çæ¶åï¼åå ¥è¿å ¥ä¿¡å· device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address); if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address)) { item.ExceptionMessage = $"{address}ç«å°å æ ä¸ä¸ºtrueï¼1ï¼!"; Uptasks.Add(item); continue; } var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum); if (result.Status == false) @@ -130,15 +169,12 @@ item.TaskState = (int)TaskStatusEnum.AGV_ToExecute; item.ExceptionMessage = ""; Uptasks.Add(item); } _taskService.UpdateData(Uptasks); WriteInfo(device.DeviceName, "infoLog"); //WriteInfo(device.DeviceName, "infoLog"); WriteDebug(device.DeviceName, "debugLog"); //WriteDebug(device.DeviceName, "debugLog"); } catch (Exception ex) { @@ -149,8 +185,6 @@ { WriteError(nameof(TestJob), "åæ°é误,æªä¼ é设å¤åæ°æè®¾å¤ç±»åé误"); } return Task.CompletedTask; } }