1
dengjunjie
2025-01-15 6e5fe70bddd5b152e00803e49e440d7b4b14a1ab
1
已删除8个文件
已修改12个文件
已添加4个文件
177 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50784c2a-deac-4e4b-9412-581239bdaea2.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/76b34398-56f7-412e-a330-a8b8def683e9.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c470cd75-662b-44ab-b67b-80ff3d784fdc.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ceed0040-40be-4d84-ae92-49490c0614dc.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f0ff9510-db3b-4549-baaa-b880ccefd2d7.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/APIEnum/APIEnum.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvPodBerthAndMatDTO.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/HostedService/WarehouseHostedService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9810d861-42a0-437f-a9ad-8e033478a6cd.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ce8ba97c-1d90-4f9a-a3f1-69f1f87b2d47.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50784c2a-deac-4e4b-9412-581239bdaea2.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/76b34398-56f7-412e-a330-a8b8def683e9.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c470cd75-662b-44ab-b67b-80ff3d784fdc.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ceed0040-40be-4d84-ae92-49490c0614dc.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f0ff9510-db3b-4549-baaa-b880ccefd2d7.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/APIEnum/APIEnum.cs
@@ -43,6 +43,11 @@
        /// WMS是否移库判断
        /// </summary>
        [Description("WMS是否移库判断")]
        WMSIsReloaction
        WMSIsReloaction,
        /// <summary>
        /// AGV储位绑定查询
        /// </summary>
        [Description("AGV储位绑定查询")]
        Agv_CSJPodBerthAndMat
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -39,6 +39,19 @@
        /// </summary>
        [Description("MES出库")]
        MesOutbound = 200,
        /// <summary>
        /// MES手动出库
        /// </summary>
        [Description("MES手动出库")]
        MesHandOutbound = 210,
        /// <summary>
        /// MES手动拣选出库
        /// </summary>
        [Description("MES手动拣选出库")]
        MesHandPickOutbound = 220,
        /// <summary>
        /// é‡‡è´­å…¥åº“
        /// </summary>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvPodBerthAndMatDTO.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.Agv
{
    public class AgvPodBerthAndMatDTO
    {
        /// <summary>
        /// è¯·æ±‚编号
        /// </summary>
        public string ReqCode { get; set; }
        /// <summary>
        /// è¯·æ±‚时间戳
        /// </summary>
        public string ReqTime { get; set; }
        /// <summary>
        /// å®¢æˆ·ç«¯ç¼–号
        /// </summary>
        public string ClientCode { get; set; }
        /// <summary>
        /// ä»¤ç‰Œå·
        /// </summary>
        public string TokenCode { get; set; }
        /// <summary>
        /// è´§æž¶ç¼–号
        /// </summary>
        public string PodCode { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰¹æ¬¡
        /// </summary>
        public string MaterialLot { get; set; }
        /// <summary>
        /// ä½ç½®ç¼–号
        /// </summary>
        public string PositionCode { get; set; }
        /// <summary>
        /// åŒºåŸŸç¼–号
        /// </summary>
        public string AreaCode { get; set; }
        /// <summary>
        /// åœ°å›¾ç®€ç§°
        /// </summary>
        public string MapShortName { get; set; }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -28,6 +28,7 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
@@ -227,5 +228,7 @@
        /// <param name="roadwayNos"></param>
        /// <returns></returns>
        WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos);
        WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat);
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -17,13 +17,13 @@
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly IRouterExtension _routerExtension;
        private readonly WebSocketServer _webSocketServer;
        //private readonly WebSocketServer _webSocketServer;
        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IRouterExtension routerExtension, WebSocketServer webSocketServer) : base(service)
        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IRouterExtension routerExtension/*, WebSocketServer webSocketServer*/) : base(service)
        {
            _httpContextAccessor = httpContextAccessor;
            _routerExtension = routerExtension;
            _webSocketServer = webSocketServer;
            //_webSocketServer = webSocketServer;
        }
        [HttpPost, Route("ReceiveTask"), AllowAnonymous]
