wanshenmean
2025-04-10 62b606314f8530c4e42d98ad7ef9c6e9eceb00d8
线体实盘空盘添加任务
已修改3个文件
192 ■■■■■ 文件已修改
.gitignore 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/负极叫料.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 171 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -286,3 +286,7 @@
/代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db
/代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/DesignTimeBuild/.dtbcache.v2
/代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/v17/DocumentLayout.backup.json
代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/CopilotIndices/17.13.444.19527/CodeChunks.db-shm
代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/CopilotIndices/17.13.444.19527/CodeChunks.db-wal
代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm
代码管理/信号传递/WIDESEA_WCSServer/.vs/WIDESEA_WCSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/¸º¼«½ÐÁÏ.vue
@@ -92,23 +92,6 @@
                }
            },
            submit(cb) {
                this.$t.message.loading();
                let formDataParam = {
                    current: this.current,
                    size: this.size
                };
                // ä½¿ç”¨åˆ›æ™ºå®Œæ•´æŽ¥å£
                this.$u.post('http://192.168.31.240:9090/makerwit/selectKHWareType', null).then(res => {
                    console.log(res);
                    this.$t.message.closeLoading();
                    cb && cb();
                    if (cb != null) this.listData = [];
                    this.listData = [...this.listData, ...res.data];
                    console.log(this.listData);
                }).catch((err) => {
                    this.$t.message.toast(err.message);
                });
            },
                uni.getStorage({
                    key: 'storage_key_ipAddress',
                    success: (res) => {
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -1,4 +1,5 @@
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
/*----------------------------------------------------------------
 * å‘½åç©ºé—´ï¼šWIDESEAWCS_Tasks.ConveyorLineJob
 * åˆ›å»ºè€…:胡童庆
@@ -11,8 +12,9 @@
 * ä¿®æ”¹æ—¶é—´ï¼š
 * ç‰ˆæœ¬ï¼šV1.0.1
 * ä¿®æ”¹è¯´æ˜Žï¼š
 *
 *
 *----------------------------------------------------------------*/
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using AutoMapper;
@@ -71,57 +73,22 @@
                // å®šä¹‰çº¿ä½“实盘入库请求的地址和任务类型
                var requests = new Dictionary<string, string>
                {
                    { "DB1002.293.0", "ZJXL-WLX002" },
                    { "DB1002.1093.0", "ZJXL-WLX002" },
                    { "DB1002.1493.0", "FJXL-WLX002" }
                };
                foreach (var request in requests)
                // å®šä¹‰çº¿ä½“空盘回流请求的地址和任务类型
                var requestsKP = new Dictionary<string, string>
                {
                    var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key);
                    if (!isDownRequest)
                    {
                        continue;
                    }
                    { "DB1002.1893.0", "ZJXL-KPHLX001" },
                    { "DB1002.2293.0", "FJXL-KPHLX001" }
                };
                    string fromAdd = request.Value;
                    string taskType = request.Value.Contains("ZJXL") ? "正极" : "负极";
                // å¤„理实盘入库请求
                ProcessRequests(conveyorLine, requests, "下线请求入库");
                    // æŸ¥è¯¢æ˜¯å¦å­˜åœ¨å·²ç”Ÿæˆçš„æ–°ä»»åŠ¡
                    var task = _taskRepository.QueryFirst(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InNew);
                    if (task != null)
                    {
                        ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}下线请求入库,任务已生成存在,稍后重试......");
                        continue;
                    }
                    // æŸ¥è¯¢ä»»åŠ¡ç±»åž‹å¯¹åº”çš„czTask
                    DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType);
                    if (czTask == null)
                    {
                        ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}下线请求入库,{taskType}任务不存在,稍后重试......");
                        continue;
                    }
                    // åˆ›å»ºæ–°çš„任务并添加到任务仓库
                    task = new Dt_Task()
                    {
                        TaskNum = _taskService.GetTaskNum(),
                        CreateDate = DateTime.Now,
                        Creater = "system",
                        CurrentAddress = fromAdd,
                        SourceAddress = fromAdd,
                        TaskState = (int)TaskInStatusEnum.InNew,
                        TaskType = (int)TaskInboundTypeEnum.Inbound,
                        Grade = 1,
                        PalletCode = czTask.TaskProductCode,
                        TargetAddress = czTask.TaskEndAddress,
                        Roadway = $"{taskType}AGV",
                        WMSId = czTask.Id,
                        Remark = czTask.TaskOrderNo
                    };
                    _taskRepository.AddData(task);
                    ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}下线请求入库,任务已生成,等待执行......");
                }
                // å¤„理空盘回流请求
                ProcessKpRequests(conveyorLine, requestsKP);
            }
            catch (Exception ex)
            {
@@ -139,6 +106,116 @@
            return Task.CompletedTask;
        }
        private void ProcessRequests(CommonConveyorLine conveyorLine, Dictionary<string, string> requests, string requestType)
        {
            foreach (var request in requests)
            {
                var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key);
                if (!isDownRequest)
                {
                    continue;
                }
                string fromAdd = request.Value;
                string taskType = request.Value.Contains("ZJXL") ? "正极" : "负极";
                // æŸ¥è¯¢æ˜¯å¦å­˜åœ¨å·²ç”Ÿæˆçš„æ–°ä»»åŠ¡
                var task = _taskRepository.QueryFirst(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InNew);
                if (task != null)
                {
                    ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},任务已生成存在,稍后重试......");
                    continue;
                }
                // æŸ¥è¯¢ä»»åŠ¡ç±»åž‹å¯¹åº”çš„czTask
                DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType);
                if (czTask == null)
                {
                    ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},{taskType}任务不存在,稍后重试......");
                    continue;
                }
                // åˆ›å»ºå¹¶æ·»åŠ æ–°ä»»åŠ¡åˆ°ä»»åŠ¡ä»“åº“
                task = CreateTask(fromAdd, czTask.TaskEndAddress, czTask.TaskOrderNo, czTask.TaskProductCode, taskType);
                _taskRepository.AddData(task);
                ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},任务已生成,等待执行......");
            }
        }
        private void ProcessKpRequests(CommonConveyorLine conveyorLine, Dictionary<string, string> requestsKP)
        {
            foreach (var request in requestsKP)
            {
                var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key);
                if (!isDownRequest)
                {
                    continue;
                }
                string fromAdd = request.Value;
                string taskType = request.Value.Contains("ZJXL") ? "正极" : "负极";
                // æ ¹æ®ä»»åŠ¡ç±»åž‹ç¡®å®šè¯·æ±‚åœ°å€
                (string upRequest, string gmRequest, string gmState) = GetRequestAddresses(taskType);
                var isUpRequest = conveyorLine.Communicator.Read<bool>(upRequest);
                var isGMRequest = conveyorLine.Communicator.Read<bool>(gmRequest);
                var isGMState = conveyorLine.Communicator.Read<int>(gmState);
                // æ ¹æ®æ¡ä»¶åˆ›å»ºä»»åŠ¡å¯¹è±¡
                Dt_Task task = null;
                if (isUpRequest)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "空托盘", taskType);
                }
                else if (isGMRequest && isGMState == 1)
                {
                    task = CreateTask(fromAdd, "WaitBind", "正极物流线002的上料请求", "隔膜空托盘", taskType);
                }
                // æ·»åŠ ä»»åŠ¡åˆ°ä»»åŠ¡è¡¨
                if (task != null)
                {
                    _taskRepository.AddData(task);
                }
            }
        }
        private (string upRequest, string gmRequest, string gmState) GetRequestAddresses(string taskType)
        {
            if (taskType == "正极")
            {
                // ç‰©æµçº¿002的上料请求
                return ("DB1002.93.0", "DB1002.2493.0", "DB1002.2424.0");
            }
            else
            {
                // ç‰©æµçº¿002的上料请求
                return ("DB1002.1293.0", "DB1002.2893.0", "DB1002.2824.0");
            }
        }
        // è¾…助方法:创建任务对象
        private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType)
        {
            return new Dt_Task
            {
                TaskNum = _taskService.GetTaskNum(),
                CreateDate = DateTime.Now,
                Creater = "system",
                CurrentAddress = currentAddress,
                SourceAddress = currentAddress,
                TaskState = (int)TaskInStatusEnum.InNew,
                TaskType = (int)TaskInboundTypeEnum.Inbound,
                Grade = 1,
                PalletCode = palletCode,
                TargetAddress = targetAddress,
                NextAddress = targetAddress,
                Roadway = $"{taskType}AGV",
                WMSId =  0,
                Remark = remark
            };
        }
        /// <summary>
        /// è¾“送线请求入库
@@ -262,4 +339,4 @@
            GC.SuppressFinalize(this);
        }
    }
}
}