Browse Source

实现空轮缓存库的数据服务和接口功能

更新了数据库连接配置,新增多个服务和接口类,提供缓存和库存信息的获取功能,增强系统的可维护性和功能性。
林豪 左 3 weeks ago
parent
commit
a2ac4615eb

+ 65 - 0
Wms.Screen.DataService/Impl/ZhongTianKlhcDataService.cs

@@ -0,0 +1,65 @@
+using SqlSugar;
+using System.Collections.Generic;
+using Wms.Screen.DataService.Interface;
+using Wms.Screen.Dto.ZhongTian.Response.KLHC;
+using Wms.Screen.SqlSugar.ZhongTian;
+using Wms.Screen.SqlSugar.ZhongTian.KLHC;
+
+namespace Wms.Screen.DataService.Impl
+{
+    /// <summary>
+    /// 空轮缓存库data服务
+    /// </summary>
+    public class ZhongTianKlhcDataService : IZhongTianKlhcDataService
+    {
+        /// <summary>
+        /// 数据库操作对象
+        /// </summary>
+        private SqlSugarClient _db;
+
+        /// <summary>
+        /// 构造函数
+        /// </summary>
+        /// <param name="db"></param>
+        public ZhongTianKlhcDataService(SqlSugarClient db)
+        {
+            _db = db;
+        }
+
+        /// <summary>
+        /// 缓存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<BaseRBCI> GetBaseRrciList()
+        {
+            var list = _db.Queryable<BaseRBCI>().With(SqlWith.NoLock).Where(x => x.Id != 0).ToList();
+            return list;
+        }
+
+        /// <summary>
+        /// 库存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<KlhcInvInfoRes> GetBaseWarecellList()
+        {
+            var list = _db.Queryable<BaseWarecell, BillInvnow>((loc, inv) => new object[]
+                        {
+                            JoinType.Left,loc.ContGrpBarCode==inv.ContGrpBarCode,
+                        })
+                .Where((loc, inv) => loc.StateNum == 2)
+                .Select((loc, inv) => new KlhcInvInfoRes { WheelType = inv.MatCode, Number = inv.LengthQty }).ToList();
+            return list;
+        }
+
+        /// <summary>
+        /// 库存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<WCS_TaskInfo> GetWcsTaskInfoList()
+        {
+            var list = _db.Queryable<WCS_TaskInfo>()
+                .Where(x => x.Status < Dto.ZhongTian.TaskStatus.Finish).ToList();
+            return list;
+        }
+    }
+}

+ 31 - 0
Wms.Screen.DataService/Interface/IZhongTianKlhcDataService.cs

@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+using Wms.Screen.Dto.ZhongTian.Response.KLHC;
+using Wms.Screen.SqlSugar.ZhongTian;
+using Wms.Screen.SqlSugar.ZhongTian.KLHC;
+
+namespace Wms.Screen.DataService.Interface
+{
+    /// <summary>
+    /// 空轮缓存库data接口
+    /// </summary>
+    public interface IZhongTianKlhcDataService
+    {
+        /// <summary>
+        /// 缓存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<BaseRBCI> GetBaseRrciList();
+
+        /// <summary>
+        /// 库存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<KlhcInvInfoRes> GetBaseWarecellList();
+
+        /// <summary>
+        /// 空轮库存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<WCS_TaskInfo> GetWcsTaskInfoList();
+    }
+}

+ 18 - 0
Wms.Screen.Dto/ZhongTian/Response/KLHC/KlhcCellInfoRes.cs

