| | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using SqlSugar; |
| | | using SqlSugar.Extensions; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | |
| | |
| | | private readonly ILocationInfoRepository _locationInfoRepository; |
| | | private readonly IMapper _mapper; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly ITaskRepository _taskRepository; |
| | | |
| | | private Dictionary<string, OrderByType> _taskOrderBy = new() |
| | | { |
| | |
| | | |
| | | public List<int> TaskOtherboundTypes => typeof(TaskOtherTypeEnum).GetEnumIndexList(); |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ILocationInfoRepository locationInfoRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ILocationInfoRepository locationInfoRepository, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository) : base(BaseDal) |
| | | { |
| | | _routerService = routerService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _mapper = mapper; |
| | | _locationInfoRepository = locationInfoRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _taskRepository = taskRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // ServiceLogger.WriteLogToFile(""); |
| | | string inparam = JsonConvert.SerializeObject(taskDTO); |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ReceiveMESTaskæ¹æ³å
¥å{inparam}"); |
| | | Dt_Task task = new Dt_Task(); |
| | | Dt_Task taskinfo = BaseDal.QueryFirst(x => x.TaskNum == taskDTO.task_id); |
| | | if(taskDTO.cmd==101)//妿æ¯101ææ§çä»»å¡å·å»æ¥ |
| | |
| | | |
| | | if (taskDTO.cmd!=3001&& taskDTO.cmd != 101 && taskinfo != null) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ä»»å¡å·éå¤ï¼ä»»å¡å·ï¼{taskDTO.task_id}"); |
| | | return content = WebResponseContent.Instance.Error($"ä»»å¡å·éå¤ï¼ä»»å¡å·ï¼{taskDTO.task_id}"); |
| | | } |
| | | Dt_LocationInfo locationsrc = _locationInfoRepository.QueryFirst(x => x.Remark == taskDTO.src_station.ToString()); |
| | |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | } |
| | | break; |
| | | case 3001://AGVæ¾è´§å®æ WMSå3001çåæ¶ä¼åæåä¿¡å· |
| | | case 3001://AGVæ¾è´§å®æ WMSå3001çåæ¶WCSéå¨jobä¸åæåä¿¡å· |
| | | if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.task_id) == null)//æå¨å
¥åºç´æ¥å3001ï¼éè¦çæä»»å¡ï¼å 为没æ1001ç¯è |
| | | { |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | } |
| | | } |
| | |
| | | if (taskinfo != null) |
| | | { |
| | | UpdateTaskStatus(taskinfo.TaskId, (int)TaskInStatusEnum.AGV_InExecuting); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"AGVå
¥åºæ§è¡ä¸"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(taskinfo.TaskId, $"AGVå
¥åºæ§è¡ä¸"); |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"AGVå
¥åºæ§è¡ä¸ï¼èªå¨3001ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | return content = WebResponseContent.Instance.OK($"AGVå
¥åºæ§è¡ä¸ï¼èªå¨3001ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | } |
| | | else |
| | |
| | | { |
| | | //æ´æ°ä»»å¡è¡¨ä¸NextAddressåæ®µä¸ºæ°çä»»å¡å· taskDTO.weight-æ§çä»»å¡å· taskDTO.task_id-æ°çä»»å¡å· |
| | | UpdateTaskStatus(taskinfo.TaskId, taskDTO.task_id, (int)TaskInStatusEnum.AGV_InFinish); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"AGVæ¬è¿å®æ"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(taskinfo.TaskId, $"AGVæ¬è¿å®æ"); |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | return content = WebResponseContent.Instance.OK($"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææ¶ï¼æ¥è¯¢ä¸å°ä»»å¡å·"); |
| | | return content = WebResponseContent.Instance.Error($"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææ¶ï¼æ¥è¯¢ä¸å°ä»»å¡å·"); |
| | | } |
| | | break; |
| | |
| | | task.TaskType= (int)TaskRelocationTypeEnum.Relocation; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.Roadway = "SC01"; |
| | | if (taskDTO.total > 0) |
| | | { |
| | | task.Remark = taskDTO.total.ToString();//ååºåºçæ»å±æ° |
| | | } |
| | | task.Grade = 1; |
| | | break; |
| | | case 102: |
| | |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | } |
| | | break; |
| | | case 104://ç»ç«æºä¸æ æåä½-->ç»ç«æº |
| | |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{task.TargetAddress.ToString()}"); |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{task.TargetAddress.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{task.TargetAddress.ToString()}"); |
| | | } |
| | | //æ ¹æ®ç®æ å°åï¼ç»ç«æºï¼æ¥è¯¢é»è®¤çæ§è¡ä»»å¡çå°å åæºç¼å· |
| | | Dt_LocationInfo locationtemp2 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress.ToString()); |
| | |
| | | } |
| | | else |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"WCSæªæ¥è¯¢å°ç»ç«æºå¯¹åºçé»è®¤å°å åæºé
ç½®"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç»ç«æºå¯¹åºçé»è®¤å°å åæºé
ç½®"); |
| | | } |
| | | |
| | |
| | | |
| | | task.TaskNum = taskDTO.task_id; |
| | | task.PalletCode = taskDTO.CarId; |
| | | task.Roadway = "SC01"; |
| | | |
| | | if (string.IsNullOrEmpty(task.SourceAddress))//妿䏿¯ç«ç¹ï¼ç´æ¥åè¡åå± |
| | | { |
| | | task.SourceAddress = $"SC01-{taskDTO.src_rack.ToString().PadLeft(3, '0')}-{taskDTO.src_col.ToString().PadLeft(3, '0')}-{taskDTO.src_row.ToString().PadLeft(3, '0')}"; |
| | |
| | | { |
| | | if (srcLocation.EnableStatus == (int)EnableStatusEnum.Disable) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"æºå°åå·²ç¦ç¨ï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"æºå°åå·²ç¦ç¨ï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if (tarLocation.EnableStatus == (int)EnableStatusEnum.Disable) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ç®æ å°åå·²ç¦ç¨ï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç®æ å°åå·²ç¦ç¨ï¼{tarLocation.LocationCode}"); |
| | | } |
| | | if (taskDTO.cmd != 101)//å
¥åºæ¶ä¸éè¦å¤ææ¯å¦éå®ï¼éå®ç¶ææ¯å¨çæä»»å¡æ¶éå® |
| | |
| | | { |
| | | if (srcLocation.LocationStatus == (int)LocationStatusEnum.Lock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"æºå°åå·²éå®ï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"æºå°åå·²éå®ï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if (tarLocation.LocationStatus == (int)LocationStatusEnum.Lock) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ç®æ å°åå·²éå®ï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç®æ å°åå·²éå®ï¼{tarLocation.LocationCode}"); |
| | | } |
| | | } |
| | |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâ空é²â并䏿ªç¦ç¨ï¼éå®åºä½ä¿®æ¹åºä½ç¶æä¸ºâéå®âï¼çæWCS产åå
¥åºä»»å¡ï¼å å
¥WCSä»»å¡éåä¸ã |
| | | if (tarLocation.LocationStatus != (int)LocationStatusEnum.Free) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"å
¥åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"å
¥åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{tarLocation.LocationCode}"); |
| | | } |
| | | //srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâæè´§âï¼åºä½/æååºä½æ¯å¦â空é²â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ç§»åº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç§»åº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if(tarLocation.LocationStatus != (int)LocationStatusEnum.Free) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"ç§»åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç§»åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâæè´§â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"å¼å¸¸åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"å¼å¸¸åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | |
| | | //WCSæ¥è¯¢æååºä½æ¯å¦âæè´§â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"空车åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"空车åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | //srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | |
| | | //WCSæ¥è¯¢æååºä½æ¯å¦âæè´§â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"䏿任å¡-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"䏿任å¡-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | //srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"åºä½å°åä¸åå¨ï¼ä»»å¡å·:{task.TaskNum}"); |
| | | return content = WebResponseContent.Instance.Error($"åºä½å°åä¸åå¨ï¼ä»»å¡å·:{task.TaskNum}"); |
| | | } |
| | | |
| | |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; |
| | | } |
| | | |
| | | content = WebResponseContent.Instance.OK("æå",task); |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"æ¥æ¶ä»»å¡æåï¼ä»»å¡å·:{task.TaskNum}"); |
| | | content = WebResponseContent.Instance.OK($"æ¥æ¶ä»»å¡æåï¼ä»»å¡å·:{task.TaskNum}", task); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveTask", $"任塿¥æ¶é误,é误信æ¯:{ex.StackTrace}"); |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// wcsæå·¥çæä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskDTO">WCSä»»å¡å¯¹è±¡</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent ReceiveWCSTask([NotNull] MESTaskDTO taskDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | taskDTO.task_id = GetTaskNo(); |
| | | string inparam = JsonConvert.SerializeObject(taskDTO); |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ReceiveWCSTaskæ¹æ³å
¥å{inparam}"); |
| | | Dt_Task task = new Dt_Task(); |
| | | Dt_Task taskinfo = BaseDal.QueryFirst(x => x.TaskNum == taskDTO.task_id); |
| | | if (taskDTO.cmd == 101)//妿æ¯101ææ§çä»»å¡å·å»æ¥ |
| | | { |
| | | taskinfo = BaseDal.QueryFirst(x => x.TaskNum == taskDTO.weight); |
| | | } |
| | | |
| | | if (taskDTO.cmd != 3001 && taskDTO.cmd != 101 && taskinfo != null) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ä»»å¡å·éå¤ï¼ä»»å¡å·ï¼{taskDTO.task_id}"); |
| | | return content = WebResponseContent.Instance.Error($"ä»»å¡å·éå¤ï¼ä»»å¡å·ï¼{taskDTO.task_id}"); |
| | | } |
| | | Dt_LocationInfo locationsrc = _locationInfoRepository.QueryFirst(x => x.Remark == taskDTO.src_station.ToString()); |
| | | Dt_LocationInfo locationdsc = _locationInfoRepository.QueryFirst(x => x.Remark == taskDTO.dest_station.ToString()); |
| | | switch (taskDTO.cmd) |
| | | { |
| | | case 3001://AGVæ¾è´§å®æ WMSå3001çåæ¶WCSéå¨jobä¸åæåä¿¡å· |
| | | if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.task_id) == null)//æå¨å
¥åºç´æ¥å3001ï¼éè¦çæä»»å¡ï¼å 为没æ1001ç¯è |
| | | { |
| | | taskDTO.dest_rack =int.Parse(taskDTO.dest_station.ToString().Substring(0, 1)); |
| | | taskDTO.dest_row = int.Parse(taskDTO.dest_station.ToString().Substring(1, 2).TrimStart('0')); |
| | | taskDTO.dest_col = int.Parse(taskDTO.dest_station.ToString().Substring(3, 2).TrimStart('0')); |
| | | task.TaskType = (int)TaskInboundTypeEnum.Inbound; |
| | | task.TaskState = (int)TaskInStatusEnum.AGV_InExecuting; |
| | | task.Roadway = "SC01"; |
| | | task.Grade = 2; |
| | | |
| | | if (locationsrc != null) |
| | | { |
| | | task.SourceAddress = locationsrc.LocationCode; |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°æºç«ç¹å¯¹åºçåºä½ï¼æºç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | } |
| | | } |
| | | break; |
| | | case 101://æåæºæå宿 |
| | | if (taskinfo != null) |
| | | { |
| | | //æ´æ°ä»»å¡è¡¨ä¸NextAddressåæ®µä¸ºæ°çä»»å¡å· taskDTO.weight-æ§çä»»å¡å· taskDTO.task_id-æ°çä»»å¡å· |
| | | UpdateTaskStatus(taskinfo.TaskId, taskDTO.task_id, (int)TaskInStatusEnum.AGV_InFinish); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(taskinfo.TaskId, $"AGVæ¬è¿å®æ"); |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | return content = WebResponseContent.Instance.OK($"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææåï¼ä»»å¡å·ï¼{taskinfo.TaskId}"); |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææ¶ï¼æ¥è¯¢ä¸å°ä»»å¡å·"); |
| | | return content = WebResponseContent.Instance.Error($"AGVæ¬è¿å®æï¼101ï¼æ´æ°ç¶ææ¶ï¼æ¥è¯¢ä¸å°ä»»å¡å·"); |
| | | } |
| | | break; |
| | | |
| | | case 103://产åç§»åºï¼ç§»åºï¼åºåºï¼ |
| | | taskDTO.src_rack = int.Parse(taskDTO.src_station.ToString().Substring(0, 1)); |
| | | taskDTO.src_row = int.Parse(taskDTO.src_station.ToString().Substring(1, 2).TrimStart('0')); |
| | | taskDTO.src_col = int.Parse(taskDTO.src_station.ToString().Substring(3, 2).TrimStart('0')); |
| | | |
| | | taskDTO.dest_rack = int.Parse(taskDTO.dest_station.ToString().Substring(0, 1)); |
| | | taskDTO.dest_row = int.Parse(taskDTO.dest_station.ToString().Substring(1, 2).TrimStart('0')); |
| | | taskDTO.dest_col = int.Parse(taskDTO.dest_station.ToString().Substring(3, 2).TrimStart('0')); |
| | | |
| | | taskDTO.total = 9; |
| | | task.TaskType = (int)TaskRelocationTypeEnum.Relocation; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.Roadway = "SC01"; |
| | | |
| | | if (taskDTO.total > 0) |
| | | { |
| | | task.Remark = taskDTO.total.ToString();//ååºåºçæ»å±æ° |
| | | } |
| | | task.Grade = 1; |
| | | break; |
| | | case 102: |
| | | if (taskDTO.dest_station == 1001 || taskDTO.dest_station == 1002)//å¼å¸¸åºåº |
| | | { |
| | | taskDTO.src_rack = int.Parse(taskDTO.src_station.ToString().Substring(0, 1)); |
| | | taskDTO.src_row = int.Parse(taskDTO.src_station.ToString().Substring(1, 2).TrimStart('0')); |
| | | taskDTO.src_col = int.Parse(taskDTO.src_station.ToString().Substring(3, 2).TrimStart('0')); |
| | | task.TaskType = (int)TaskOutboundTypeEnum.OutInventory; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.Roadway = "SC01"; |
| | | task.Grade = 1; |
| | | } |
| | | if (locationdsc != null) |
| | | { |
| | | task.TargetAddress = locationdsc.LocationCode; |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | return content = WebResponseContent.Instance.Error($"WCSæªæ¥è¯¢å°ç®æ ç«ç¹å¯¹åºçåºä½ï¼ç®æ ç«ç¹ï¼{taskDTO.dest_station.ToString()}"); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | task.TaskNum = taskDTO.task_id; |
| | | task.PalletCode = taskDTO.CarId; |
| | | |
| | | if (string.IsNullOrEmpty(task.SourceAddress))//妿䏿¯ç«ç¹ï¼ç´æ¥åè¡åå± |
| | | { |
| | | task.SourceAddress = $"SC01-{taskDTO.src_rack.ToString().PadLeft(3, '0')}-{taskDTO.src_col.ToString().PadLeft(3, '0')}-{taskDTO.src_row.ToString().PadLeft(3, '0')}"; |
| | | } |
| | | if (string.IsNullOrEmpty(task.TargetAddress))//妿䏿¯ç«ç¹ï¼ç´æ¥åè¡åå± |
| | | { |
| | | task.TargetAddress = $"SC01-{taskDTO.dest_rack.ToString().PadLeft(3, '0')}-{taskDTO.dest_col.ToString().PadLeft(3, '0')}-{taskDTO.dest_row.ToString().PadLeft(3, '0')}"; |
| | | } |
| | | task.Creater = "WCS"; |
| | | task.WMSId = 3;//WCSäººå·¥å»ºä»»å¡ |
| | | |
| | | //å¤æè´§ä½ç¶æ |
| | | Dt_LocationInfo srcLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | Dt_LocationInfo tarLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | if (srcLocation != null && tarLocation != null) |
| | | { |
| | | if (srcLocation.EnableStatus == (int)EnableStatusEnum.Disable) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"æºå°åå·²ç¦ç¨ï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"æºå°åå·²ç¦ç¨ï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if (tarLocation.EnableStatus == (int)EnableStatusEnum.Disable) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ç®æ å°åå·²ç¦ç¨ï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç®æ å°åå·²ç¦ç¨ï¼{tarLocation.LocationCode}"); |
| | | } |
| | | if (taskDTO.cmd != 101)//å
¥åºæ¶ä¸éè¦å¤ææ¯å¦éå®ï¼éå®ç¶ææ¯å¨çæä»»å¡æ¶éå® |
| | | { |
| | | |
| | | if (taskinfo != null && taskDTO.cmd == 3001 && taskinfo.WMSId == 3)//å¦ææ¯æå¨å
¥åºï¼å3001ï¼ä¼çæä»»å¡ï¼éè¦å¤æåºä½æ¯å¦éå®;èªå¨æ¨¡å¼å1001çæ¶åå°±çæäºä»»å¡ï¼åå3001å°±ä¸éè¦å¤ææ¯å¦éå®äº |
| | | { |
| | | if (srcLocation.LocationStatus == (int)LocationStatusEnum.Lock) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"æºå°åå·²éå®ï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"æºå°åå·²éå®ï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if (tarLocation.LocationStatus == (int)LocationStatusEnum.Lock) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ç®æ å°åå·²éå®ï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç®æ å°åå·²éå®ï¼{tarLocation.LocationCode}"); |
| | | } |
| | | } |
| | | } |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)//å
¥åº è·¯å¾ï¼æåæºåºä½-->åºä½ |
| | | { |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâ空é²â并䏿ªç¦ç¨ï¼éå®åºä½ä¿®æ¹åºä½ç¶æä¸ºâéå®âï¼çæWCS产åå
¥åºä»»å¡ï¼å å
¥WCSä»»å¡éåä¸ã |
| | | if (tarLocation.LocationStatus != (int)LocationStatusEnum.Free) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"å
¥åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{tarLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"å
¥åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{tarLocation.LocationCode}"); |
| | | } |
| | | tarLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | } |
| | | else if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation) //产åç§»åºï¼ç§»åºï¼åºåºå
±ç¨ï¼ è·¯å¾ï¼åºä½-->åºä½/æååºä½ |
| | | { |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâæè´§âï¼åºä½/æååºä½æ¯å¦â空é²â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ç§»åº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç§»åº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | if (tarLocation.LocationStatus != (int)LocationStatusEnum.Free) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"ç§»åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"ç§»åº-ç®æ å°å䏿¯ç©ºé²ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | tarLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | } |
| | | else if (task.TaskType == (int)TaskOutboundTypeEnum.OutInventory) //å¼å¸¸åºåºï¼éåºï¼ è·¯å¾ï¼åºä½-->æåæºåºä½ |
| | | { |
| | | //WCSæ¥è¯¢åºä½ç¶ææ¯å¦ä¸ºâæè´§â |
| | | if (srcLocation.LocationStatus != (int)LocationStatusEnum.InStock) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"å¼å¸¸åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | return content = WebResponseContent.Instance.Error($"å¼å¸¸åºåº-æºå°å䏿¯æè´§ç¶æï¼{srcLocation.LocationCode}"); |
| | | } |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"åºä½å°åä¸åå¨ï¼ä»»å¡å·:{task.TaskNum}"); |
| | | return content = WebResponseContent.Instance.Error($"åºä½å°åä¸åå¨ï¼ä»»å¡å·:{task.TaskNum}"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | //å¼å¯äºç© |
| | | _unitOfWorkManage.BeginTran(); |
| | | _locationInfoRepository.UpdateData(tarLocation); |
| | | _locationInfoRepository.UpdateData(srcLocation); |
| | | BaseDal.AddData(task); |
| | | Dt_Task tasktemp = BaseDal.QueryFirst(x => x.TaskNum == task.TaskNum); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(tasktemp.TaskId, "æ¥æ¶WCSä»»å¡"); |
| | | //æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; |
| | | } |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"æ¥æ¶ä»»å¡æåï¼ä»»å¡å·:{task.TaskNum}"); |
| | | content = WebResponseContent.Instance.OK($"æ¥æ¶ä»»å¡æåï¼ä»»å¡å·:{task.TaskNum}", task); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ServiceLogger.WriteDebug("ReceiveWCSTask", $"任塿¥æ¶é误,é误信æ¯:{ex.StackTrace}"); |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡å· |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public int GetTaskNo() |
| | | { |
| | | DataTable dt = BaseDal.QueryTable("SELECT FORMAT(NEXT VALUE FOR dbo.seqTaskNum, '0000000');"); |
| | | return int.Parse("9"+ dt.Rows[0][0].ToString()); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢ç§»åºä»»å¡ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dt_Task QueryStackerCraneTaskByRelotion(int taskNum) |
| | | { |
| | | return BaseDal.QueryFirst(x => (x.Roadway == "SC01" )&&x.TaskType==(int)TaskRelocationTypeEnum.Relocation && x.TaskNum==taskNum, TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å°å åæºåºåºå®æä»»å¡ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | |
| | | /// <param name="deviceNo"></param> |
| | | /// <returns></returns> |
| | | public Dt_Task QueryStackerCraneTaskByAGVRequest(string deviceNo) |
| | | { |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew), TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢AGVè¿å
¥ä¸çå
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="deviceNo"></param> |
| | | /// <returns></returns> |
| | | public Dt_Task QueryStackerCraneTaskByAGVIning(string deviceNo) |
| | | { |
| | | |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType)&&x.CurrentAddress=="1"), TaskOrderBy); |
| | | } |
| | | /// <summary> |
| | | /// 对åºWMSè¯·æ± 3001-AGVæ¾è´§å®æ |
| | |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// èªå¨å
¥åºæ¶æ´æ°æ¯å¦è¿å
¥åéæºæ å¿ï¼0ï¼æªè¿å
¥ 1ï¼å·²è¿å
¥ï¼ |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <param name="Inflag"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent UpdateTaskAllowIn(int taskNum, int Inflag) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | task.CurrentAddress = Inflag.ToString(); |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å·²åä¼ MES2001æ å¿ï¼0ï¼æªåä¼ 1ï¼å·²åä¼ ï¼ |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <param name="Inflag"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent UpdateTaskIsBack(int taskNum, int Inflag) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | task.Remark = Inflag.ToString(); |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | task.Modifier = "System"; |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å¼ºå¶å®æ å åæºå®é
已宿任å¡ï¼WCSæªæ¶å°å®æä¿¡å·æå
¶ä»æªç¥åå 导è´WCS任塿ªå®æï¼å¯ä»¥æ§è¡è¯¥æ¹æ³å¼ºå¶å®æä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ForceCompleteTask(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | bool isBack = false; |
| | | //1ï¼å
æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä¸åçä»»å¡ç±»ååä»»å¡å¼ºå¶å®ææä½ |
| | | Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | Dt_LocationInfo locationsrc = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress.ToString()); |
| | | Dt_LocationInfo locationdsc = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress.ToString()); |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | if (task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.SC_InFinish; |
| | | //éè¦å°ç®æ å°åæ¹ä¸ºæè´§ç¶æ |
| | | locationdsc.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | |
| | | //æ´æ°ç¶æä¸ºä»»å¡å®æ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºå
¥åºå®æ"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å
¥åºä»»å¡å®æ"); |
| | | //æ´æ°è´§ä½ |
| | | _locationInfoRepository.UpdateData(locationdsc); |
| | | isBack = true; |
| | | |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error("该任å¡ç®åç¶æï¼ä¸å
计强å¶å®æï¼"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | if (task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) |
| | | { |
| | | |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.OutInventory || task.TaskType == (int)TaskOutboundTypeEnum.OutPick)//å¼å¸¸åºåº 空车åºåº |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.OutFinish; |
| | | //æºå°åæ´æ°ä¸ºç©ºé² |
| | | locationsrc.LocationStatus = (int)LocationStatusEnum.Free; |
| | | |
| | | //æ´æ°ç¶æä¸ºä»»å¡å®æ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºåºåºå®æ"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºä»»å¡å®æ"); |
| | | //æ´æ°è´§ä½ |
| | | _locationInfoRepository.UpdateData(locationsrc); |
| | | isBack = true; |
| | | } |
| | | else if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation)//ç§»åº |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.OutFinish; |
| | | //æºå°åæ´æ°ä¸ºç©ºé² |
| | | locationsrc.LocationStatus = (int)LocationStatusEnum.Free; |
| | | //ç®æ å°åæ´æ°ä¸ºæè´§ |
| | | locationdsc.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | |
| | | |
| | | //æ´æ°ç¶æä¸ºä»»å¡å®æ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºåºåºå®æ"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºä»»å¡å®æ"); |
| | | //æ´æ°è´§ä½ |
| | | _locationInfoRepository.UpdateData(locationsrc); |
| | | _locationInfoRepository.UpdateData(locationdsc); |
| | | isBack = true; |
| | | |
| | | |
| | | } |
| | | else//䏿任å¡ä¹æ¹ä¸ºå¼ºå¶å®æ20250115 |
| | | { |
| | | //æ´æ°ç¶æä¸ºä»»å¡å®æ |
| | | //task.TaskState = (int)TaskOutStatusEnum.OutFinish; |
| | | //UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºåºåºå®æ"); |
| | | //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºä»»å¡å®æ"); |
| | | //isBack = true; |
| | | return WebResponseContent.Instance.Error($"䏿任å¡ä¸å
计强å¶å®æï¼"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å
计强å¶å®æï¼"); |
| | | } |
| | | } |
| | | |
| | | //ä»»å¡å¼ºå¶å®æåè°MES |
| | | if (isBack) |
| | | { |
| | | |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)//å
¥åºæ¶åä¼ éä¼ æ°ä»»å¡å· |
| | | { |
| | | task.TaskNum =int.Parse(task.NextAddress); |
| | | } |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("ForceCompleteTask", $"ä»»å¡å¼ºå¶å®æååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å¼ºå¶å®æååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ForceCompleteTask", $"ä»»å¡å¼ºå¶å®æååä¼ MESæåï¼,ä»»å¡å·:ã{taskNum}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æååä¼ MESæåï¼,ä»»å¡å·:ã{taskNum}ã"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
计éç½® |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent AGVResetTask() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == "1"); |
| | | if (task != null) |
| | | { |
| | | UpdateTaskAllowIn(task.TaskNum, 0); |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error($"ç®åæ¯å
计AGVè¿å
¥ç¶æï¼æ ééç½®ï¼"); |
| | | } |
| | | return content.Error("éç½®æåï¼"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡åæ¶ |
| | | /// </summary> |
| | | /// <param name="taskid"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent CancelTask(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //1ï¼å
æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä¸åçä»»å¡ç±»ååä»»å¡åæ¶æä½ |
| | | Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | //忶任塿¶ï¼éç½®æ¯å¦å
计è¿å
¥ |
| | | if (task.CurrentAddress == "1") |
| | | { |
| | | UpdateTaskAllowIn(task.TaskNum, 0); |
| | | } |
| | | |
| | | Dt_LocationInfo locationsrc = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress.ToString()); |
| | | Dt_LocationInfo locationdsc = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress.ToString()); |
| | | bool isBack = false; |
| | | //妿æ¯å
¥åºåèªå¨åæå¨ä¸¤ç§æ
åµå¤ç |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | if (task.WMSId == 0 && task.TaskState == (int)TaskInStatusEnum.InNew)//èªå¨å
¥åºï¼1001-AGVè¯·æ±æ¯å¦å
计è¿å
¥ï¼ä»»å¡ç¶æä¸ºâæ°å»ºå
¥åºä»»å¡200âä¹åå¯ä»¥åæ¶ |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.InCancel; |
| | | //éè¦å°ç®æ å°åæ¢å¤ä¸ºç©ºé²ç¶æ |
| | | locationdsc.LocationStatus = (int)LocationStatusEnum.Free; |
| | | //æ´æ°ç¶æä¸ºä»»å¡åæ¶ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å
¥åºä»»å¡åæ¶"); |
| | | _locationInfoRepository.UpdateData(locationdsc); |
| | | isBack = true; |
| | | } |
| | | else if (task.WMSId == 1 && task.TaskState == (int)TaskInStatusEnum.AGV_InExecuting)//æå¨å
¥åºï¼3001-AGVæ¾è´§å®æï¼ä»»å¡ç¶æä¸ºâAGVå
¥åºæ§è¡ä¸210âä¹åå¯ä»¥åæ¶ |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.InCancel; |
| | | //éè¦å°ç®æ å°åæ¢å¤ç©ºé²ç¶æ |
| | | locationdsc.LocationStatus = (int)LocationStatusEnum.Free; |
| | | //æ´æ°ç¶æä¸ºä»»å¡åæ¶ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å
¥åºä»»å¡åæ¶"); |
| | | _locationInfoRepository.UpdateData(locationdsc); |
| | | isBack = true; |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å
è®¡åæ¶ï¼"); |
| | | } |
| | | } |
| | | else//å
¶ä»ä»»å¡ï¼ä»»å¡ç¶æâæ°å»ºåºåºä»»å¡âä¹åï¼æå¯ä»¥åæ¶ |
| | | { |
| | | if (task.TaskState == (int)TaskOutStatusEnum.OutNew) |
| | | { |
| | | if(task.TaskType == (int)TaskOutboundTypeEnum.OutInventory|| task.TaskType == (int)TaskOutboundTypeEnum.OutPick)//å¼å¸¸åºåº 空车åºåº |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.OutCancel; |
| | | //æºå°åæ¢å¤å°æè´§ |
| | | locationsrc.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | |
| | | //æ´æ°ç¶æä¸ºä»»å¡åæ¶ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºä»»å¡åæ¶"); |
| | | _locationInfoRepository.UpdateData(locationsrc); |
| | | isBack = true; |
| | | } |
| | | else if(task.TaskType == (int)TaskRelocationTypeEnum.Relocation)//ç§»åº |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.OutCancel; |
| | | //æºå°åæ¢å¤å°æè´§ |
| | | locationsrc.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | //éè¦å°ç®æ å°åæ¢å¤ç©ºé²ç¶æ |
| | | locationdsc.LocationStatus = (int)LocationStatusEnum.Free; |
| | | //æ´æ°ç¶æä¸ºä»»å¡åæ¶ |
| | | UpdateTaskStatus(task.TaskId, task.TaskState); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºä»»å¡åæ¶"); |
| | | _locationInfoRepository.UpdateData(locationsrc); |
| | | _locationInfoRepository.UpdateData(locationdsc); |
| | | isBack = true; |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error($"䏿任å¡ä¸å
è®¡åæ¶ï¼"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å
è®¡åæ¶ï¼"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //ä»»å¡åæ¶åè°MES |
| | | if (isBack) |
| | | { |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 3 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("ForceCompleteTask", $"ä»»å¡åæ¶åä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡åæ¶åä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("ForceCompleteTask", $"ä»»å¡åæ¶åä¼ MESæåï¼,ä»»å¡å·:ã{taskNum}ã"); |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡åæ¶åä¼ MESæåï¼,ä»»å¡å·:ã{taskNum}ã"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | |
| | | _unitOfWorkManage.CommitTran(); |
| | | //åºåºå®æï¼åä¼ WMS |
| | | //åä¼ å°WMS |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.OutPick) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æç©ºè½¦åºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æç©ºè½¦åºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | if (task.WMSId != 3) |
| | | { |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æå¼å¸¸åºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æå¼å¸¸åºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | } |
| | | |
| | |
| | | |
| | | //å
¥åºå®æï¼åä¼ MES å
¥åºå®æåä¼ task.NextAddress ä¹å101è¯·æ±æ¶åçæ°ä»»å¡å· |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = int.Parse(task.NextAddress), status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | string inparam = JsonConvert.SerializeObject(sendcmd); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æå
¥åºä»»å¡ååä¼ MESå
¥å:{inparam}"); |
| | | if (task.WMSId != 3) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æå
¥åºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æå
¥åºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æå
¥åºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æå
¥åºä»»å¡ååä¼ MESæåï¼,ä»»å¡å·:ã{taskNum}ã"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºæ§è¡å
¥åºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºæ§è¡å
¥åºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | } |
| | | } |
| | |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.Free; |
| | | |
| | | Dt_LocationInfo tarLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | srcLocation.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | tarLocation.LocationStatus = (int)LocationStatusEnum.InStock; |
| | | UpdateTaskStatus(task.TaskId, (int)TaskOutStatusEnum.SC_OutFinish); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºåºåºå®æ"); |
| | | |
| | |
| | | _unitOfWorkManage.CommitTran(); |
| | | //ç§»åºå®æï¼åä¼ MES |
| | | //åä¼ å°WMS |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | if (task.WMSId != 3) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | string inparam = JsonConvert.SerializeObject(sendcmd); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æåºåºä»»å¡ååä¼ MESå
¥å:{inparam}"); |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | } |
| | | //if(task.TaskType== (int)TaskRelocationTypeEnum.Relocation&&!string.IsNullOrEmpty(task.Remark.Trim()))//åºåºä»»å¡åæ»å±æ°æ è¯ |
| | | //{ |
| | | // CommonStackerCrane commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC01") as CommonStackerCrane; |
| | | // //æ ¹æ®ä»»å¡æºå°åç¡®å®åå
¥PLCä½ç½® Depth |
| | | // Dt_LocationInfo location = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | // if (commonStackerCrane!=null&&location != null) |
| | | // { |
| | | // bool issuccess = commonStackerCrane.Communicator.Write<short>("DB28." + location.Depth + ".0", 9); |
| | | // if (issuccess) |
| | | // { |
| | | // ServiceLogger.WriteDebug("TaskService", $"åæåºåºååå
¥æ è¯æåï¼"); |
| | | // } |
| | | // else |
| | | // { |
| | | // ServiceLogger.WriteDebug("TaskService", $"åæåºåºååå
¥æ è¯å¤±è´¥ï¼"); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"大å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | content = WebResponseContent.Instance.Error($"大å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | Dt_LocationInfo srcLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | //Dt_LocationInfo srcLocation = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | //srcLocation.LocationStatus = (int)LocationStatusEnum.Free; |
| | | |
| | | |
| | |
| | | _unitOfWorkManage.CommitTran(); |
| | | //䏿宿ï¼åä¼ WMS |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 201, task_id = task.TaskNum, status = 6 }; |
| | | string inparam = JsonConvert.SerializeObject(sendcmd); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"å°å åæºæ§è¡åºåºä»»å¡åä¼ MESå
¥å{inparam}"); |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | if (res != null && res.code != 0) |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"å°å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | content = WebResponseContent.Instance.Error($"å°å åæºå®æåºåºä»»å¡ååä¼ MES失败ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{res.message}ã"); |
| | | } |
| | | else |
| | | { |
| | | //夿æ¯å¦å®æçæåä¸å±ï¼èªå¨çæç©ºè½¦åºåºä»»å¡ |
| | | string[] Levels = task.Remark.Split("-"); |
| | | if (Levels.Length == 2) |
| | | { |
| | | if (!string.IsNullOrEmpty(Levels[0])&& !string.IsNullOrEmpty(Levels[1])) |
| | | { |
| | | //妿å½åæå屿°çäºæ»å±æï¼å表示æè½¦ææç屿°åå® |
| | | if(Convert.ToInt16(Levels[0])== Convert.ToInt16(Levels[1])) |
| | | { |
| | | string[] SourceCodes = task.SourceAddress.Split("-"); |
| | | string startPlan = ""; |
| | | if (SourceCodes.Length == 4) |
| | | { |
| | | startPlan= "101"+ SourceCodes[2].Substring(1,2); |
| | | } |
| | | DeliveryPlan send = new DeliveryPlan { startPlan = startPlan, isQuit = false, CarId = task.PalletCode }; |
| | | ApiInvoke.DeliveryPlanCMD(send);//åè°MESæ¥å£çæç©ºè½¦åºåºä»»å¡ |
| | | |
| | | } |
| | | |
| | | } |
| | | //else |
| | | //{ |
| | | // //夿æ¯å¦å®æçæåä¸å±ï¼èªå¨çæç©ºè½¦åºåºä»»å¡ |
| | | // string[] Levels = task.Remark.Split("-"); |
| | | // if (Levels.Length == 2) |
| | | // { |
| | | // if (!string.IsNullOrEmpty(Levels[0])&& !string.IsNullOrEmpty(Levels[1])) |
| | | // { |
| | | // //妿å½åæå屿°çäºæ»å±æï¼å表示æè½¦ææç屿°åå® |
| | | // if(Convert.ToInt16(Levels[0])== Convert.ToInt16(Levels[1])) |
| | | // { |
| | | // string[] SourceCodes = task.SourceAddress.Split("-"); |
| | | // string startPlan = ""; |
| | | // if (SourceCodes.Length == 4) |
| | | // { |
| | | // startPlan = "101" + SourceCodes[2].Substring(1, 2); |
| | | // } |
| | | // DeliveryPlan send = new DeliveryPlan { startPlan = startPlan, isQuit = false, CarId = task.PalletCode }; |
| | | // string inparam2 = JsonConvert.SerializeObject(send); |
| | | // ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"å°å åæºæ§è¡åºåºä»»å¡åä¼ MESå
¥å{inparam2}"); |
| | | // ApiInvoke.DeliveryPlanCMD(send);//åè°MESæ¥å£çæç©ºè½¦åºåºä»»å¡ |
| | | // ææç屿°é½åå®ï¼éè¦ææåä½ç¶ææ¹ä¸ºç©ºé²ç¶æ |
| | | // srcLocation.LocationStatus = (int)LocationStatusEnum.Free; |
| | | // _locationInfoRepository.UpdateData(srcLocation); |
| | | // } |
| | | |
| | | // } |
| | | |
| | | } |
| | | } |
| | | // } |
| | | //} |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"å°å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.StackTrace}ã"); |
| | | content = WebResponseContent.Instance.Error($"å°å åæºæ§è¡åºåºä»»å¡å¤±è´¥ï¼,ä»»å¡å·:ã{taskNum}ã,失败信æ¯:ã{ex.Message}ã"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{taskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{taskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | } |
| | | content = WebResponseContent.Instance.OK(); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"ä»»å¡å®ææå,ä»»å¡å·:ã{taskNum}ã"); |
| | | content = WebResponseContent.Instance.OK($"ä»»å¡å®ææå,ä»»å¡å·:ã{taskNum}ã"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã"); |
| | | ServiceLogger.WriteDebug("StackCraneTaskCompleted", $"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã{ex.Message}"); |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¢å¤æèµ·ä»»å¡ |
| | | /// </summary> |