| | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using Dm; |
| | | using SqlSugar; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Threading.Tasks; |
| | |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_IBasicInfoService; |
| | |
| | | private readonly IKLSLocationInfoService _kLSLocationInfoService; |
| | | private readonly IRGVLocationInfoService _rGVLocationInfoService; |
| | | private readonly IRepository<Dt_TaskExecuteDetail> _taskExecuteDetailRepository; |
| | | private readonly IApiInfoService _apiInfoService; |
| | | private readonly IStationMangerService _stationMangerService; |
| | | private readonly IMapper _mapper; |
| | | |
| | | private Dictionary<string, OrderByType> _taskOrderBy = new() |
| | |
| | | /// </summary> |
| | | public IRepository<Dt_Task> Repository => BaseDal; |
| | | |
| | | public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IKLSLocationInfoService kLSLocationInfoService, IRGVLocationInfoService rGVLocationInfoService, IHKLocationInfoService hKLocationInfoService) : base(BaseDal) |
| | | public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IKLSLocationInfoService kLSLocationInfoService, IRGVLocationInfoService rGVLocationInfoService, IHKLocationInfoService hKLocationInfoService, IApiInfoService apiInfoService) : base(BaseDal) |
| | | { |
| | | _routerService = routerService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _kLSLocationInfoService = kLSLocationInfoService; |
| | | _rGVLocationInfoService = rGVLocationInfoService; |
| | | _hKLocationInfoService = hKLocationInfoService; |
| | | _apiInfoService = apiInfoService; |
| | | } |
| | | public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTasksDTO> taskDTOs) |
| | | { |
| | |
| | | { |
| | | Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == wMSCancelTask.TaskCode); |
| | | if (dt_Task == null) throw new Exception("æªæ¥è¯¢å°ä»»å¡å·ç¸å
³ä»»å¡"); |
| | | dt_Task.TaskType = TaskOutStatusEnum.OutCancel.ObjToInt(); |
| | | BaseDal.UpdateData(dt_Task); |
| | | content.OK("忶任塿å",dt_Task); |
| | | |
| | | // 夿å½å任塿¯å¦ä¸ºå¯ä¹å£«ä»»å¡ |
| | | bool isGALAXISTask = dt_Task.TaskType == (int)TaskTypeEnum.MLInbound || |
| | | dt_Task.TaskType == (int)TaskTypeEnum.MLOutbound; |
| | | //åå车 |
| | | bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound; |
| | | //海康 |
| | | bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.Carry || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJOutbound; |
| | | //è¿éå°ç¶ææ¹åäº198åæ¶ä»»å¡ |
| | | dt_Task.TaskType = TaskStatusEnum.WMSCancel.ObjToInt(); |
| | | if (isGALAXISTask) |
| | | { |
| | | var KLS = new CancelGALAXISTask |
| | | { |
| | | taskId = dt_Task.WMSTaskNum, |
| | | reportTime = DateTime.Now.ToString() |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(CancelGALAXISTask)); |
| | | if (apiInfo == null) throw new Exception("æªæ¾å°å¯ä¹å£«AGVä»»å¡ä¸åæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, KLS.Serialize()); |
| | | GALAXISReturn agvContent = response.DeserializeObject<GALAXISReturn>(); |
| | | if (agvContent.success == true && agvContent.code == 0) |
| | | { |
| | | //ç´æ¥ç§»å
¥åå² |
| | | BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.èªå¨å®æ); |
| | | return content.OK("忶任塿å", dt_Task); |
| | | } |
| | | else |
| | | { |
| | | return content.Error($"ä»»å¡å¤±è´¥{agvContent.data.returnInfo}"); |
| | | |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == updateTaskPriority.taskCode); |
| | | if (dt_Task == null) throw new Exception("æªæ¥è¯¢å°ä»»å¡å·ç¸å
³ä»»å¡"); |
| | | |
| | | // 夿å½å任塿¯å¦ä¸ºå¯ä¹å£«ä»»å¡ |
| | | bool isGALAXISTask = dt_Task.TaskType == (int)TaskTypeEnum.MLInbound || |
| | | dt_Task.TaskType == (int)TaskTypeEnum.MLOutbound; |
| | | |
| | | //åå车 |
| | | bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound; |
| | | |
| | | //海康 |
| | | bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.Carry || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJOutbound; |
| | | //ä¿®æ¹åæ¬ä»»å¡ä¼å
级 |
| | | dt_Task.Grade = updateTaskPriority.taskPriority; |
| | | BaseDal.UpdateData(dt_Task); |
| | | content.OK("ä¿®æ¹ä»»å¡ä¼å
级æå", dt_Task); |
| | | #region å¯ä¹å£« |
| | | if (isGALAXISTask) |
| | | { |
| | | var updateGALAXISTaskGrade = new UpdateGALAXISTaskGrade |
| | | { |
| | | taskId = dt_Task.TaskNum.ToString(), |
| | | reportTime = DateTime.Now.ToString(), |
| | | district = dt_Task.Roadway,//ä»»å¡åºåº |
| | | priorityCode = updateTaskPriority.taskPriority, |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(UpdateGALAXISTaskGrade)); |
| | | if (apiInfo == null) throw new Exception("æªæ¾å°å¯ä¹å£«AGVä»»å¡ä¸åæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, updateGALAXISTaskGrade.Serialize()); |
| | | GALAXISReturn agvContent = response.DeserializeObject<GALAXISReturn>(); |
| | | if (agvContent.success == true && agvContent.code == 0) |
| | | { |
| | | |
| | | return content.OK("ä¿®æ¹ä»»å¡ä¼å
级æå", dt_Task); |
| | | } |
| | | else { |
| | | return content.Error($"ä»»å¡å¤±è´¥{agvContent.data.returnInfo}"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// ä¿®æ¹åºä½ååº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /// |
| | | |
| | | public WebResponseContent ModifyWMSLayoutZone(WMSUpdateLocationArea wMSUpdateLocationArea) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | var hk=new List<Dt_HKLocationInfo>(); |
| | | if(wMSUpdateLocationArea.WarehouseId == 1) |
| | | { |
| | | foreach (var LocationCode in wMSUpdateLocationArea.LocationCodes) |
| | | var rgvList = _rGVLocationInfoService.Repository.QueryData(x =>wMSUpdateLocationArea.LocationCodes.Contains(x.LocationCode)).ToList(); |
| | | foreach (var item in rgvList) |
| | | { |
| | | Dt_RGVLocationInfo dt_RGVLocationInfo = _rGVLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | rgv.Add(dt_RGVLocationInfo); |
| | | item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); |
| | | } |
| | | rgv.AddRange(rgvList); |
| | | } |
| | | if (wMSUpdateLocationArea.WarehouseId == 2) |
| | | { |
| | | foreach (var LocationCode in wMSUpdateLocationArea.LocationCodes) |
| | | |
| | | var KLSLocationInfoList = _kLSLocationInfoService.Repository.QueryData(x => wMSUpdateLocationArea.LocationCodes.Contains(x.LocationCode)).ToList(); |
| | | foreach (var item in KLSLocationInfoList) |
| | | { |
| | | Dt_KLSLocationInfo dt_KLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | kls.Add(dt_KLSLocationInfo); |
| | | item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); |
| | | } |
| | | kls.AddRange(KLSLocationInfoList); |
| | | } |
| | | if (wMSUpdateLocationArea.WarehouseId == 3) |
| | | { |
| | | foreach (var LocationCode in wMSUpdateLocationArea.LocationCodes) |
| | | var hkList = _hKLocationInfoService.Repository.QueryData(x => wMSUpdateLocationArea.LocationCodes.Contains(x.LocationCode)).ToList(); |
| | | foreach (var item in hkList) |
| | | { |
| | | Dt_HKLocationInfo dt_HKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | hk.Add(dt_HKLocationInfo); |
| | | item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); |
| | | } |
| | | hk.AddRange(hkList); |
| | | } |
| | | Db.Ado.BeginTran(); |
| | | _rGVLocationInfoService.UpdateData(rgv); |