@@ -0,0 +1,18 @@
+namespace Wms.Screen.Dto.ZhongTian.Response.KLHC
+{
+    /// <summary>
+    /// 空轮缓存库存信息返回体
+    /// </summary>
+    public class KlhcInvInfoRes
+    {
+        /// <summary>
+        /// 类型
+        /// </summary>
+        public string WheelType { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        public decimal Number { get; set; }
+    }
+}

+ 27 - 0
Wms.Screen.Dto/ZhongTian/Response/KLHC/KlhcTaskInfoRes.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Wms.Screen.Dto.ZhongTian.Response.KLHC
+{
+    /// <summary>
+    /// 空轮缓存库设备信息
+    /// </summary>
+    public class KlhcDevTaskInfoRes
+    {
+        /// <summary>
+        /// 设备号
+        /// </summary>
+        public string DeviceCode { get; set; }
+
+        /// <summary>
+        /// 状态
+        /// </summary>
+        public string State { get; set; }
+
+        /// <summary>
+        /// 任务数量
+        /// </summary>
+        public string Number { get; set; }
+    }
+}

+ 24 - 0
Wms.Screen.Service/IService/IZhongTianKlhcService.cs

@@ -0,0 +1,24 @@
+using System.Collections.Generic;
+using Wms.Screen.Dto.ZhongTian.Response.KLHC;
+using Wms.Screen.SqlSugar.ZhongTian.KLHC;
+
+namespace Wms.Screen.Service.IService
+{
+    /// <summary>
+    /// 空轮缓存库service接口
+    /// </summary>
+    public interface IZhongTianKlhcService
+    {
+        /// <summary>
+        /// 缓存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<BaseRBCI> GetBaseRrciList();
+
+        /// <summary>
+        ///  获取缓存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<KlhcInvInfoRes> GetKlhcInvInfo();
+    }
+}

+ 68 - 0
Wms.Screen.Service/Service/ZhongTianKlhcService.cs

@@ -0,0 +1,68 @@
+using AutoMapper;
+using System.Collections.Generic;
+using System.Linq;
+using Wms.Screen.DataService.Interface;
+using Wms.Screen.Dto.ZhongTian.Response.KLHC;
+using Wms.Screen.Service.IService;
+using Wms.Screen.SqlSugar.ZhongTian.KLHC;
+
+namespace Wms.Screen.Service.Service
+{
+    /// <summary>
+    /// 空轮缓存库service实现
+    /// </summary>
+    public class ZhongTianKlhcService : IZhongTianKlhcService
+    {
+        /// <summary>
+        /// 空轮缓存库数据服务
+        /// </summary>
+        private IZhongTianKlhcDataService _zhongTianSxDataService;
+
+        /// <summary>
+        /// AutoMapper对象
+        /// </summary>
+        private IMapper _Mapper;
+
+        /// <summary>
+        /// Redis客户端对象
+        /// </summary>
+        private readonly FreeRedis.RedisClient _freeRedisClient;
+
+        /// <summary>
+        /// 构造函数
+        /// </summary>
+        /// <param name="zhongTianSxDataService">空轮缓存库数据服务</param>
+        /// <param name="mapper">AutoMapper对象</param>
+        /// <param name="freeRedisClient">Redis客户端对象</param>
+        public ZhongTianKlhcService(IZhongTianKlhcDataService zhongTianSxDataService, IMapper mapper, FreeRedis.RedisClient freeRedisClient)
+        {
+            _zhongTianSxDataService = zhongTianSxDataService;
+            _Mapper = mapper;
+            _freeRedisClient = freeRedisClient;
+        }
+
+        /// <summary>
+        /// 缓存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<BaseRBCI> GetBaseRrciList()
+        {
+            return _zhongTianSxDataService.GetBaseRrciList().Select(x =>
+            {
+                x.Direction = x.Direction == "N" ? "北" : "南";
+                return x;
+            }).OrderBy(x => x.Direction).ThenBy(x => int.Parse(x.WheelType)).ToList();
+        }
+
+        /// <summary>
+        /// 库存信息
+        /// </summary>
+        /// <returns></returns>
+        public List<KlhcInvInfoRes> GetKlhcInvInfo()
+        {
+            var infos = _zhongTianSxDataService.GetBaseWarecellList().GroupBy(x => x.WheelType).Select(x => new KlhcInvInfoRes { WheelType = x.Key, Number = x.Sum(s => s.Number) }).OrderBy(x => int.Parse(x.WheelType)).ToList();
+            infos.Add(new KlhcInvInfoRes { WheelType = "总计", Number = infos.Sum(x => x.Number) });
+            return infos;
+        }
+    }
+}

+ 37 - 0
Wms.Screen.SqlSugar/ZhongTian/KLHC/BaseRBCI.cs

@@ -0,0 +1,37 @@
+using SqlSugar;
+
+namespace Wms.Screen.SqlSugar.ZhongTian.KLHC
+{
+    /// <summary>
+    ///  江景缓存信息
+    /// </summary>
+    [SugarTable("Base_RBCI")]
+    public partial class BaseRBCI : BaseModel
+    {
+        /// <summary>
+        ///  轮子类型
+        /// </summary>
+        public string WheelType { get; set; }
+
+        /// <summary>
+        ///  当前类型工字轮的缓存数量
+        /// </summary>
+        public int Number { get; set; }
+
+        /// <summary>
+        ///  方向
+        /// </summary>
+        [SugarColumn(IsNullable = true)]
+        public string Direction { get; set; }
+
+        /// <summary>
+        ///  上限警戒值
+        /// </summary>
+        public int UpperLimitWarningValue { get; set; }
+
+        /// <summary>
+        ///  下限警戒值
+        /// </summary>
+        public int LowerLimitWarningValue { get; set; }
+    }
+}

+ 66 - 0
zt.screen.api/Controllers/ZhongTianKlhcController.cs

@@ -0,0 +1,66 @@
+using AutoMapper;
+using CSRedis;
+using Microsoft.AspNetCore.Mvc;
+using Wms.Screen.Service.IService;
+using Wms.Screen.SqlSugar.ZhongTian.KLHC;
+
+namespace zt.screen.api.Controllers
+{
+    /// <summary>
+    /// 中天空轮缓存看板
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    public class ZhongTianKlhcController : ControllerBase
+    {
+        private IZhongTianKlhcService _zhongTianKlhcService;
+        private IMapper _mapper;
+        private readonly CSRedisClient _CSRedisClient;
+        private readonly FreeRedis.RedisClient _freeRedisClient;
+
+        public ZhongTianKlhcController(IZhongTianKlhcService zhongTianKlhcService, IMapper mapper, CSRedisClient cSRedisClient, FreeRedis.RedisClient freeRedisClient)
+        {
+            _zhongTianKlhcService = zhongTianKlhcService;
+            _mapper = mapper;
+            _CSRedisClient = cSRedisClient;
+
+            _freeRedisClient = freeRedisClient;
+        }
+
+        /// <summary>
+        /// 获取缓存信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public List<BaseRBCI> GetRbci()
+        {
+            return _zhongTianKlhcService.GetBaseRrciList();
+        }
+
+        /// <summary>
+        /// 获取库存信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public List<KlhcInvInfoResult> GetKlhcInvInfo()
+        {
+            var InvInfo = _zhongTianKlhcService.GetKlhcInvInfo();
+            var info = InvInfo.First(x => x.WheelType == "总计");
+            var InvInfos = InvInfo.Select(x => new KlhcInvInfoResult
+            {
+                WheelType = x.WheelType,
+                Number = x.Number,
+                Ratio = Math.Round(((x.Number / info.Number) * 100), 2),
+            }).ToList();
+            return InvInfos;
+        }
+    }
+
+    // 定义明确的返回类型
+    public class KlhcInvInfoResult
+    {
+        public string WheelType { get; set; }
+        public decimal Number { get; set; }
+        public decimal Ratio { get; set; }
+    }
+}

+ 1 - 1
zt.screen.api/appsettings.json

@@ -10,7 +10,7 @@
     "DbType": "SqlServer", //MySql SqlServer PostgreSQL Oracle Sqlite
     //"SqlServerConnectionString": "server=192.168.16.2;user id=sa;password=sa123;database=dadihaiyangwms",
     //"SqlServerConnectionString": "server=10.30.44.50;user id=bz;password=Aa123456@;database=WMS_ZT_01SX",
-    "SqlServerConnectionString": "server=10.30.44.50;user id=sa;password=P@ssw0rd;database=WMS_ZT_01PT;Max Pool Size=1000;"
+    "SqlServerConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01klhc;Encrypt=True;TrustServerCertificate=True;"
     ////////"SqlServerConnectionString": "server=127.0.0.1;user id=bz;password=123456;database=WMS_ZT_01PT;Max Pool Size=1000;"
     // "MySqlConnectionString": "server=127.0.0.1;database=bozhonwms;port=3306;uid=root;pwd=000000;charset='utf8'",
     //"PostgreSQLConnectionString": "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=wms",