From 6a738089d6471d048c32ce7f3dcbd15c935ada79 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 14 六月 2025 14:49:42 +0800 Subject: [PATCH] Merge branch 'master' into wxw --- Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs | 54 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 49 insertions(+), 5 deletions(-) diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs index 0c91047..7aa3764 100644 --- a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs +++ b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs @@ -1,4 +1,6 @@ 锘� +using Admin.NET.Core.Service; + namespace WCS.Application; /// <summary> @@ -8,9 +10,11 @@ public class WcsPlcService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<WcsPlc> _wcsPlcRep; - public WcsPlcService(SqlSugarRepository<WcsPlc> wcsPlcRep) + private readonly SysCacheService _sysCacheService; + public WcsPlcService(SqlSugarRepository<WcsPlc> wcsPlcRep, SysCacheService sysCacheService) { _wcsPlcRep = wcsPlcRep; + _sysCacheService = sysCacheService; } /// <summary> @@ -26,11 +30,12 @@ input.SearchKey = input.SearchKey?.Trim(); var query = _wcsPlcRep.AsQueryable() .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => - u.IP.Contains(input.SearchKey) + u.IP.Contains(input.SearchKey) && u.Text.Contains(input.SearchKey) ) .WhereIF(input.PLCType.HasValue, u => u.PLCType == input.PLCType) .WhereIF(!string.IsNullOrWhiteSpace(input.IP), u => u.IP.Contains(input.IP.Trim())) .WhereIF(input.Type.HasValue, u => u.Type == input.Type) + .WhereIF(input.Enable.HasValue, u => u.Enable == input.Enable) .Select<WcsPlcOutput>(); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } @@ -102,9 +107,48 @@ [DisplayName("鑾峰彇PLC鍒楄〃")] public async Task<List<WcsPlcOutput>> List([FromQuery] PageWcsPlcInput input) { - return await _wcsPlcRep.AsQueryable().Select<WcsPlcOutput>().ToListAsync(); + return await _wcsPlcRep.AsQueryable().WhereIF(input.Type != null, s => s.Type == input.Type).Select<WcsPlcOutput>().ToListAsync(); } - - + /// <summary> + /// 鑾峰彇PLC杩炴帴鐘舵�佸拰鏈嶅姟鐘舵�� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet] + [ApiDescriptionSettings(Name = "ListStatus")] + [DisplayName("鑾峰彇PLC杩炴帴鐘舵��")] + public async Task<dynamic> ListStatus([FromQuery] PageWcsPlcInput input) + { + var listPlc = await _wcsPlcRep.AsQueryable() + .Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine) + .ToListAsync(); + foreach (var modPlc in listPlc) + { + if (_sysCacheService.ExistKey("PLCCONN:" + modPlc.Id)) + { + var cachePlc = _sysCacheService.Get<WcsPlc>("PLCCONN:" + modPlc.Id); + modPlc.IsConn = cachePlc.IsConn; + } + else + { + modPlc.IsConn = false; + } + } + //鏈嶅姟鐘舵�� + var modService = new { PLCTaskAction.boRunningState, PLCTaskAction.boOffline, PLCTaskAction.boRefresh, PLCTaskAction.boDemo, PLCTaskAction.boDrumReversal, PLCTaskAction.boOutLock, PLCTaskAction.boEnterLock }; + return new { listPlc, modService }; + } + /// <summary> + /// 鑾峰彇浣嶇疆淇℃伅 + /// </summary> + /// <returns></returns> + [HttpGet] + [ApiDescriptionSettings(Name = "ListPosition")] + [DisplayName("鑾峰彇浣嶇疆淇℃伅")] + public List<PlcPositionInfo> ListPosition() + { + var list = PLCTaskAction.listPositionInfo.ToList(); + return list; + } } -- Gitblit v1.8.0