From 6c741f0281d29f2b689172f1cea8c398ca378a17 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期六, 07 九月 2024 15:57:50 +0800
Subject: [PATCH] 分拣任务新增功能增加物料选择;开发分拣码垛的绑定任务功能、结批功能

---
 Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index 8a5e853..713e769 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -1,6 +1,8 @@
 锘�
 using Admin.NET.Core.Service;
 using Elastic.Clients.Elasticsearch;
+using WCS.Application.Entity;
+using WCS.Application.Service.WcsDevice.Dto;
 
 namespace WCS.Application;
 
@@ -219,7 +221,9 @@
                     //璇诲彇plc鐨勫��
                     var modConn = PLCTaskAction.listPlcConn.FirstOrDefault(s => s != null && s.PlcId == modDevice.PlcId);
                     if (modConn == null)
-                        break;
+                    {
+                        continue;
+                    }
                     try
                     {
                         var listPosition = await _wcsDeviceRep.Context.Queryable<WcsPosition>().Where(s => s.DeviceId == modDevice.Id).ToListAsync();
@@ -229,7 +233,7 @@
                         modDevice.Wcs = Convert.ToString(wcs);
                         //浠诲姟鍙�
                         var modPositionTask = listPosition.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
-                        (result, var taskNo) = modConn.GetPlcDBValue(modPositionTask.PosType, modDevice.DbNumber, modPositionTask.PlcPos);
+                        (result, var taskNo) = modConn.GetPlcDBValue(modPositionTask.PosType, modDevice.DbNumber, modPositionTask.PlcPos, modPositionTask.StringLength);
                         modDevice.TaskNo = Convert.ToString(taskNo);
                         //浠诲姟绫诲瀷
                         var modPositionTaskType = listPosition.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
@@ -245,7 +249,7 @@
                         modDevice.EndLocatNo = Convert.ToString(endLocatNo);
                         //鎵樼洏鐮�
                         var modPositionPalletNo = listPosition.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
-                        (result, var palletNo) = modConn.GetPlcDBValue(modPositionPalletNo.PosType, modDevice.DbNumber, modPositionPalletNo.PlcPos);
+                        (result, var palletNo) = modConn.GetPlcDBValue(modPositionPalletNo.PosType, modDevice.DbNumber, modPositionPalletNo.PlcPos, modPositionPalletNo.StringLength);
                         modDevice.PalletNo = Convert.ToString(palletNo);
                     }
                     catch (Exception)
@@ -271,4 +275,53 @@
 
         return list;
     }
+
+    #region 鍒嗘嫞鐮佸灈
+    /// <summary>
+    /// 鑾峰彇鐮佸灈鏈哄櫒浜哄拰鎷嗗灈鏈哄櫒浜哄垪琛�
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "WcsPackPlcList")]
+    [DisplayName("鑾峰彇鐮佸灈鏈哄櫒浜哄拰鎷嗗灈鏈哄櫒浜哄垪琛�")]
+    public async Task<dynamic> WcsPackPlcList()
+    {
+        return await _wcsDeviceRep.Context.Queryable<WcsPlc>()
+                .Where(w => w.Type == PLCTypeEnum.RobotPalletizer || w.Type == PLCTypeEnum.StackingRobot)
+                .OrderByDescending(o => o.Type)
+                .Select(u => new
+                {
+                    id = u.Id,
+                    name = u.Text
+                }
+                ).ToListAsync();
+    }
+    /// <summary>
+    /// 鑾峰彇璁惧瀵瑰簲宸ヤ綅鍒楄〃
+    /// </summary>
+    /// <param name="entry"></param>
+    /// <returns></returns>
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "WcsPackStationPlcList")]
+    [DisplayName("鑾峰彇璁惧瀵瑰簲宸ヤ綅鍒楄〃")]
+    public async Task<List<WcsDeviceTaskOrderDto>> WcsPackStationPlcList([FromQuery]WcsDeviceBaseInput entry)
+    {       
+        return await _wcsDeviceRep.Context.Queryable<WcsDevice>()
+                .LeftJoin<WcsCheckTask>((device, task) => device.StationNum == task.Port)
+                .Where((device, task) => device.PlcId == entry.PlcId)
+                .OrderBy((device, task) => device.CreateTime)
+                .Select((device, task) => new WcsDeviceTaskOrderDto()
+                {
+                    Id=device.Id,
+                    Text=device.Text,
+                    OrderNo=task.OrderNo,
+                    LotNo=task.LotNo,
+                    SkuNo=task.SkuNo,
+                    SkuName=task.SkuName,
+                    Status=task.Status,
+                    Qty=task.Qty
+                })
+                .ToListAsync();
+    }
+    #endregion
 }

--
Gitblit v1.8.0