1
dengjunjie
3 天以前 fbc6fae6c793220d0b67ac603ce9bbf22837de79
1
已删除2个文件
已修改5个文件
已添加3个文件
282 ■■■■■ 文件已修改
项目代码/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/90edce4e-5c7d-43a1-a1ca-a45f82992279.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bb49972a-b044-4a21-ac51-b32604fe6d49.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f14b15c4-d0de-4059-a7fd-8efd859d0da6.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js
@@ -25,19 +25,35 @@
            let ManualBtn = this.buttons.find(x => x.value == 'Manual');
            if (ManualBtn) {
                ManualBtn.data = [
                    // {
                    //     name: '完成',
                    //     icon: 'el-icon-check',
                    //     onClick: () => {
                    //         params.Extra = 1
                    //         this.Manual(params, "完成")
                    //     }
                    // },
                    {
                        name: '取消',
                        icon: 'el-icon-delete',
                        name: '重新下发堆垛机任务',
                        icon: 'el-icon-check',
                        onClick: () => {
                            params.Extra = 0
                            this.Manual(params, "重新下发堆垛机")
                        }
                    },
                    {
                        name: '完成堆垛机任务',
                        icon: 'el-icon-check',
                        onClick: () => {
                            params.Extra = 1
                            this.Manual(params, "完成堆垛机")
                        }
                    },
                    {
                        name: '完成任务',
                        icon: 'el-icon-check',
                        onClick: () => {
                            params.Extra = 2
                            this.Manual(params, "完成")
                        }
                    },
                    {
                        name: '取消任务',
                        icon: 'el-icon-delete',
                        onClick: () => {
                            params.Extra = 3
                            this.Manual(params, "取消")
                        }
                    }
@@ -73,6 +89,7 @@
        Manual(params, Remark) {
            let rows = this.$refs.table.getSelected();
            if (rows.length == 0) return this.$error("请选择任务!");
            if (rows.length > 1) return this.$error("只可选择一条任务!");
            params.DelKeys = rows.map(x => {
                return x[this.table.key];
            });
@@ -85,7 +102,7 @@
                showClose: true,//是否显示右上角关闭按钮
                type: "warning",//提示类型 success:成功/info:信息/warning:警告/error:报错
            }).then(() => {
                this.http.post("api/Task/ManualTask", params, "正在" + Remark + "任务....").then(x => {
                this.http.post("api/Task/ManualTask?TaskId="+params.DelKeys+"&TaskType="+params.Extra, {}, "正在" + Remark + "任务....").then(x => {
                    if (!x.status) return this.$error(x.message);
                    this.$success(Remark + "任务成功!");
                    this.refresh();
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.vsidx
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/90edce4e-5c7d-43a1-a1ca-a45f82992279.vsidx
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bb49972a-b044-4a21-ac51-b32604fe6d49.vsidx
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f14b15c4-d0de-4059-a7fd-8efd859d0da6.vsidx
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_Common.TaskEnum
{
    public enum ManualTaskEnum
    {
        /// <summary>
        /// é‡æ–°ä¸‹å‘堆垛机任务
        /// </summary>
        SCTaskSend,
        /// <summary>
        /// å®Œæˆå †åž›æœºä»»åŠ¡
        /// </summary>
        SCTaskCompleted,
        /// <summary>
        /// å®Œæˆ
        /// </summary>
        Completed,
        /// <summary>
        /// å–消
        /// </summary>
        Cancel
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -282,6 +282,7 @@
        /// <returns></returns>
        WebResponseContent AGVUpdateTaskState(AGVUpdateTaskDTO saveModel);
        WebResponseContent OutTaskFinish(string address);
        WebResponseContent ManualTask(int TaskId, int TaskType);
        WebResponseContent ManualTask(SaveModel saveModel);
        WebResponseContent ModifyBarcode(WMSTaskDTO taskDTO);
    }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -33,9 +33,9 @@
        [HttpPost, Route("ManualTask"), AllowAnonymous]
        public WebResponseContent ManualTask([FromBody] SaveModel saveModel)
        public WebResponseContent ManualTask(int TaskId, int TaskType)
        {
            return Service.ManualTask(saveModel);
            return Service.ManualTask(TaskId, TaskType);
        }
        [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -6,7 +6,7 @@
<Project>
  <PropertyGroup>
    <_PublishTargetUrl>E:\IISText\芜湖三一\WCS</_PublishTargetUrl>
    <History>True|2025-06-17T07:08:30.3988621Z;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
    <History>True|2025-06-19T09:43:29.0660951Z;True|2025-06-19T15:33:15.5169520+08:00;True|2025-06-17T15:08:30.3988621+08:00;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs
@@ -7,12 +7,220 @@
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_TaskInfoService
{
    public partial class TaskService
    {
        public WebResponseContent ManualTask(int TaskId, int TaskType)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var Task = BaseDal.QueryFirst(x => x.TaskId == TaskId);
                if (Task == null) throw new Exception("未找到任务信息");
                switch ((ManualTaskEnum)TaskType)
                {
                    case ManualTaskEnum.SCTaskSend:
                        content = SCTaskSend(Task);
                        break;
                    case ManualTaskEnum.SCTaskCompleted:
                        content = SCTaskCompleted(Task);
                        break;
                    case ManualTaskEnum.Completed:
                        content = Completed(Task);
                        break;
                    case ManualTaskEnum.Cancel:
                        content = Cancel(Task);
                        break;
                    default:
                        break;
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// é‡æ–°ä¸‹å‘堆垛机任务
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        public WebResponseContent SCTaskSend(Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (TaskInboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机入库执行中,不可重新下发");
                    task.TaskState = TaskInStatusEnum.Line_InFinish.ObjToInt();
                    content = UpdateData(task);
                }
                else if (TaskOutboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机出库执行中,不可重新下发");
                    task.TaskState = TaskOutStatusEnum.Car_OutFinish.ObjToInt();
                    content = UpdateData(task);
                }
                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
                {
                    if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移库执行中,不可重新下发");
                    task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt();
                    content = UpdateData(task);
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
                {
                    if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移车执行中,不可重新下发");
                    task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt();
                    content = UpdateData(task);
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
                {
                    if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移车执行中,不可重新下发");
                    task.TaskState = CarChargingTaskEnum.CarCharging_Finish.ObjToInt();
                    content = UpdateData(task);
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// å®Œæˆå †åž›æœºä»»åŠ¡
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        public WebResponseContent SCTaskCompleted(Dt_Task task)
        {
            try
            {
                if (TaskInboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机入库执行中");
                }
                else if (TaskOutboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机出库执行中");
                }
                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
                {
                    if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移库执行中");
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
                {
                    if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移车执行中");
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
                {
                    if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
                        throw new Exception("任务状态不等于堆垛机移车执行中");
                }
                return StackCraneTaskCompleted(task.TaskNum);
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// å®Œæˆä»»åŠ¡
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        public WebResponseContent Completed(Dt_Task task)
        {
            try
            {
                if (TaskInboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState < TaskInStatusEnum.SC_InFinish.ObjToInt())
                    {
                        task.TaskState = TaskInStatusEnum.SC_InExecuting.ObjToInt();
                        UpdateData(task);
                        StackCraneTaskCompleted(task.TaskNum);
                    }
                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
                }
                else if (TaskOutboundTypes.Contains(task.TaskType))
                {
                    if (task.TaskState < TaskOutStatusEnum.SC_OutFinish.ObjToInt())
                    {
                        task.TaskState = TaskOutStatusEnum.SC_OutExecuting.ObjToInt();
                        UpdateData(task);
                        StackCraneTaskCompleted(task.TaskNum);
                    }
                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
                }
                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
                {
                    if (task.TaskState < TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt())
                    {
                        task.TaskState = TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt();
                        UpdateData(task);
                        StackCraneTaskCompleted(task.TaskNum);
                    }
                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
                {
                    task.TaskState = TaskCarStatusEnum.SC_CarFinish.ObjToInt();
                    UpdateData(task);
                }
                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
                {
                    task.TaskState = CarChargingTaskEnum.CarChargingSC_CarFinish.ObjToInt();
                    UpdateData(task);
                }
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// å–消任务
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        public WebResponseContent Cancel(Dt_Task task)
        {
            try
            {
                if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() || task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
                    AddTask_Hty(task, TaskOperateTypeEnum.ManualDeletion);
                if (!TaskInboundTypes.Contains(task.TaskType))
                    throw new Exception("无权限");
                if (task.TaskState > TaskInStatusEnum.Line_InExecuting.ObjToInt() && !string.IsNullOrEmpty(task.TargetAddress))
                    throw new Exception("已分配目标地址,不可取消");
                task.TaskState = TaskInStatusEnum.InCancel.ObjToInt();
                BaseDal.UpdateData(task);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// äººå·¥æ“ä½œä»»åŠ¡
        /// 1:完成;2:取消