From bdd84cc48ba7b2527584c44d174da8e7d20c5375 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期三, 18 九月 2024 16:37:13 +0800
Subject: [PATCH] 增加对申请入库时对平库库位的校验

---
 Wms/WMS.BLL/LogServer/OperationSysServer.cs |  110 ++++++++++++++++++++++++------------------------------
 1 files changed, 49 insertions(+), 61 deletions(-)

diff --git a/Wms/WMS.BLL/LogServer/OperationSysServer.cs b/Wms/WMS.BLL/LogServer/OperationSysServer.cs
index abbf1fa..96b053a 100644
--- a/Wms/WMS.BLL/LogServer/OperationSysServer.cs
+++ b/Wms/WMS.BLL/LogServer/OperationSysServer.cs
@@ -6,7 +6,9 @@
 using System.Threading.Tasks;
 using AutoMapper;
 using Model.ModelDto.LogDto;
+using Model.ModelVm.LogVm;
 using SqlSugar;
+using Utility;
 using WMS.DAL;
 using WMS.Entity.Context;
 using WMS.Entity.LogEntity;
@@ -21,67 +23,18 @@
         private readonly IOperationSysRepository _operation;
         private readonly IMapper _mapper;
         private static readonly SqlSugarScope Db = DataContext.Db;
+        private readonly UserManager _userManager;
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="operation">鏃ュ織</param>
         /// <param name="mapper">automapper</param>
-        public OperationSysServer(IOperationSysRepository operation, IMapper mapper) : base(Db)
+        public OperationSysServer(IOperationSysRepository operation, IMapper mapper, UserManager userManager) : base(Db)
         {
             _operation = operation; //鏃ュ織
             _mapper = mapper; //automapper
+            _userManager = userManager;
         }
-
-
-        ///// <summary>
-        ///// 鏌ヨ鎿嶄綔鏃ュ織
-        ///// </summary>
-        ///// <param name="menuName">鑿滃崟鍚嶇О</param>
-        ///// <param name="type">绫诲瀷</param>
-        ///// <param name="msg">鍐呭</param>
-        ///// <param name="startTime">寮�濮嬫棩鏈�</param>
-        ///// <param name="endTime">缁撴潫鏃ユ湡</param>
-        ///// <param name="page"></param>
-        ///// <param name="limit"></param>
-        ///// <param name="count"></param>
-        ///// <returns></returns>
-        //public List<OperationDto> GetOperationSysList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count)
-        //{
-        //    try
-        //    {
-        //        Expression<Func<LogOperationSys, bool>> item = Expressionable.Create<LogOperationSys>()
-        //            .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim()))
-        //            .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
-        //            .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim()))
-        //            .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime))
-        //            .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(startTime).AddDays(1))
-        //            .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
-        //        var data = GetAllWhereAsync(item)
-        //            .Includes(x => x.TypeInfo)
-        //            .Includes(x => x.CreateUserInfo)
-        //            .Includes(x => x.UpdateUserInfo).ToList();
-        //        count = data.Count;
-        //        return data.Select(m => new OperationDto()
-        //        {
-        //            Id = m.Id,
-        //            ParentNo = m.ParentNo,
-        //            MenuNo = m.MenuNo,
-        //            MenuName = m.MenuName,
-        //            FkNo = m.FkNo,
-        //            Type = m.TypeInfo == null ? "" : m.TypeInfo.DictName,
-        //            Msg = m.Msg,
-        //            CreateTime = m.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
-        //            CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.UserName,
-        //            UpdateTime = m.UpdateTime == null ? "" : ((DateTime)m.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
-        //            UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.UserName
-        //        }).ToList();
-        //    }
-        //    catch (Exception e)
-        //    {
-        //        throw new Exception(e.Message);
-        //    }
-        //}
 
         /// <summary>
         /// 娣诲姞鎿嶄綔鏃ュ織
@@ -133,10 +86,25 @@
         /// <param name="menuNo">鑿滃崟鍙�</param>
         /// <param name="parentNo">妯″潡鍙�</param>
         /// <returns></returns>
