duyongjia
2024-11-27 3d07ccb8342a92b32bc8858ecf56d257d6b500c9
前端增加任务取消按钮
已删除5个文件
已修改5个文件
126 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Client/config/buttons.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/05ffa60e-9142-41b3-9d1d-6208c682ca6c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/71c48791-3b71-4064-86d1-e13fb205685c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7a1458f8-0596-42c0-8957-d12b8cc9fbca.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba596010-9901-42ab-9692-7e16dab54f48.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3887a9d-f738-4fa1-b9b8-dcb27de764cc.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/config/buttons.js
@@ -105,8 +105,8 @@
    }
},
{
    name: "删 é™¤",
    icon: 'el-icon-delete',
    name: "删除",
    icon: '',
    class: '',
    value: 'Delete',
    type: 'danger',
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js
@@ -23,6 +23,7 @@
            if (forceCompleteTaskButton) {
                forceCompleteTaskButton.onClick = () => {
                    let rows = this.$refs.table.getSelected();
                    console.log("rows"+rows);
                    if (rows.length == 0 || rows.length > 1) return this.$error("请选择一行数据");
                    this.http
                        .post("/api/Task/ForceCompleteTask?taskNum=" + rows[0].TaskNum, {}, true)
@@ -34,6 +35,22 @@
                }
            }
            var cancelTaskButton = this.buttons.find((x) => x.value == "TaskCancel");
            if (cancelTaskButton) {
                cancelTaskButton.onClick = () => {
                    let rows = this.$refs.table.getSelected();
                    console.log("rows"+rows);
                    if (rows.length == 0 || rows.length > 1) return this.$error("请选择一行数据");
                    this.http
                        .post("/api/Task/CancelTask?taskNum=" + rows[0].TaskNum, {}, true)
                        .then((x) => {
                            if (!x.status) return this.$message.error(x.message);
                            this.options = x.data;
                            console.log(this.options);
                        });
                }
            }
            var previousButton = this.buttons.find((x) => x.value == "Previous");
            if (previousButton) previousButton.hidden = true;
            var nextButton = this.buttons.find((x) => x.value == "Next");
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/05ffa60e-9142-41b3-9d1d-6208c682ca6c.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/71c48791-3b71-4064-86d1-e13fb205685c.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7a1458f8-0596-42c0-8957-d12b8cc9fbca.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba596010-9901-42ab-9692-7e16dab54f48.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3887a9d-f738-4fa1-b9b8-dcb27de764cc.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -176,7 +176,19 @@
        /// <param name="taskId">任务号</param>
        /// <param name="status">任务状态</param>
        void UpdateTaskStatus(int taskId, int status);
        /// <summary>
        /// ä»»åŠ¡å¼ºåˆ¶å®Œæˆ
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        WebResponseContent ForceCompleteTask(int taskNum);
        /// <summary>
        /// ä»»åŠ¡å–æ¶ˆ
        /// </summary>
        /// <param name="taskid"></param>
        /// <returns></returns>
        WebResponseContent CancelTask(int taskid);
        /// <summary>
        /// æ›´æ–°ä»»åŠ¡çŠ¶æ€ä¿¡æ¯å’Œæ—§çš„ä»»åŠ¡å·ï¼ˆ1001,3001时一样任务号)
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -61,13 +61,23 @@
            return Service.ReceiveMESTask(taskDTO);
        }
        [Route("Del")]
        public new WebResponseContent Del([FromBody] object[] key)
        /// <summary>
        /// ä»»åŠ¡å–æ¶ˆ
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        [Route("CancelTask")]
        public WebResponseContent CancelTask(int taskNum)
        {
            return null;
           return  Service.CancelTask(taskNum);
        }
        /// <summary>
        /// ä»»åŠ¡å¼ºåˆ¶å®Œæˆ
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("ForceCompleteTask")]
        public WebResponseContent ForceCompleteTask (int taskNum)
        {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -54,6 +54,7 @@
        private readonly ILocationInfoRepository _locationInfoRepository;
        private readonly IMapper _mapper;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly ITaskRepository _taskRepository;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
            {
@@ -71,7 +72,7 @@
        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;
@@ -79,6 +80,7 @@
            _mapper = mapper;
            _locationInfoRepository = locationInfoRepository;
            _unitOfWorkManage = unitOfWorkManage;
            _taskRepository = taskRepository;
        }
        /// <summary>
@@ -678,7 +680,7 @@
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
@@ -702,6 +704,75 @@
            BaseDal.UpdateData(task);
        }
        /// <summary>
        /// ä»»åŠ¡å¼ºåˆ¶å®Œæˆ
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        public WebResponseContent ForceCompleteTask(int taskNum)
        {
            return null;
        }
        /// <summary>
        /// ä»»åŠ¡å–æ¶ˆ
        /// </summary>
        /// <param name="taskid"></param>
        /// <returns></returns>
        public WebResponseContent CancelTask(int taskid)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                //先查询任务,根据不同的任务类型做任务取消操作
                bool isAllow = false;
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskid);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务id:【{taskid}】");
                //如果是入库分自动和手动两种情况处理
                if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)
                {
                    if (task.WMSId == 0 && task.TaskState == (int)TaskInStatusEnum.InNew)//自动入库,1001-AGV请求是否允计进入,任务状态为“新建入库任务200”之前可以取消
                    {
                        isAllow = true;
                        task.TaskState = (int)TaskInStatusEnum.InCancel;
                    }
                    else if (task.WMSId == 1 && task.TaskState == (int)TaskInStatusEnum.AGV_InExecuting)//手动入库,3001-AGV放货完成,任务状态为“AGV入库执行中210”之前可以取消
                    {
                        isAllow = true;
                        task.TaskState = (int)TaskInStatusEnum.InCancel;
                    }
                }
                else//其他任务,任务状态“新建出库任务”之前,才可以取消
                {
                    if (task.TaskState == (int)TaskOutStatusEnum.OutNew)
                    {
                        isAllow = true;
                        task.TaskState = (int)TaskOutStatusEnum.OutCancel;
                    }
                }
                if (isAllow)//如果允计取消
                {
                    //更新状态为任务取消
                    UpdateTaskStatus(task.TaskId, task.TaskState);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"手动任务取消");
                    content = WebResponseContent.Instance.OK("取消成功!");
                    //同步回传WMS
                }
                else
                {
                    content = WebResponseContent.Instance.OK("该任务目前状态不充许取消!");
                }
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// æ›´æ–°ä»»åŠ¡çŠ¶æ€ä¿¡æ¯å’Œæ–°çš„ä»»åŠ¡å·ï¼ˆ1001,3001时一样任务号)