From 6b2ec7bd05459ddb4ea99df00267dbfda49cbdc7 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期日, 03 八月 2025 14:11:12 +0800
Subject: [PATCH] 设备控制增加电量显示

---
 Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
index f118c60..8555912 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
@@ -11,6 +11,7 @@
 {
     private readonly SqlSugarRepository<WcsPlc> _wcsPlcRep;
     private readonly SysCacheService _sysCacheService;
+    private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
     public WcsPlcService(SqlSugarRepository<WcsPlc> wcsPlcRep, SysCacheService sysCacheService)
     {
         _wcsPlcRep = wcsPlcRep;
@@ -139,6 +140,38 @@
         var modService = new { PLCTaskAction.boRunningState, PLCTaskAction.boOffline, PLCTaskAction.boRefresh, PLCTaskAction.boDemo, PLCTaskAction.boDrumReversal, PLCTaskAction.boOutLock, PLCTaskAction.boEnterLock };
         return new { listPlc, modService };
     }
+
+    [HttpGet]
+    [ApiDescriptionSettings(Name = "GetCarDL")]
+    [DisplayName("鑾峰彇绌挎杞︾數閲�")]
+    public async Task<dynamic> GetCarDL()
+    {
+        var listPlc = await _wcsPlcRep.AsQueryable()
+            .Where(s => s.Type == PLCTypeEnum.ShuttleCar)
+            .ToListAsync();
+
+        List<Dictionary<string, string>> _dicList = new List<Dictionary<string, string>>();
+        foreach (var modPlc in listPlc)
+        {
+            var modbus = new ModbusUtil(modPlc);
+            var listPlcDevice = _db.Queryable<WcsDevice>().First(s => s.PlcId == modPlc.Id);
+            var (result, value) = modbus.GetDBValue(listPlcDevice.PosType, listPlcDevice.PlcPos);
+            if (result.IsSucceed)
+            {
+                var listPlcStation = _db.Queryable<WcsPosition>().Where(s => s.DeviceId == modPlc.Id).ToList();
+                var modCarDl = listPlcStation.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺");
+                var (resultDl, valueDl) = modbus.GetDBValue(modCarDl.PosType, modCarDl.PlcPos);
+                if (resultDl.IsSucceed)
+                {
+                    Dictionary<string, string> _dic = new Dictionary<string, string>();
+                    _dic.Add(modPlc.Text, valueDl);
+
+                    _dicList.Add(_dic);
+                }
+            }            
+        }
+        return new { _dicList };
+    }
     /// <summary>
     /// 鑾峰彇浣嶇疆淇℃伅
     /// </summary>

--
Gitblit v1.8.0