-        public List<OperationDto> GetSysOperationList(string menuName, string type, string msg, string menuNo, string parentNo)
+        public async Task<SqlSugarPagedList> GetSysOperationList(GetOperationVm model)
         {
-            List<OperationDto> operationlist = _operation.GetSysOperationList(menuName, type, msg, menuNo, parentNo);
-            return operationlist;
+            return await Db.Queryable<LogOperationSys>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .LeftJoin<SysFunctionMenu>((a, b, c) => a.ParentNo == c.MenuNo)
+                           .LeftJoin<SysDictionary>((a, b, c, d) => SqlFunc.ToInt32(a.Type) == d.Id)
+                           .Where(a => a.IsDel == "0")
+                           .WhereIF(!string.IsNullOrEmpty(model.MenuName), a => a.MenuName.Contains(model.MenuName))
+                           .WhereIF(!string.IsNullOrEmpty(model.Type), a => a.Type == model.Type)
+                           .WhereIF(!string.IsNullOrEmpty(model.Msg), a => a.Msg.Contains(model.Msg))
+                           .WhereIF(!string.IsNullOrEmpty(model.MenuNo), a => a.MenuNo == model.MenuNo)
+                           .Where((a, b, c, d) => a.ParentNo == SqlFunc.Subqueryable<SysFunctionMenu>().Where(e => e.IsDel == "0" && e.MenuName == model.ParentNo).Select(e => e.MenuNo))
+                           .Select<OperationDto>((a, b, c, d) => new OperationDto()
+                           {
+                               Id = a.Id,
+                               CreateUserName = b.RealName,
+                               TypeName = d.DictName,
+                           }, true)
+                           .ToPagedListAsync(model.Page, model.Limit);
         }
 
         /// <summary>
@@ -154,8 +122,8 @@
             //鎹曡幏寮傚父
             try
             {
-                var parentNo = _operation.GetMenuList(parentName).MenuNo;
-                var menuNo = _operation.GetMenuList(menuName).MenuNo;
+                var parentNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == parentName && s.IsDel == "0"))?.MenuNo;
+                var menuNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == menuName && s.IsDel == "0"))?.MenuNo;
                 int i = await _operation.InsertOperation(parentNo, menuNo, parentName + "-" + menuName, fkNo, type, msg, createuser);
                 return i;
             }
@@ -165,16 +133,36 @@
                 throw new Exception("鏂板鎿嶄綔鏃ュ織寮傚父", ex);
             }
         }
-
+        /// <summary>
+        /// 鏂板绯荤粺鎿嶄綔鏃ュ織
+        /// </summary>
+        /// <param name="parentName">妯″潡鍙�</param>
+        /// <param name="menuName">鑿滃崟鍙�</param>
+        /// <param name="fkNo">鏁版嵁缂栧彿</param>
+        /// <param name="type">鎿嶄綔绫诲瀷</param>
+        /// <param name="msg">鎿嶄綔鍐呭</param>
+        /// <param name="createuser">鍒涘缓浜�</param>
+        /// <returns></returns>
+        public async Task<int> InsertOperation(OperationInputVm input)
+        {
+            input.ParentNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == input.ParentName && s.IsDel == "0"))?.MenuNo;
+            input.MenuNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == input.MenuName && s.IsDel == "0"))?.MenuNo;
+            input.Type = (await Db.Queryable<SysDictionary>().FirstAsync(s => s.DictName == input.TypeName && s.IsDel == "0"))?.Id.ToString();
+            input.CreateUser = _userManager.UserId;
+            input.CreateTime = DateTime.Now;
+            return await Db.Insertable<LogOperationSys>(input).ExecuteCommandAsync();
+        }
         /// <summary>
         /// 鑾峰彇绫诲瀷鑿滃崟
         /// </summary>
         /// <param name="dicName">瀛楀吀鍚嶇О</param>
         /// <returns></returns>
-        public List<SysDictionary> GetDicTypeList(string dicName)
+        public async Task<List<SysDictionary>> GetDicTypeList(string dicName)
         {
-            List<SysDictionary> diclist = _operation.GetDicTypeList( dicName);
-            return diclist;
+            return await Db.Queryable<SysDictionary>()
+                           .Where(s => s.IsDel == "0")
+                           .Where(s => s.ParentNo == SqlFunc.Subqueryable<SysDictionary>().Where(c => c.DictName == dicName).Select(c => c.DictNo))
+                           .ToListAsync();
         }
     }
 }

--
Gitblit v1.8.0