@@ -79,18 +79,18 @@
            return WebResponseContent.Instance.OK(data: _routerExtension.GetEndPoint(startPoint, routeType));
        }
        [HttpPost, HttpGet, Route("WebSocketPushMessage"), AllowAnonymous]
        public WebResponseContent WebSocketPushMessage(string message)
        {
            try
            {
                 _webSocketServer.PublishAllClientPayload(message);
                return WebResponseContent.Instance.OK();
            }
            catch(Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        //[HttpPost, HttpGet, Route("WebSocketPushMessage"), AllowAnonymous]
        //public WebResponseContent WebSocketPushMessage(string message)
        //{
        //    try
        //    {
        //         _webSocketServer.PublishAllClientPayload(message);
        //        return WebResponseContent.Instance.OK();
        //    }
        //    catch(Exception ex)
        //    {
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/HostedService/WarehouseHostedService.cs
@@ -13,13 +13,13 @@
    {
        private readonly ICacheService _cacheService;
        private readonly DBContext _dbContext;
        private readonly WebSocketServer _webSocketServer;
        //private readonly WebSocketServer _webSocketServer;
        public WarehouseHostedService(ICacheService cacheService, DBContext dbContext, WebSocketServer webSocketServer)
        public WarehouseHostedService(ICacheService cacheService, DBContext dbContext/*, WebSocketServer webSocketServer*/)
        {
            _cacheService = cacheService;
            _dbContext = dbContext;
            _webSocketServer = webSocketServer;
            //_webSocketServer = webSocketServer;
        }
        public Task StartAsync(CancellationToken cancellationToken)
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -51,7 +51,7 @@
builder.Services.AddHostedService<WarehouseHostedService>();
builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
builder.Services.AddWebSocketSetup();
//builder.Services.AddWebSocketSetup();
builder.Services.AddAutoMapperSetup();
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs
@@ -9,6 +9,7 @@
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.Agv;
namespace WIDESEAWCS_TaskInfoService
{
@@ -90,5 +91,30 @@
        {
            return new AgvResponseContent();
        }
        public WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == PodBerthAndMat.ToString())?.ApiAddress;
                if (string.IsNullOrEmpty(apiAddress))
                    return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
                string response = HttpHelper.Post(apiAddress, agvPodModel.Serialize());
                AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
                if (agvContent.Code == "0")
                {
                    content.OK(agvContent.Message);
                }
                else
                {
                    content.Error(agvContent.Message);
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -198,7 +198,7 @@
                                task.NextAddress = router.NextPosi;
                                task.DeviceCode = router.ChildPosi;
                            }
                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt())
                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt())
                            {
                                task.NextAddress = router.NextPosi;
                                task.DeviceCode = stationManger.StackerCraneCode;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs
@@ -11,6 +11,7 @@
using WIDESEAWCS_Model.Models;
using static Dm.net.buffer.ByteArrayBuffer;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_DTO.Agv;
namespace WIDESEAWCS_Tasks
{
@@ -71,6 +72,24 @@
                    }
                }
                _taskService.UpdateData(newTasks);
                //出库绑定查询
                Dt_Task outBound = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.Exception.ObjToInt() && nameof(AGV_CSJJob).Contains(x.DeviceCode) && x.TaskType==TaskTypeEnum.Outbound.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x=>x.CreateDate).First();
                if (outBound != null)
                {
                    AgvPodBerthAndMatDTO andMatDTO = new AgvPodBerthAndMatDTO()
                    {
                        ReqCode = Guid.NewGuid().ToString().Replace("-", ""),
                        PositionCode=outBound.TargetAddress
                    };
                    WebResponseContent content = _taskService.AgvPodBerthAndMat(andMatDTO);
                    if (content.Status)
                    {
                        outBound.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
                        outBound.ExceptionMessage = "";
                        //agvTask.Remark = content.Data.ObjToString();
                        _taskService.UpdateTask(outBound, TaskStatusEnum.AGV_Execute);
                    }
                }
            }
            catch (Exception ex)
            {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/StackerCraneJob_BC.cs
@@ -177,10 +177,17 @@
                        Dt_Router router = _routerRepository.QueryFirst(x => x.InOutType == task.TaskType && x.StartPosi == stationManger.StationCode);
                        if (router == null)
                        {
                            //_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"未找到路由信息,{task.NextAddress}");
                            _taskService.UpdateTaskExceptionMessage(taskNum, $"未找到路由信息,{task.NextAddress}");
                            WriteError(deviceCode, $"未找到路由信息,{task.NextAddress}");
                            return WebResponseContent.Instance.Error($"未找到路由信息,{task.NextAddress}");
                            router = _routerRepository.QueryFirst(x=>x.ChildPosi == deviceCode && x.ChildPosiDeviceCode == stationManger.StationDeviceCode && x.NextPosi == stationManger.StationCode && x.InOutType == task.TaskType && x.IsEnd);
                            if (router != null && router.IsEnd)
                            {
                                _taskService.TaskCompleted(taskNum);
                            }
                            else
                            {
                                _taskService.UpdateTaskExceptionMessage(taskNum, $"未找到路由信息,{task.NextAddress}");
                                WriteError(deviceCode, $"未找到路由信息,{task.NextAddress}");
                                return WebResponseContent.Instance.Error($"未找到路由信息,{task.NextAddress}");
                            }
                        }
                        _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: router.NextPosi);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue
@@ -105,7 +105,7 @@
      this.http
        .post("/api/mesOutboundOrder/AddMesOrder", params, "数据处理中...")
        .then((res) => {
          if (!res.status) return this.$message.error(x.message);
          if (!res.status) return this.$message.error(res.message);
          this.$message.success("操作成功");
          this.showDetailBox = false;
          this.$emit("parentCall", ($vue) => {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9810d861-42a0-437f-a9ad-8e033478a6cd.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ce8ba97c-1d90-4f9a-a3f1-69f1f87b2d47.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -383,7 +383,7 @@
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                _unitOfWorkManage.BeginTran();
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt())
                {
                    if (outboundOrderDetails.Count > 0)
                    {