1
dengjunjie
2026-03-12 c0ac5d4281a2c83f794bf6f0e86291c4d695e53c
1
已添加4个文件
已删除1个文件
已修改6个文件
123 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与上游系统接口清单/WMS接口对接文档_V1.1.5.docx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与上游系统接口清单/wms接口文档3-10(1).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与上游系统接口清单/接口地址.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与设备交互接口/~$所需接口及问题点.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与设备交互接口/所需接口及问题点.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/与设备交互接口/海康AGV/高普WCS.海康协议260310.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/项目图纸/2F面料库(1).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/项目图纸/货位编号.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Reflection.Metadata;
using System.Text;
using System.Text.Json;
@@ -123,6 +124,10 @@
                            else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Puting)
                            {
                                TaskCompleted(task, deviceTypeEnum);
                            }
                            else if (task.TaskType == (int)TaskTypeEnum.CPInbound && !string.IsNullOrEmpty(task.ExceptionMessage))
                            {
                                ErrorTaskFeedback(task, !task.ExceptionMessage.Contains("外检失败"));
                            }
                            else if (task.TaskType == (int)TaskTypeEnum.CPOutbound || task.TaskType == (int)TaskTypeEnum.CPMoveInventory)//出库、移库完成
                            {
@@ -385,5 +390,48 @@
            return WebResponseContent.Instance.OK();
        }
        #endregion
        #region å¤±è´¥ä»»åŠ¡ä¸ŠæŠ¥WMS并删除任务
        public WebResponseContent ErrorTaskFeedback(Dt_Task dt_Task, bool Del)
        {
            WebResponseContent content = new WebResponseContent();
            WMSInOutBoundCompleteFeedback boundCompleteFeedback = new WMSInOutBoundCompleteFeedback();
            WMSReturn agvContent = null;
            try
            {
                Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSInOutBoundCompleteFeedback));
                if (apiInfo == null) dt_Task.ExceptionMessage = "未找到出入库完成反馈WMS接口配置信息!请检查接口配置";
                else
                {
                    boundCompleteFeedback.taskCode = dt_Task.WMSTaskNum;
                    boundCompleteFeedback.containerCode = dt_Task.PalletCode;
                    boundCompleteFeedback.fromStationCode = dt_Task.SourceAddress;
                    boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress;
                    boundCompleteFeedback.status = 3;
                    boundCompleteFeedback.custStatus = "";
                    boundCompleteFeedback.memo = dt_Task.ExceptionMessage;
                    string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize());
                    agvContent = response.DeserializeObject<WMSReturn>();
                    content.OK(data: agvContent);
                    if (agvContent.code != 200)
                    {
                        dt_Task.ExceptionMessage = agvContent.message;
                        content.Error(agvContent.message);
                    }
                }
            }
            catch (Exception ex)
            {
                dt_Task.ExceptionMessage = ex.Message;
                content.Error(ex.Message);
            }
            finally
            {
                _trackloginfoService.AddTrackLog(boundCompleteFeedback, content, "出入库任务状态反馈WMS", "", "");
                if (agvContent != null && agvContent.code == 200 && Del) BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.自动删除);
                else BaseDal.UpdateData(dt_Task);
            }
            return content;
        }
        #endregion
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs
@@ -22,9 +22,7 @@
        {
            try
            {
                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound && x.TaskState == (int)TaskStatusEnum.WaiCheckShape).OrderByDescending(x => x.Grade).ToList();
                if (newTasks.Count > 0) SendRGVCheckShapeTask(newTasks);
                newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList();
                if (newTasks.Count > 0)
                {
                    #region æŸ¥æ‰¾å‡¯ä¹å£«ä»»åŠ¡
@@ -60,42 +58,51 @@
        {
            try
            {
                #region ä¸‹å‘外形检测通过的四向车任务
                var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && string.IsNullOrEmpty(x.ExceptionMessage)).ToList();
                if (Tasks.Count > 0) SendCheckShapeingOkTask(Tasks);
                #endregion
                var ExecutTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState != (int)TaskStatusEnum.New).ToList();
                if (ExecutTasks.Count > 0)
                {
                    #region ä¸‹å‘待外形检测任务
                    var Tasks = ExecutTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound && x.TaskState == (int)TaskStatusEnum.WaiCheckShape).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendRGVCheckShapeTask(Tasks);
                    #endregion
                #region ä¸‹å‘外形检测失败的四向车任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingNG).ToList();
                if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && x.ExceptionMessage.Contains("未找到终点库区")).ToList();
                if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
                #endregion
                    #region ä¸‹å‘外形检测通过的四向车任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && string.IsNullOrEmpty(x.ExceptionMessage)).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendCheckShapeingOkTask(Tasks);
                    #endregion
                #region ä¸‹å‘四向车批量移库任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.RGV_NewMoveTask).ToList();
                if (Tasks.Count > 0) SendMoveTasks(Tasks);
                #endregion
                    #region ä¸‹å‘外形检测失败的四向车任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingNG).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && x.ExceptionMessage.Contains("未找到终点库区")).ToList();
                    if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks);
                    #endregion
                #region å¤„理待移库后四向车出库任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitMoveToExecute).ToList();
                if (Tasks.Count > 0) MoveToExecuteTask(Tasks);
                #endregion
                    #region ä¸‹å‘四向车批量移库任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_NewMoveTask).ToList();
                    if (Tasks.Count > 0) SendMoveTasks(Tasks);
                    #endregion
                #region ä¸‹å‘四向车出库任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitSend).ToList();
                if (Tasks.Count > 0) SendOutTask(Tasks);
                #endregion
                    #region å¤„理待移库后四向车出库任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitMoveToExecute).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) MoveToExecuteTask(Tasks);
                    #endregion
                #region ä¸‹å‘外设允许进入的海康AGV任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).ToList();
                if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                #endregion
                    #region ä¸‹å‘四向车出库任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitSend).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendOutTask(Tasks);
                    #endregion
                #region ä¸‹å‘托盘确认完成的海康AGV任务
                Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).ToList();
                if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                #endregion
                    #region ä¸‹å‘外设允许进入的海康AGV任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                    #endregion
                    #region ä¸‹å‘托盘确认完成的海康AGV任务
                    Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList();
                    if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks);
                    #endregion
                }
            }
            catch (Exception ex)
            {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs
@@ -80,7 +80,7 @@
                            else
                            {
                                task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt();
                                task.ExceptionMessage = "质检失败";
                                task.ExceptionMessage = "外检失败";
                                if (R_LeftOverWidthWarning) task.ExceptionMessage += ",左超宽";
                                if (R_RightWideWarning) task.ExceptionMessage += ",右超宽";
                                if (R_ExtremeWarning) task.ExceptionMessage += ",超高";
ÏîÄ¿×ÊÁÏ/ÓëÉÏÓÎϵͳ½Ó¿ÚÇåµ¥/WMS½Ó¿Ú¶Ô½ÓÎĵµ_V1.1.5.docx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÓëÉÏÓÎϵͳ½Ó¿ÚÇåµ¥/wms½Ó¿ÚÎĵµ3-10(1).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÓëÉÏÓÎϵͳ½Ó¿ÚÇåµ¥/½Ó¿ÚµØÖ·.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÓëÉ豸½»»¥½Ó¿Ú/~$ËùÐè½Ó¿Ú¼°ÎÊÌâµã.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÓëÉ豸½»»¥½Ó¿Ú/ËùÐè½Ó¿Ú¼°ÎÊÌâµã.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÓëÉ豸½»»¥½Ó¿Ú/º£¿µAGV/¸ßÆÕWCS.º£¿µÐ­Òé260310.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÏîĿͼֽ/2FÃæÁÏ¿â(1).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ÏîĿͼֽ/»õλ±àºÅ.xlsx
Binary files differ