´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/AGVCartInfoService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,160 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using System; using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO; using WIDESEAWCS_DTO.AGV.HIKROBOT; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_BasicInfoService { public class AGVCartInfoService : ServiceBase<Dt_AGVCartInfo, IRepository<Dt_AGVCartInfo>>, IAGVCartInfoService { IApiInfoService _repository; ITrackloginfoService _trackloginfoService; public AGVCartInfoService(IRepository<Dt_AGVCartInfo> BaseDal, IApiInfoService repository, ITrackloginfoService ITrackloginfo) : base(BaseDal) { _repository = repository; _trackloginfoService = ITrackloginfo; } public IRepository<Dt_AGVCartInfo> Repository => BaseDal; /// <summary> /// æ¥æµ·åº·å°è½¦å¨é£ä¸ªæ¥¼å± /// </summary> /// <param name="agvcode"></param> /// <returns></returns> public WebResponseContent CheckTheCar() { WebResponseContent content = new WebResponseContent(); List<HIKROBOTQueryData> dataList = new List<HIKROBOTQueryData>(); HIKROBOTReturn hIKROBOTReturn = null; var apiInfo = _repository.Repository.QueryFirst(it => it.ApiCode == nameof(HIKROBOTQuery)); if (apiInfo == null) { throw new Exception("æªæ¾å°æµ·åº·å°è½¦ä¿¡æ¯æ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®ï¼"); } try { var agvInfo = Repository.QueryData(); if (agvInfo == null || !agvInfo.Any()) { content.Error("æªæ¥è¯¢å°AGVå°è½¦ä¿¡æ¯"); return content; } List<string> failedAgvCodes = new List<string>(); List<string> successMessages = new List<string>(); foreach (var item in agvInfo) { var headers = new Dictionary<string, string> { { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + item.AGVCode } }; HIKROBOTQuery hIKROBOTQuery = new HIKROBOTQuery() { singleRobotCode = item.AGVCode }; string requestData = hIKROBOTQuery.Serialize(); try { string response = HttpHelper.Post(apiInfo.ApiAddress, requestData, headers: headers); hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); // 夿æ¥å£è¿åæ¯å¦æå if (hIKROBOTReturn != null && hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "æå") { // å° data ååºååä¸ºå ·ä½ç HIKROBOTQueryData ç±»å var queryData = Newtonsoft.Json.JsonConvert.DeserializeObject<HIKROBOTQueryData>( Newtonsoft.Json.JsonConvert.SerializeObject(hIKROBOTReturn.data) ); dataList.Add(new HIKROBOTQueryData { singleRobotCode = item.AGVCode, mapCode = queryData?.mapCode ?? string.Empty }); successMessages.Add($"AGVå°è½¦-{item.AGVCode}æå¨æ¥¼å±{queryData?.mapCode}æ¥è¯¢æå"); } else { // è®°å½å¤±è´¥çå°è½¦ failedAgvCodes.Add(item.AGVCode); string errorMsg = hIKROBOTReturn?.message ?? "è·åå°è½¦ä¿¡æ¯å¤±è´¥"; } } catch (Exception ex) { // æè·å个å°è½¦æ¥è¯¢çå¼å¸¸ failedAgvCodes.Add(item.AGVCode); string errorMsg = $"æ¥è¯¢AGVå°è½¦{item.AGVCode}æ¶åçå¼å¸¸ï¼{ex.Message}"; _trackloginfoService.AddTrackLog( requestData, new WebResponseContent { Status = false, Message = errorMsg }, $"æ¥ç海康AGVå°è½¦ä¿¡æ¯-å¼å¸¸-{item.AGVCode}", "", errorMsg ); } } // æ ¹æ®æ¥è¯¢ç»æè®¾ç½®è¿åç¶æ if (dataList.Any()) { if (failedAgvCodes.Any()) { // é¨åæåï¼é¨å失败 string message = $"é¨åå°è½¦æ¥è¯¢æåï¼å¤±è´¥çå°è½¦ï¼{string.Join(",", failedAgvCodes)}"; content.OK(message, dataList); // 妿éè¦æ 记为é¨åæåï¼å¯ä»¥å¨è¿é设置é¢å¤çæ å¿ //content.Status = true; // ä¿æ trueï¼ä½éè¿ Message åç¥é¨å失败 } else { // å ¨é¨æå content.OK("ææAGVå°è½¦ä¿¡æ¯æ¥è¯¢æå", dataList); } } else { // å ¨é¨å¤±è´¥ string errorMsg = failedAgvCodes.Any() ? $"ææAGVå°è½¦æ¥è¯¢å¤±è´¥ï¼å¤±è´¥å表ï¼{string.Join(",", failedAgvCodes)}" : "æªæ¥è¯¢å°ä»»ä½AGVå°è½¦ä¿¡æ¯"; content.Error(errorMsg); } return content; } catch (Exception ex) { content.Error($"æ¹éæ¥è¯¢AGVå°è½¦ä¿¡æ¯å¤±è´¥ï¼{ex.Message}"); return content; } } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
@@ -121,6 +121,33 @@ ///// </summary> //[Description("AGVå/æ¾è´§ä¸")] //AGV_ToPuting, /// <summary> /// å¼å«æµ·åº·æ¬è¿ä¸ 19 /// </summary> [Description("çå¾ æµ·åº·AGVæ¬è¿å°ä½")] WaitingHkAGVMovePosition, /// <summary> /// å¼å«æµ·åº·æ¬è¿ä¸ /// </summary> [Description("å¼å«æµ·åº·AGVæ¬è¿")] CallingHKtransportation, /// <summary> /// 海康AGVæ¬è¿ä¸ /// </summary> [Description("海康AGVæ¬è¿ä¸")] HktransportIng, /// <summary> /// 海康AGVæ¬è¿å®æ 22 /// </summary> [Description("海康AGVæ¬è¿å®æ")] HkTransportCompleted, #endregion #region ååè½¦å ¶ä»ä»»å¡ç¶æ ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTQuery.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEAWCS_DTO { /// <summary> /// 海康å°è½¦ä¿¡æ¯ /// </summary> public class HIKROBOTQuery { /// <summary> /// å°è½¦ç¼å· /// </summary> public string singleRobotCode { get; set; } } public class HIKROBOTQueryData { /// <summary> /// éè¿è¿åç"mapCode"æ¥åºåæ¥¼å± AAæ¯1楼ï¼BBæ¯2楼ï¼CCæ¯3楼ï¼DDæ¯4楼ï¼EEæ¯5楼ï¼FFæ¯6楼 /// </summary> public string mapCode { get; set; } /// <summary> /// å°è½¦ç¼å· /// </summary> public string singleRobotCode { get; set; } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IAGVCartInfoService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_IBasicInfoService { public interface IAGVCartInfoService : IService<Dt_AGVCartInfo> { public IRepository<Dt_AGVCartInfo> Repository { get; } /// <summary> /// æ£æ¥æµ·åº·å°è½¦ /// </summary> /// <returns></returns> WebResponseContent CheckTheCar(); } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_AGVCartInfo.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.DB.Models; namespace WIDESEAWCS_Model.Models { [SugarTable(nameof(Dt_AGVCartInfo), "海康AGVå°è½¦ä¿¡æ¯")] public class Dt_AGVCartInfo : BaseEntity { /// <summary> /// ä¸»é® /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主é®")] public int Id { get; set; } /// <summary> /// å°è½¦ç¼å· /// </summary> [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "ç«å°ç¼å·")] public string AGVCode { get; set; } /// <summary> /// 夿³¨ /// </summary> [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "夿³¨")] public string Remark { get; set; } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/AGVCartInfoController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_Server.Controllers.BasicInfo { /// <summary> ///海康å°è½¦ä¿¡æ¯ /// </summary> [Route("api/AGVCartInfo")] [ApiController] public class AGVCartInfoController : ApiBaseController<IAGVCartInfoService, Dt_AGVCartInfo> { public AGVCartInfoController(IAGVCartInfoService service) : base(service) { } [HttpPost,Route("CheckTheCar"), AllowAnonymous] public WebResponseContent CheckTheCar() { return Service.CheckTheCar(); } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile1.pubxml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <!-- https://go.microsoft.com/fwlink/?LinkID=208121. --> <Project> <PropertyGroup> <DeleteExistingFiles>false</DeleteExistingFiles> <ExcludeApp_Data>false</ExcludeApp_Data> <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <PublishProvider>FileSystem</PublishProvider> <PublishUrl>C:\Users\Administrator\Desktop\ä¹ä¹æ æ®\å端å叿件</PublishUrl> <WebPublishMethod>FileSystem</WebPublishMethod> <_TargetId>Folder</_TargetId> </PropertyGroup> </Project> ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs
@@ -308,10 +308,26 @@ } break; case TaskTypeEnum.Q3RK: break; case TaskTypeEnum.Q3CK: break; case TaskTypeEnum.Move: { TargetRouteDto target = new TargetRouteDto() { code = task.CurrentAddress, operation = "DELIVERY",//åè´§ seq = 0, type = "SITE", }; TargetRouteDto targetRoute = new TargetRouteDto() { code = task.NextAddress, operation = "DELIVERY",//éè´§ seq = 1, type = "SITE", }; hIKROBOTTaskSubmit.targetRoute.Add(target); hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.CPMoveInventory: break; ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs
@@ -13,6 +13,7 @@ using WIDESEAWCS_DTO; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_TaskInfoService { @@ -201,18 +202,91 @@ } #endregion #region 5 跨楼å±è¿è¾ä»»å¡å建 #region 5 跨楼å±è¿è¾ä»»å¡å建 ï¼é½æ¯ç¹å°ç¹ï¼ public WebResponseContent CarryTask(TaskDTO taskDTO, int taskType) { WebResponseContent content = new WebResponseContent(); try { Dt_HKLocationInfo? hKLocationInfo = null; Dt_StationInfo? stationInfo = null; Dt_Task dt_Task = null; //å ¥åº å°ä¸æ¥¼ä¸ä¸ªç«å°çä½ç½® if (taskType == (int)TaskTypeEnum.Q3RK) { //读åå çµä¿¡å· 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楼质æ£é¨è®¾å¤è¿æ¥å¤±è´¥"); bool value = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, taskDTO.toLocationCode); if (value) { content.Error($"{taskDTO.toLocationCode}ç«å°æè´§ï¼æ æ³å ¥åº"); } dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), WMSTaskNum = taskDTO.taskCode, Grade = taskDTO.taskPriority, PalletCode = taskDTO.containerCode, Roadway = hKLocationInfo.RoadwayNo, TaskState = (int)TaskStatusEnum.New, TaskType = taskType, SourceAddress = taskDTO.fromLocationCode, CurrentAddress = taskDTO.fromLocationCode, NextAddress = taskDTO.toLocationCode, TargetAddress = taskDTO.toLocationCode, Creater = "WMS", }; return WebResponseContent.Instance.OK(); } //åºåº if (taskType == (int)TaskTypeEnum.Q3CK) { stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); if (stationInfo.StationName != LocationStatusEnum.InStock.ToString()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãç»å®æç®±å·ã{stationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é ï¼"); dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), WMSTaskNum = taskDTO.taskCode, //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), Grade = taskDTO.taskPriority, PalletCode = taskDTO.containerCode, Roadway = hKLocationInfo.RoadwayNo, TaskState = (int)TaskStatusEnum.New, TaskType = taskType, SourceAddress = taskDTO.fromLocationCode, CurrentAddress = taskDTO.fromLocationCode, NextAddress = taskDTO.toLocationCode, TargetAddress = taskDTO.toLocationCode, Creater = "WMS", }; } try { Db.Ado.BeginTran(); BaseDal.AddData(dt_Task); _hKLocationInfoService.Repository.UpdateData(hKLocationInfo); _stationInfo.Repository.UpdateData(stationInfo); Db.Ado.CommitTran(); } catch (Exception ex) { Db.Ado.RollbackTran(); throw new Exception(ex.Message); } return content.OK(data: new { taskCode = taskDTO.taskCode, Message = "æåï¼" }); } catch (Exception ex) { throw new Exception(ex.Message); content.Error(ex.Message); } return content; } #endregion ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -78,13 +78,20 @@ switch (hIKROBOT.extra.values.method) { case "start": task.TaskState = (int)TaskStatusEnum.Takeing; TaskFeedback(task, 1); if (task.TaskState==(int)TaskStatusEnum.CallingHKtransportation&& task.TaskType == (int)TaskTypeEnum.Move) { task.TaskState = (int)TaskStatusEnum.HktransportIng; } else { task.TaskState = (int)TaskStatusEnum.Takeing; TaskFeedback(task, 1); } break; case "outbin"://离å¼èµ·ç¹ { ///夿任塿¯å¦è·è®¾å¤æå ³ TaskFromCompleted(task, deviceTypeEnum); TaskFromCompleted(task, deviceTypeEnum); //ä»»å¡ç¶ä½æ¹ä¸º3åè´§å®æï¼æ´æ°èµ·ç¹è´§ä½ç¶æï¼å¹¶åé¦WMSèµ·ç¹å®æ } break; case "finish"://ç¦»å¼æåæº @@ -145,6 +152,19 @@ task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; } } else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) { if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) { //妿æ¯å 楼å°ä¸æ¥¼å°±åä¸ä¸ªä¿¡å·ç»1楼plcåè¯ä»ææ¥å ¥åºäº } else { //è¿ä¸ªå°±åä¸ä¸ªå¤ä½ç¶æï¼åè¯å®æåºåºäº } } } break; case "into"://ç³è¯·è¿å ¥æåæº @@ -161,8 +181,17 @@ break; case "end"://ä»»å¡å®æéç¥ { ///夿任塿¯å¦è·è®¾å¤æå ³ TaskCompleted(task, deviceTypeEnum); if (task.TaskType==(int)TaskTypeEnum.Move &&task.TaskState==(int)TaskStatusEnum.HkTransportCompleted) { task.TaskState = TaskStatusEnum.Finish.ObjToInt(); TaskFeedback(task, 2); BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.èªå¨å®æ); } else { ///夿任塿¯å¦è·è®¾å¤æå ³ TaskCompleted(task, deviceTypeEnum); } } break; default: ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -318,9 +318,14 @@ robotTaskCode = dt_Task.WMSTaskNum, cancelType = "CANCEL"//åè½¯åæ¶ï¼DROP人工ä»å ¥ï¼åç¡¬åæ¶ï¼ }; var headers = new Dictionary<string, string> { { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + wMSCancelTask.TaskCode } }; 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()); 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 == "æå") @@ -1114,7 +1119,9 @@ { LoctionCode = item.LocationCode, LocationStatus = item.LocationStatus, EnableStatus = item.EnableStatus EnableStatus = item.EnableStatus, PalletCode = item.PalletCode }); } content.OK(data: list); @@ -1132,7 +1139,8 @@ { LoctionCode = item.LocationCode, LocationStatus = item.LocationStatus, EnableStatus = item.EnableStatus EnableStatus = item.EnableStatus, PalletCode = item.PalletCode }); } content.OK(data: list); @@ -1153,7 +1161,22 @@ } else if (getLocationInfo.WarehouseId == 4) { List<Dt_HKLocationInfo> rGVLocationInfos = new List<Dt_HKLocationInfo>(); if (!string.IsNullOrEmpty(getLocationInfo.AreaCode)) rGVLocationInfos = _hKLocationInfoService.Repository.QueryData(x => x.WarehouseId == getLocationInfo.AreaCode.ObjToInt()); else rGVLocationInfos = _hKLocationInfoService.Repository.QueryData(); foreach (var item in rGVLocationInfos) { list.Add(new { LoctionCode = item.LocationCode, LocationStatus = item.LocationStatus, EnableStatus = item.EnableStatus, PalletCode = item.PalletCode }); } content.OK(data: list); } else if (getLocationInfo.WarehouseId == 5) { ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs
@@ -162,6 +162,7 @@ task.ExceptionMessage = ""; Uptasks.Add(task); } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -4,6 +4,8 @@ using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO; @@ -24,7 +26,7 @@ { foreach (var item in tasks) { var content =_taskService.SendHIKROBOTTask(item); var content = _taskService.SendHIKROBOTTask(item); } } #endregion @@ -36,6 +38,117 @@ { var content = _taskService.SendHIKROBOTTask(item); } } #endregion #region ä¸å海康1-6楼çAGVä»»å¡ public void SendAGVTask(List<Dt_Task> tasks) { foreach (var item in tasks) { if (item.TaskState == (int)TaskTypeEnum.Q3CK) { // è°ç¨æ¥å£è·åå°è½¦ä¿¡æ¯ var result = _agvcartInfoService.CheckTheCar(); // 夿æ¯å¦æ AA æ FF bool hasAAOrFF = false; if (item.TaskState == (int)TaskTypeEnum.Q3CK) { if (result != null && result.Status) { var dataList = result.Data as List<HIKROBOTQueryData>; if (dataList != null && dataList.Any()) { // æ£æ¥è¿åç mapCode åè¡¨ä¸æ¯å¦æ AA hasAAOrFF = dataList.Any(d => d.mapCode == "AA"); if (hasAAOrFF) { var content = _taskService.SendHIKROBOTTask(item); item.TaskState = (int)TaskStatusEnum.Execut; } else//è¿éæå°±è¦å¼å«ç©ºè½¦æ¥ { //æ·»å 空车è¿è¾ä»»å¡ AddAGVCartInfo(item); item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition; } } } } else { if (result != null && result.Status) { if (hasAAOrFF) { var content = _taskService.SendHIKROBOTTask(item); item.TaskState = (int)TaskStatusEnum.Execut; } else//è¿éæå°±è¦å¼å«ç©ºè½¦æ¥ { //æ·»å 空车è¿è¾ä»»å¡ AddAGVCartInfo(item); item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition; } } } } } _taskService.UpdateData(tasks); } #endregion #region å¤ç海康agvæ¬è¿ä»»å¡ public WebResponseContent AddAGVCartInfo(Dt_Task task) { WebResponseContent content = new WebResponseContent(); try { task.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); task.WMSTaskNum = null; task.TaskType = (int)TaskTypeEnum.Move;//æ¢å±ä»»å¡ task.TaskState = (int)TaskStatusEnum.CallingHKtransportation; var result = _taskService.SendHIKROBOTTask(task); _taskService.AddData(task); } catch (Exception ex) { content.Error($"å建失败ï¼{ex.Message}"); } return content; } #endregion #region å¤çagvå¾ ç©ºè½¦æ¬è¿ä»»å¡ public void SendHKWaitTask() { try { List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Move); if (reslut.Count<0) { foreach (var item in reslut) { var content = _taskService.SendHIKROBOTTask(item); } reslut.ForEach(x => { x.TaskState =(int)TaskStatusEnum.Execut; }); } _taskService.UpdateData(reslut); } catch (Exception ex) { WriteError(nameof(TaskJob), ex.Message, ex); } } #endregion } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs
@@ -37,255 +37,255 @@ public Task Execute(IJobExecutionContext context) { try { #region 䏿¥¼èªå¨ä»»å¡ List<string> StationCodes = new() { "0348840CC0315690", "0349350CC0315686" }; var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode)); #region å ¥æåæºä»»å¡ var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); if (station != null) { var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); Dt_Task dt_Task = new Dt_Task() { //try //{ // #region 䏿¥¼èªå¨ä»»å¡ // List<string> StationCodes = new() { "0348840CC0315690", "0349350CC0315686" }; // var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode)); // #region å ¥æåæºä»»å¡ // var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); // if (station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // Dt_Task dt_Task = new Dt_Task() // { TaskNum = tasknum, WMSTaskNum = "GP" + tasknum, Grade = 60, PalletCode = station.PalletCode, Roadway = "", TaskState = (int)TaskStatusEnum.New, TaskType = TaskTypeEnum.RK3F.ObjToInt(), SourceAddress = station.StationCode, CurrentAddress = station.StationCode, NextAddress = "TSJR3F", TargetAddress = "TSJR3F", Creater = "WCS", }; var content = _taskService.SendHIKROBOTTask(dt_Task); if (content.Status) { dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; station.StationStatus = (int)LocationStatusEnum.OutLock; _taskService.AddData(dt_Task); _StationInfoService.UpdateData(station); } } #endregion // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = station.PalletCode, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, // TaskType = TaskTypeEnum.RK3F.ObjToInt(), // SourceAddress = station.StationCode, // CurrentAddress = station.StationCode, // NextAddress = "TSJR3F", // TargetAddress = "TSJR3F", // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // station.StationStatus = (int)LocationStatusEnum.OutLock; // _taskService.AddData(dt_Task); // _StationInfoService.UpdateData(station); // } // } // #endregion #region åºæåæºä»»å¡ var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; if (device != null && device.IsConnected) { if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1) { Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); if (dt_Task == null) { station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); if (station != null) { var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); dt_Task = new Dt_Task() { TaskNum = tasknum, WMSTaskNum = "GP" + tasknum, Grade = 60, PalletCode = "LXM" + tasknum, Roadway = "", TaskState = (int)TaskStatusEnum.New, TaskType = TaskTypeEnum.CK3F.ObjToInt(), SourceAddress = "TSJC3F", CurrentAddress = "TSJC3F", NextAddress = station.StationCode, TargetAddress = station.StationCode, Creater = "WCS", }; var content = _taskService.SendHIKROBOTTask(dt_Task); if (content.Status) { dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; station.StationStatus = (int)LocationStatusEnum.InLock; _taskService.AddData(dt_Task); _StationInfoService.UpdateData(station); } } } } } #endregion // #region åºæåæºä»»å¡ // var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; // if (device != null && device.IsConnected) // { // if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1) // { // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); // if (dt_Task == null) // { // station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); // if (station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = "LXM" + tasknum, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, // TaskType = TaskTypeEnum.CK3F.ObjToInt(), // SourceAddress = "TSJC3F", // CurrentAddress = "TSJC3F", // NextAddress = station.StationCode, // TargetAddress = station.StationCode, // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // station.StationStatus = (int)LocationStatusEnum.InLock; // _taskService.AddData(dt_Task); // _StationInfoService.UpdateData(station); // } // } // } // } // } // #endregion #endregion // #endregion #region 4F List<string> stationCodes = new() { "0319882DD0313240", "0319882DD0313750"}; var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode)); #region å ¥æåæºä»»å¡ var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); if (Station != null) { var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); Dt_Task dt_Task = new Dt_Task() { TaskNum = tasknum, WMSTaskNum = "GP" + tasknum, Grade = 60, PalletCode = Station.PalletCode, Roadway = "", TaskState = (int)TaskStatusEnum.New, TaskType = TaskTypeEnum.F04.ObjToInt(), SourceAddress = Station.StationCode, CurrentAddress = Station.StationCode, NextAddress = "TSJR4F", TargetAddress = "TSJR4F", Creater = "WCS", }; var content = _taskService.SendHIKROBOTTask(dt_Task); if (content.Status) { dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; Station.StationStatus = (int)LocationStatusEnum.OutLock; _taskService.AddData(dt_Task); _StationInfoService.UpdateData(Station); } } #endregion // #region 4F // List<string> stationCodes = new() { "0319882DD0313240", "0319882DD0313750"}; // var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode)); // #region å ¥æåæºä»»å¡ // var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); // if (Station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // Dt_Task dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = Station.PalletCode, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, //TaskType = TaskTypeEnum.F04.ObjToInt(), // SourceAddress = Station.StationCode, // CurrentAddress = Station.StationCode, // NextAddress = "TSJR4F", // TargetAddress = "TSJR4F", // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // Station.StationStatus = (int)LocationStatusEnum.OutLock; // _taskService.AddData(dt_Task); // _StationInfoService.UpdateData(Station); // } // } // #endregion #region åºæåæºä»»å¡ device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; if (device != null && device.IsConnected) { var reslur = device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F"); if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) { Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); if (dt_Task == null) { Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); if (Station != null) { var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); dt_Task = new Dt_Task() { TaskNum = tasknum, WMSTaskNum = "GP" + tasknum, Grade = 60, PalletCode = "LXM" + tasknum, Roadway = "", TaskState = (int)TaskStatusEnum.New, TaskType = TaskTypeEnum.F03.ObjToInt(), SourceAddress = "TSJC4F", CurrentAddress = "TSJC4F", NextAddress = Station.StationCode, TargetAddress = Station.StationCode, Creater = "WCS", }; var content = _taskService.SendHIKROBOTTask(dt_Task); if (content.Status) { dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; Station.StationStatus = (int)LocationStatusEnum.InLock; _taskService.AddData(dt_Task); _StationInfoService.UpdateData(Station); } } } } } #endregion // #region åºæåæºä»»å¡ // device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; // if (device != null && device.IsConnected) // { // var reslur = device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F"); // if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) // { // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); // if (dt_Task == null) // { // Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); // if (Station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = "LXM" + tasknum, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, // TaskType = TaskTypeEnum.F03.ObjToInt(), // SourceAddress = "TSJC4F", // CurrentAddress = "TSJC4F", // NextAddress = Station.StationCode, // TargetAddress = Station.StationCode, // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // Station.StationStatus = (int)LocationStatusEnum.InLock; // _taskService.AddData(dt_Task); // _StationInfoService.UpdateData(Station); // } // } // } // } // } // #endregion #endregion // #endregion #region 忥¼èªå¨ä»»å¡ //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" }; List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" }; var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode)); #region å ¥æåæºä»»å¡ var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock); if (hKLocation != null) { var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); Dt_Task dt_Task = new Dt_Task() { TaskNum = tasknum, WMSTaskNum = "GP" + tasknum, Grade = 60, PalletCode = hKLocation.PalletCode, Roadway = "", TaskState = (int)TaskStatusEnum.New, TaskType = TaskTypeEnum.CHUKU1.ObjToInt(), SourceAddress = hKLocation.LocationCode, CurrentAddress = hKLocation.LocationCode, NextAddress = "TSJR4F", TargetAddress = "TSJR4F", Creater = "WCS", }; var content = _taskService.SendHIKROBOTTask(dt_Task); if (content.Status) { dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; hKLocation.LocationStatus = (int)LocationStatusEnum.OutLock; _taskService.AddData(dt_Task); _HKLocationInfoService.UpdateData(hKLocation); } } #endregion // #region 忥¼èªå¨ä»»å¡ // //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" }; // List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" }; // var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode)); // #region å ¥æåæºä»»å¡ // var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock); // if (hKLocation != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // Dt_Task dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = hKLocation.PalletCode, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, //TaskType = TaskTypeEnum.CHUKU1.ObjToInt(), // SourceAddress = hKLocation.LocationCode, // CurrentAddress = hKLocation.LocationCode, // NextAddress = "TSJR4F", // TargetAddress = "TSJR4F", // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // hKLocation.LocationStatus = (int)LocationStatusEnum.OutLock; // _taskService.AddData(dt_Task); // _HKLocationInfoService.UpdateData(hKLocation); // } // } // #endregion #region åºæåæºä»»å¡ //if (device != null && device.IsConnected) //{ // if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) // { // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F"); // if (dt_Task == null) // { // hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free); // if (hKLocation != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = "LXM" + tasknum, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, // TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(), // SourceAddress = "TSJC4F", // CurrentAddress = "TSJC4F", // NextAddress = hKLocation.LocationCode, // TargetAddress = hKLocation.LocationCode, // Creater = "WCS", // }; // var content = _taskService.SendHIKROBOTTask(dt_Task); // if (content.Status) // { // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // dt_Task.Dispatchertime = DateTime.Now; // hKLocation.LocationStatus = (int)LocationStatusEnum.InLock; // _taskService.AddData(dt_Task); // _HKLocationInfoService.UpdateData(hKLocation); // } // } // } // #region åºæåæºä»»å¡ // //if (device != null && device.IsConnected) // //{ // // if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) // // { // // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F"); // // if (dt_Task == null) // // { // // hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free); // // if (hKLocation != null) // // { // // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // // dt_Task = new Dt_Task() // // { // // TaskNum = tasknum, // // WMSTaskNum = "GP" + tasknum, // // Grade = 60, // // PalletCode = "LXM" + tasknum, // // Roadway = "", // // TaskState = (int)TaskStatusEnum.New, // // TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(), // // SourceAddress = "TSJC4F", // // CurrentAddress = "TSJC4F", // // NextAddress = hKLocation.LocationCode, // // TargetAddress = hKLocation.LocationCode, // // Creater = "WCS", // // }; // // var content = _taskService.SendHIKROBOTTask(dt_Task); // // if (content.Status) // // { // // dt_Task.TaskState = (int)TaskStatusEnum.Execut; // // dt_Task.Dispatchertime = DateTime.Now; // // hKLocation.LocationStatus = (int)LocationStatusEnum.InLock; // // _taskService.AddData(dt_Task); // // _HKLocationInfoService.UpdateData(hKLocation); // // } // // } // // } // } //} #endregion // // } // //} // #endregion #endregion } catch (Exception ex) { Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message); } // #endregion //} //catch (Exception ex) //{ // Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message); //} return Task.CompletedTask; } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs
@@ -1,4 +1,5 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; @@ -41,6 +42,13 @@ //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList(); //if (Tasks.Count > 0) HIKROBOTTask(Tasks); //#endregion #region ä¸å海康1å°6楼çAGVä»»å¡/ä¸å海康6å°1楼çAGVä»»å¡ Tasks = newTasks.Where(x => (x.TaskType == (int)TaskTypeEnum.Q3CK) || x.TaskType == (int)TaskTypeEnum.Q3RK).OrderByDescending(x => x.Grade).ToList(); if (Tasks.Count > 0) SendAGVTask(Tasks); #endregion } } catch (Exception ex) @@ -102,6 +110,14 @@ //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList(); //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); #endregion #region å¤çagvå¾ ç©ºè½¦æ¬è¿ä»»å¡ Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.WaitingHkAGVMovePosition).OrderByDescending(x => x.Grade).ToList(); if (Tasks.Count > 0) SendHKWaitTask(); #endregion } } catch (Exception ex) ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs
@@ -34,8 +34,9 @@ private readonly IStationMangerService _stationMangerService; private readonly ITrackloginfoService _trackloginfoService; private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IAGVCartInfoService _agvcartInfoService; public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage) public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage, IAGVCartInfoService agvcartInfoService) { _taskService = taskService;//æ³¨å ¥ _apiInfoService = apiInfoService; @@ -43,6 +44,7 @@ _stationMangerService = stationMangerService; _trackloginfoService = trackloginfoService; _unitOfWorkManage = unitOfWorkManage; _agvcartInfoService = agvcartInfoService; } public Task Execute(IJobExecutionContext context) ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs
@@ -52,6 +52,7 @@ { 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) { @@ -89,12 +90,30 @@ //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress); } } else { //åå ¥åæ¢è´¨æ£ä¿¡å· device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress); device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress); } //else //{ // //åå ¥åæ¢è´¨æ£ä¿¡å· // device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress); // device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress); //} } foreach (var item in AGVtaskList) { var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum); if (result.Status == false) { if (item.ExceptionMessage != result.Message) { item.ExceptionMessage = result.Message; Uptasks.Add(item); } continue; } item.TaskState = (int)TaskStatusEnum.AGV_ToExecute; item.ExceptionMessage = ""; Uptasks.Add(item); } _taskService.UpdateData(Uptasks); WriteInfo(device.DeviceName, "infoLog");