dengjunjie
2026-02-26 933e1bd3517936e1d5488d84827a830cf1310a83
Merge branch 'master' of http://115.159.85.185:8098/r/RuiShengZhiNeng/GaoPuLiTiKu
已添加1个文件
已修改4个文件
155 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/GALAXIS/EditreacklocationGALAXIS.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/GALAXIS/GALAXISUpdateTaskStatus.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/GALAXIS/EditreacklocationGALAXIS.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO
{
    /// <summary>
    /// ä¿®æ”¹åº“位的区域
    /// </summary>
    public class EditreacklocationGALAXIS
    {
        /// <summary>
        /// è¯·æ±‚时间戳
        /// </summary>
        public string timestamp { get; set; }
        /// <summary>
        /// å®¹å™¨ç¼–码数组
        /// </summary>
        public string[] locationNos { get; set; }
        /// <summary>
        /// ä¿®æ”¹åŽçš„区域号
        /// </summary>
        public string  area { get; set; }
        /// <summary>
        /// å®¹å™¨åŽŸæœ‰åº“åŒºï¼Œé»˜è®¤â€œcg”
        /// </summary>
        public string  district { get; set; }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/GALAXIS/GALAXISUpdateTaskStatus.cs
@@ -7,7 +7,7 @@
namespace WIDESEAWCS_DTO
{
    /// <summary>
    /// å‡¯ä¹å£«æ›´æ–°ä»»åŠ¡çŠ¶æ€
    /// å‡¯ä¹å£«ä»»åŠ¡çŠ¶æ€ä¸ŠæŠ¥
    /// </summary>
    public class GALAXISUpdateTaskStatus
    {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/KLSAGVController.cs
@@ -3,6 +3,7 @@
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Common;
using WIDESEAWCS_Core;
using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.WMS;
using WIDESEAWCS_ITaskInfoService;
@@ -24,9 +25,24 @@
        /// <param name="taskDTOs"></param>
        /// <returns></returns>
        [HttpPost, Route("UpdateTaskStatus"), AllowAnonymous]
        public WebResponseContent UpdateTaskStatus([FromBody] object TaskDTO)
        public ReturnGALAXIS UpdateTaskStatus([FromBody] object TaskDTO)
        {
            return _taskService.UpdateTaskStatus(TaskDTO, DeviceTypeEnum.GALAXIS);
            ReturnGALAXIS returnGALAXIS = new ReturnGALAXIS();
            var take=  _taskService.UpdateTaskStatus(TaskDTO, DeviceTypeEnum.GALAXIS);
            if (take.Status)
            {
                returnGALAXIS.returnStatus = 0;
                returnGALAXIS.msgTime=DateTime.Now.ToString();
                returnGALAXIS.returnInfo = "";
            }
            else
            {
                returnGALAXIS.returnStatus=take.Code;
                returnGALAXIS.msgTime=DateTime.Now.ToString();
                returnGALAXIS.returnInfo = take.Message;
            }
            return returnGALAXIS;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -64,7 +64,7 @@
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        #endregion
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -26,6 +26,7 @@
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_DTO.WMS;
using WIDESEAWCS_IBasicInfoService;
@@ -44,6 +45,7 @@
        private readonly IKLSLocationInfoService _kLSLocationInfoService;
        private readonly IRGVLocationInfoService _rGVLocationInfoService;
        private readonly IRepository<Dt_TaskExecuteDetail> _taskExecuteDetailRepository;
        private readonly IApiInfoService _apiInfoService;
        private readonly IMapper _mapper;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
@@ -63,7 +65,7 @@
        /// </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;
@@ -72,6 +74,7 @@
            _kLSLocationInfoService = kLSLocationInfoService;
            _rGVLocationInfoService = rGVLocationInfoService;
            _hKLocationInfoService = hKLocationInfoService;
            _apiInfoService = apiInfoService;
        }
        public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTasksDTO> taskDTOs)
        {
@@ -141,7 +144,36 @@
                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);
                // åˆ¤æ–­å½“前任务是否为凯乐士任务
                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;
                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.UpdateData(dt_Task);
                    }
                    else
                    {
                        content.Error("取消任务失败");
                    }
                }
                //BaseDal.UpdateData(dt_Task);
                content.OK("取消任务成功",dt_Task);
            }
            catch (Exception ex)
@@ -165,7 +197,41 @@
                Dt_Task dt_Task = BaseDal.QueryFirst(x => x.WMSTaskNum == updateTaskPriority.taskCode);
                if (dt_Task == null) throw new Exception("未查询到任务号相关任务");
                dt_Task.Grade = updateTaskPriority.taskPriority;
                BaseDal.UpdateData(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;
                #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)
                    {
                        BaseDal.UpdateData(dt_Task);
                    }
                    else
                    {
                        content.Error("修改任务优先级失败");
                    }
                }
                #endregion
                content.OK("修改任务优先级成功", dt_Task);
            }
            catch (Exception ex)
@@ -179,8 +245,6 @@
        /// ä¿®æ”¹åº“位分区
        /// </summary>
        /// <returns></returns>
        ///
        public WebResponseContent ModifyWMSLayoutZone(WMSUpdateLocationArea wMSUpdateLocationArea)
        {
            WebResponseContent content = new WebResponseContent();
@@ -191,27 +255,31 @@
                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.LocationCode = wMSUpdateLocationArea.UpdateAreaCode;
                    }
                    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.LocationCode = wMSUpdateLocationArea.UpdateAreaCode;
                    }
                    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.LocationCode = wMSUpdateLocationArea.UpdateAreaCode;
                    }
                    hk.AddRange(hkList);
                }
                Db.Ado.BeginTran();
                _rGVLocationInfoService.UpdateData(rgv);