1
wankeda
2025-04-11 a206dda817a9f9615db1fa52e3ac193af9ac4a92
1
已修改6个文件
83 ■■■■■ 文件已修改
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/正极叫料.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/负极叫料.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/Õý¼«½ÐÁÏ.vue
@@ -153,11 +153,18 @@
                    return;
                }
                let formDataParam = {
                    dTaskId: 2,
                    productCode: productCode,
                    orderNo: orderNo,
                    number: availableQuantity > 4 ? 4 : availableQuantity,
                    inputValue: inputValue,
                dTaskId: this.generateUUID(),
                productCode: productCode,
                orderNo: orderNo,
                taskNo:2,
                number: availableQuantity > 4 ? 4 : availableQuantity,
                inputValue: inputValue,
                DTaskId: this.generateUUID(),
                ProductCode: productCode,
                OrderNo: orderNo,
                Number: availableQuantity > 4 ? 4 : availableQuantity,
                InputValue: inputValue,
                TaskType: "正极"
                    // ...其他需要传递的参数
                };
                this.$u.post('/api/PDA/AddCZTask', formDataParam).then(res => {
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/¸º¼«½ÐÁÏ.vue
@@ -159,12 +159,13 @@
                    return;
                }
                let formDataParam = {
                    dTaskId: 2,
                    dTaskId: this.generateUUID(),
                    productCode: productCode,
                    orderNo: orderNo,
                    taskNo:2,
                    number: availableQuantity > 4 ? 4 : availableQuantity,
                    inputValue: inputValue,
                    DTaskId: 2,
                    DTaskId: this.generateUUID(),
                    ProductCode: productCode,
                    OrderNo: orderNo,
                    Number: availableQuantity > 4 ? 4 : availableQuantity,
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -19,6 +19,8 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -95,6 +97,14 @@
        public string TargetAddress { get; set; }
        /// <summary>
        ///物料条码
        /// </summary>
        /// </summary>
        [ImporterHeader(Name = "物料条码")]
        [ExporterHeader(DisplayName = "物料条码")]
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "物料条码")]
        public string Barcode { get; set; }
        /// <summary>
        /// å½“前位置
        /// </summary>
        [ImporterHeader(Name = "当前位置")]
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -58,7 +58,7 @@
        }
        [HttpPost, HttpGet, Route("FinishTask"),AllowAnonymous]
        public Task<WebResponseContent> FinishTask(CZTaskFinshDto taskFinshDto)
        public Task<WebResponseContent> FinishTask([FromBody] CZTaskFinshDto taskFinshDto)
        {
            return _taskInfoService.FinishTask(taskFinshDto);
        }
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGVJob/SendTaskAGV.cs
@@ -191,24 +191,24 @@
            try
            {
                // è¯»å–任务交互和重置交互的状态
                int taskInteractive = agv.Communicator.Read<int>(taskInteractiveR); // 1表示收到
                int taskInteractiveW = agv.Communicator.Read<int>(taskInteractiveW1); // 0初始/1下发/2取消/3更改
                int resetTaskInteractiveW = agv.Communicator.Read<int>(resetTaskW);
                int resetTaskInteractiver = agv.Communicator.Read<int>(resetTaskInteractiveR);
                int taskInteractive = agv.Communicator.Read<Int16>(taskInteractiveR); // 1表示收到
                int taskInteractiveW = agv.Communicator.Read<Int16>(taskInteractiveW1); // 0初始/1下发/2取消/3更改
                int resetTaskInteractiveW = agv.Communicator.Read<Int16>(resetTaskW);
                int resetTaskInteractiver = agv.Communicator.Read<Int16>(resetTaskInteractiveR);
                // å¤„理任务交互W和重置交互W不为0的情况
                if (isTrue1 && name1 == agv.DeviceName)
                {
                    if (taskInteractiveW != 0 || resetTaskInteractiveW != 0 || taskInteractive != 0)
                    {
                        agv.Communicator.Write(resetTaskW, 1);
                        agv.Communicator.Write<UInt16>(resetTaskW, 1);
                        Task.Delay(2000).Wait();
                        resetTaskInteractiveW = agv.Communicator.Read<int>(resetTaskW);
                        resetTaskInteractiveW = agv.Communicator.Read<Int16>(resetTaskW);
                        if (resetTaskInteractiveW == 1)
                        {
                            agv.Communicator.Write(resetTaskW, 0);
                            agv.Communicator.Write(taskInteractiveW1, 0);
                            agv.Communicator.Write<UInt16>(resetTaskW, 0);
                            agv.Communicator.Write<UInt16>(taskInteractiveW1, 0);
                            Task.Delay(2000).Wait();
                        }
                        return;
@@ -220,14 +220,14 @@
                // å¦‚果重置交互R为1,则重置任务交互W
                if (resetTaskInteractiver == 1)
                {
                    agv.Communicator.Write(taskInteractiveW1, 0);
                    agv.Communicator.Write<UInt16>(taskInteractiveW1, 0);
                    for (int i = 0; i < 5; i++)
                    {
                        Task.Delay(300).Wait(); // ç”¨Task.Delay代替Thread.Sleep,以避免线程阻塞
                        int agvNumber = agv.Communicator.Read<int>(taskInteractiveW1);
                        int agvNumber = agv.Communicator.Read<Int16>(taskInteractiveW1);
                        if (agvNumber != 0)
                        {
                            agv.Communicator.Write(taskInteractiveW1, 0);
                            agv.Communicator.Write<UInt16>(taskInteractiveW1, 0);
                        }
                        else
                        {
@@ -251,7 +251,8 @@
                        // æ£€æŸ¥ä»»åŠ¡ID是否写入正确
                        string taskId = agv.Communicator.Read<string>(taskID);
                        if (taskId != agvTask.TaskNum.ToString())
                        string numberPart = taskId.Split('-')[1];
                        if (numberPart != agvTask.TaskNum.ToString())
                        {
                            throw new Exception($"给AGV写入任务失败,任务号{agvTask.TaskNum}");
                        }
@@ -260,19 +261,19 @@
                        if (string.IsNullOrEmpty(rel))
                        {
                            // å†™å…¥ä»»åŠ¡ç¡®è®¤ä¿¡å·1
                            agv.Communicator.Write(taskInteractiveW1, 1);
                            agv.Communicator.Write<UInt16>(taskInteractiveW1, 1);
                            Task.Delay(1000).Wait();
                            // è¯»å–AGV的确认信号
                            int readTask1Ok = agv.Communicator.Read<int>(taskInteractiveR);
                            int readTask1Ok = agv.Communicator.Read<Int16>(taskInteractiveR);
                            if (readTask1Ok == 1)
                            {
                                // å†™å…¥WCS的确认信号0
                                agv.Communicator.Write(taskInteractiveW1, 0);
                                agv.Communicator.Write<UInt16>(taskInteractiveW1, 0);
                                Task.Delay(2000).Wait();
                                // å†æ¬¡è¯»å–AGV的确认信号
                                int readTask0Ok = agv.Communicator.Read<int>(taskInteractiveR);
                                int readTask0Ok = agv.Communicator.Read<Int16>(taskInteractiveR);
                                if (readTask0Ok == 0)
                                {
                                    // æ›´æ–°ä»»åŠ¡çŠ¶æ€å¹¶ä¿å­˜
@@ -292,7 +293,7 @@
                            else if (readTask1Ok == 11)
                            {
                                // å¤„理任务异常情况
                                agv.Communicator.Write(taskInteractiveW1, 0);
                                agv.Communicator.Write<UInt16>(taskInteractiveW1, 0);
                                Task.Delay(2000).Wait();
                                int readTask0Error = agv.Communicator.Read<int>(taskInteractiveR);
@@ -342,7 +343,7 @@
        public static string TaskWrite(AGV client, Dt_Task agvTask, AGVJobEnum jobEnum)
        {
            List<byte> sendData = new List<byte>();
            string tmp = agvTask.TaskNum.ToString();
            string tmp = "KH-" + agvTask.TaskNum.ToString();
            List<byte> taskID = Encoding.Default.GetBytes(tmp).ToList();//任务ID
            taskID.Insert(0, 30);
            taskID.Insert(1, Convert.ToByte(tmp.Length));
@@ -377,11 +378,11 @@
            Array.Reverse(taskType);
            sendData.AddRange(taskType);
            List<byte> containerType = Encoding.Default.GetBytes(agvTask.PalletCode).ToList();
            List<byte> containerType = Encoding.Default.GetBytes(agvTask.Barcode).ToList();
            containerType.Insert(0, 30);
            containerType.Insert(1, Convert.ToByte(agvTask.PalletCode.Length));
            containerType.Insert(1, Convert.ToByte(agvTask.Barcode.Length));
            for (int i = 0; i < 30 - agvTask.PalletCode.Length; i++)
            for (int i = 0; i < 30 - agvTask.Barcode.Length; i++)
            {
                containerType.Add(0);
            }
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -52,6 +52,9 @@
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
@@ -198,11 +201,12 @@
                CurrentAddress = currentAddress,
                SourceAddress = currentAddress,
                TaskState = targetAddress != "WaitBind" ? (int)TaskInStatusEnum.InNew : (int)TaskInStatusEnum.InPending,
                TaskType = (int)TaskInboundTypeEnum.Inbound,
                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                Grade = 1,
                PalletCode = palletCode,
                TargetAddress = targetAddress,
                NextAddress = targetAddress,
                Barcode = "",
                Roadway = $"{taskType}AGV",
                WMSId = 0,
                Remark = remark