´úÂë¹ÜÀí/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å°è½¦ä¿¡æ¯"); @@ -63,7 +63,7 @@ foreach (var item in agvInfo) { var headers = new Dictionary<string, string> var headers = new Dictionary<string, string> { { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + item.AGVCode } }; @@ -156,6 +156,6 @@ } } } ´úÂë¹ÜÀí/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
@@ -44,14 +44,14 @@ //è·åè´§ä½ä¿¡æ¯ else hKLocationInfo = _hKLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); if (taskType==(int)TaskTypeEnum.Q1TSJ4) if (taskType == (int)TaskTypeEnum.Q1TSJ4) { var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; if (device.IsConnected) { var reslu = device.GetValue<HoistEnum, string>(HoistEnum.Emptycontainernumber); var result = reslu?.TrimEnd('\0')?.Substring(2); if (reslu== taskDTO.containerCode&&result!=null) if (reslu == taskDTO.containerCode && result != null) { throw new Exception($"å½åçæç®±å·ä¸º{reslu}ä¸{taskDTO.containerCode}æç®±å·ä¸å¹é "); } @@ -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èµ·ç¹å®æ } ///夿任塿¯å¦è·è®¾å¤æå ³ TaskFromCompleted(task, deviceTypeEnum); //ä»»å¡ç¶ä½æ¹ä¸º3åè´§å®æï¼æ´æ°èµ·ç¹è´§ä½ç¶æï¼å¹¶åé¦WMSèµ·ç¹å®æ } break; case "finish"://ç¦»å¼æåæº { //å ¥æåæº if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish) { @@ -146,7 +127,7 @@ BaseDal.UpdateData(task); } //忥¼ åºåº else if ((task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) else if ((task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) { var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; @@ -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) 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()) var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; if (device == null) task.ExceptionMessage = "æªæ¾å°è´¨æ£é¨ä¿¡æ¯"; else { 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) { 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); } @@ -209,8 +198,8 @@ else { if (device.IsConnected) //æå¼æ«ç å¨ device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1); //æå¼æ«ç å¨ device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1); else task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; } @@ -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); } } @@ -237,14 +226,14 @@ case "intolift": //è¿å ¥çµæ¢¯ { //å æ¥¼å°ä¸æ¥¼çå ¥åºä»»å¡ if (task.TaskType==(int)TaskTypeEnum.Q3RK||task.TaskType==(int)TaskTypeEnum.MOVE||task.TaskType==(int)TaskTypeEnum.F01) if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.MOVE || task.TaskType == (int)TaskTypeEnum.F01) { task.TaskState = TaskStatusEnum.Hkintolift.ObjToInt(); BaseDal.UpdateData(task); } } break; case "leavelift": //离å¼çµæ¢¯ case "leavelift": //离å¼çµæ¢¯ { if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.MOVE || task.TaskType == (int)TaskTypeEnum.F01) { @@ -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) { @@ -551,7 +555,7 @@ #endregion #region æ´æ°ä¸æ¥¼ç«å°ç¶æ public WebResponseContent UpdateStandStatus(Dt_Task task,string stationCode,LocationStatusEnum locationStatusEnum) public WebResponseContent UpdateStandStatus(Dt_Task task, string stationCode, LocationStatusEnum locationStatusEnum) { try { @@ -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(); @@ -596,7 +600,7 @@ boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress; boundCompleteFeedback.status = Status; boundCompleteFeedback.custStatus = ""; string response = HttpHelper.Post(apiInfo.ApiAddress,boundCompleteFeedback.Serialize()); string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize()); agvContent = response.DeserializeObject<WMSReturn>(); content.OK(data: agvContent); if (agvContent.code != 200) @@ -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
@@ -130,7 +130,7 @@ continue; //throw new Exception($"æçå·ã{task.containerCode}ãå·²åå¨ä»»å¡"); } if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType&&x.TaskState<TaskStatusEnum.TakeFinish.ObjToInt())!=null) if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType && x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()) != null) { objects.Add(new { @@ -168,7 +168,7 @@ break; #endregion #region 海康AGV case(int)TaskTypeEnum.STURR: case (int)TaskTypeEnum.STURR: case (int)TaskTypeEnum.Q1TSJ4: content = CreateHKNewInTask(task, item.taskType); objects.Add(content.Data); @@ -178,7 +178,7 @@ content = CreateHKNewOutTask(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.Q3RK: case (int)TaskTypeEnum.Q3CK: content = CarryTask(task, item.taskType); @@ -243,7 +243,7 @@ //åå车 bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound; //海康 bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK||dt_Task.TaskType==(int)TaskTypeEnum.STURR; bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK || dt_Task.TaskType == (int)TaskTypeEnum.STURR; //è¿éå°ç¶ææ¹åäº198åæ¶ä»»å¡ dt_Task.TaskType = TaskStatusEnum.WMSCancel.ObjToInt(); #region å¯ä¹å£« @@ -331,7 +331,7 @@ Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelHIKROBOTTask)); if (apiInfo == null) throw new Exception("æªæ¾å°åå车AGVä»»å¡ä¸åæ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®"); string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize(),headers: headers); string response = HttpHelper.Post(apiInfo.ApiAddress, cancelHIKROBOTTask.Serialize(), headers: headers); HIKROBOTReturn hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); content.OK(data: hIKROBOTReturn); if (hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "æå") @@ -1146,7 +1146,7 @@ LoctionCode = item.LocationCode, LocationStatus = item.LocationStatus, EnableStatus = item.EnableStatus, PalletCode = item.PalletCode PalletCode = item.PalletCode }); } content.OK(data: list); @@ -1161,7 +1161,7 @@ list.Add(new { LoctionCode = value, LocationStatus = value!=0? 100 : 0, LocationStatus = value != 0 ? 100 : 0, EnableStatus = 0, }); content.OK(data: list); @@ -1180,7 +1180,7 @@ LoctionCode = item.LocationCode, LocationStatus = item.LocationStatus, EnableStatus = item.EnableStatus, PalletCode = item.PalletCode PalletCode = item.PalletCode }); } content.OK(data: list); @@ -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,9 +119,9 @@ } // æ£æ¥æ¯å¦æå¨ç®æ 楼å±çå°è½¦ 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) if (hasRequiredCar != null) { // æå¨ç®æ 楼å±çå°è½¦ï¼ç´æ¥æ§è¡ä»»å¡ var content = _taskService.SendHIKROBOTTask(item); @@ -193,7 +150,7 @@ } } } } } _taskService.UpdateData(item); } } @@ -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,26 +231,22 @@ #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> Uptasks = new List<Dt_Task>(); foreach (var item in Tasks) { 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) var content = _taskService.SendHIKROBOTTask(item); if (content.Status) { var content = _taskService.SendHIKROBOTTask(item); } reslut.ForEach(x => { x.TaskState =(int)TaskStatusEnum.Execut; }); item.TaskState = (int)TaskStatusEnum.Execut; Uptasks.Add(item); } } _taskService.UpdateData(reslut); _taskService.UpdateData(Uptasks); } catch (Exception ex) { @@ -314,14 +267,13 @@ // å°åæ ¼å¼ç¤ºä¾ ï¼AA å¯¹åº 0339050AA0309145 // keys æ¯ AAãBBãCCãDDãEEãFFï¼vuleæ¯å¯¹åºçç¹ä½ä¿¡æ¯ foreach (var floorCode in FloorMapping.FloorMap.Keys) foreach (var floorCode in FloorMapping.FloorMap.Keys) { if (address.Contains(floorCode)) if (address.Contains(floorCode)) { 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; } }