bklLiudl
2024-02-04 2a7ba2095fede6da921e696f2667cb896ba0bd8d
Wms/Wms/Controllers/SysController.cs
@@ -20,6 +20,7 @@
using System.Security.Cryptography;
using Model.ModelDto;
using Model.ModelDto.LogDto;
using Newtonsoft.Json.Linq;
namespace Wms.Controllers
{
@@ -41,6 +42,9 @@
        private readonly IOperationSysServer _operation; //操作日志
        private readonly IExceptionServer _table; //异常处理
        private readonly IHeaderSettingsServer _headerSet;//表头设置
        private readonly IMaterialCategoryServer _category;//物料类别
        /// <summary>
        /// 构造函数
        /// </summary>
@@ -54,7 +58,8 @@
        /// <param name="dic">数据字典</param>
        /// <param name="operation">操作日志</param>
        /// <param name="table">异常处理</param>
        public SysController(IWareHouseServer wareHouseSvc, IStorageAreaServer areaSvc, IStorageRoadwayServer roadwaySvc, IStorageLocatServer locatSvc, IPalletsServer palletSvc, IPalletTrackServer palletTrackSvc, IMenuServer menuSvc, IDictionaryServer dic, IOperationSysServer operation, IExceptionServer table, IHeaderSettingsServer headerSet)
        /// <param name="category">物料类别</param>
        public SysController(IWareHouseServer wareHouseSvc, IStorageAreaServer areaSvc, IStorageRoadwayServer roadwaySvc, IStorageLocatServer locatSvc, IPalletsServer palletSvc, IPalletTrackServer palletTrackSvc, IMenuServer menuSvc, IDictionaryServer dic, IOperationSysServer operation, IExceptionServer table, IHeaderSettingsServer headerSet, IMaterialCategoryServer category)
        {
            _wareHouseSvc = wareHouseSvc; //仓库
            _areaSvc = areaSvc; //区域
@@ -69,6 +74,7 @@
            _table = table; //异常处理
            _headerSet = headerSet;//表头设置
            _category = category;//物料类别
        }
        #region 菜单管理
@@ -225,7 +231,7 @@
            }
            catch (Exception ex)
            {
                return Ok(new { data = "", code = 3,  msg = "新增菜单信息异常:"+ ex.Message });
                return Ok(new { data = "", code = 3, msg = "新增菜单信息异常:" + ex.Message });
            }
        }
@@ -1006,7 +1012,7 @@
            }
        }
        /// <summary>
        /// 添加储位信息
        /// 添加立体库储位信息
        /// </summary>
        /// <param name="model">模型</param>
        /// <returns></returns> 
@@ -1051,6 +1057,54 @@
                return Ok(new { code = 400, ErrorMsg = "数据格式错误" });
            }
        }
        /// <summary>
        /// 添加平库储位信息
        /// </summary>
        /// <param name="model">模型</param>
        /// <returns></returns>
        [AllowAnonymous]
        [HttpPost]
        public async Task<IActionResult> AddPkStorageLocat(AddLocateVm model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //获取当前登录的用户ID
                    //var claimsIdentity = this.User.Identity as ClaimsIdentity;
                    //if (claimsIdentity == null)
                    //{
                    //    return Ok(new { code = 400, ErrorMsg = "为获取到当前操作人信息" });
                    //}
                    //var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                    //if (string.IsNullOrWhiteSpace(userId))
                    //{
                    //    return Ok(new { code = 400, ErrorMsg = "为获取到当前操作人信息" });
                    //}
                    var bolls = await _locatSvc.AddPkStorageLocat(model, 1);
                    if (bolls > 0)
                    {
                        await _operation.InsertOperation("仓库设置", "储位管理", model.RoadwayNo, "添加", "添加储位信息 储位号:" + model.RoadwayNo, 1);
                        return Ok(new { code = 200, ErrorMsg = "添加成功", data = bolls });
                    }
                    else
                    {
                        return Ok(new { code = 400, ErrorMsg = "添加失败", data = "" });
                    }
                }
                catch (Exception e)
                {
                    return Ok(new { code = 400, ErrorMsg = "请联系管理员/" + e.Message });
                }
            }
            else //数据格式错误
            {
                return Ok(new { code = 400, ErrorMsg = "数据格式错误" });
            }
        }
        /// <summary>
        /// 修改储位信息
        /// </summary>
@@ -1138,7 +1192,7 @@
                        {
                            _operation.InsertOperation("仓库设置", "储位管理", storage.LocatNo, "修改", "修改储位信息 储位号:" + storage.LocatNo, Convert.ToInt32(userId));
                        }
                        return Ok(new { code = 0, msg = "编辑成功", data = "" });
                    }
                    else
@@ -1384,11 +1438,11 @@
                int uid = Convert.ToInt32(userId);
                //更改人
                tabledto.UpdateUser = uid;
                string strMesage  = _table.EditStatus(tabledto);
                string strMesage = _table.EditStatus(tabledto);
                if (strMesage == "")
                {
                    return Ok(new { code = 0, msg = "处理成功" });
                }
                }
                else
                {
                    return Ok(new { code = 1, msg = strMesage });
@@ -1444,12 +1498,13 @@
        /// <param name="wareHouseNo">仓库</param>
        /// <param name="roadway">巷道号</param>
        /// <param name="row">排</param>
        /// <param name="depth">深度</param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetStorageLocatLists(string wareHouseNo, string roadway,string row)
        public IActionResult GetStorageLocatLists(string wareHouseNo, string roadway, string row, string depth)
        {
            //获取储位信息
            List<SysStorageLocat> storagelist = _locatSvc.GetStorageLocatLists(wareHouseNo, roadway, row);
            List<SysStorageLocat> storagelist = _locatSvc.GetStorageLocatLists(wareHouseNo, roadway, row, depth);
            //获取最大层级
            int maxLayer = _locatSvc.GetMaxLayer(wareHouseNo, roadway, row);
@@ -1527,7 +1582,7 @@
        [HttpGet]
        public IActionResult GetStorageProportion1(string wareHouseNo, string roadwayNo)
        {
            List<GetLocateVm> getLocateVms = _locatSvc.GetStorageProportion1(wareHouseNo,roadwayNo);
            List<GetLocateVm> getLocateVms = _locatSvc.GetStorageProportion1(wareHouseNo, roadwayNo);
            return Ok(new
            {
                data = getLocateVms,
@@ -1580,6 +1635,277 @@
                    data = "",
                    code = 1,
                    msg = e.Message
                });
            }
        }
        #endregion
        #region 物料类别
        /// <summary>
        /// 获取物料类别信息
        /// </summary>
        /// <param name="categoryName">类别名称</param>
        /// <param name="areaNo">区域编码</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpGet]
        public IActionResult GetMaterialCategories(string categoryName, string areaNo)
        {
            try
            {
                var list = _category.GetMaterialCategories(categoryName, areaNo);
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "获取物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
        /// <summary>
        /// 获取物料类别下拉菜单信息
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpGet]
        public IActionResult GetMaterialCategories1()
        {
            try
            {
                var list = _category.GetMaterialCategories();
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "获取物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
        /// <summary>
        /// 根据Id获取物料类别信息
        /// </summary>
        /// <param name="Id">Id</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpGet]
        public IActionResult GetMaterialCategoriesById(int Id)
        {
            try
            {
                var list = _category.GetMaterialCategoriesById(Id);
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "根据Id获取物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
        /// <summary>
        /// 获取区域信息
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetStorageAreaList()
        {
            try
            {
                var bolls = _category.GetStorageAreaList();
                List<XmSelectDto> list = new List<XmSelectDto>();
                foreach (var item in bolls)
                {
                    XmSelectDto list1 = new XmSelectDto()
                    {
                        name = item.AreaName, //区域名称
                        value = item.AreaNo, //区域号
                        selected = false, //是否选中
                    };
                    list.Add(list1);
                }
                return Ok(new { code = 0, msg = "区域信息", data = bolls, list });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        /// <summary>
        /// 新增类别信息
        /// </summary>
        /// <param name="category">物料类别实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpPost]
        public IActionResult InsertMaterialCategories(SysMaterialCategory category)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                category.CreateUser = int.Parse(userId);
                var list = _category.InsertMaterialCategories(category);
                _operation.InsertOperation("基础信息", "物料类别", category.CategoryNo, "添加", "添加类别信息 类别号:" + category.CategoryNo, Convert.ToInt32(userId));
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "新增物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
        /// <summary>
        /// 编辑类别信息
        /// </summary>
        /// <param name="category">物料类别实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpPost]
        public IActionResult ExitMaterialCategories(SysMaterialCategory category)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                category.UpdateUser = int.Parse(userId);
                var list = _category.ExitMaterialCategories(category);
                _operation.InsertOperation("基础信息", "物料类别", category.CategoryNo, "编辑", "编辑类别信息 类别号:" + category.CategoryNo, Convert.ToInt32(userId));
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "编辑物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
        /// <summary>
        /// 删除类别信息
        /// </summary>
        /// <param name="category">物料类别实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpPost]
        public IActionResult DeleteMaterialCategories(MaterialCategoryDto category)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "为获取到当前操作人信息" });
                }
                category.UpdateUser = userId;
                var list = _category.DeleteMaterialCategories(category);
                _operation.InsertOperation("基础信息", "物料类别", category.CategoryNo, "删除", "删除类别信息 类别号:" + category.CategoryNo, Convert.ToInt32(userId));
                return Ok(new
                {
                    data = list,
                    code = 1,
                    msg = "删除物料类别信息成功"
                });
            }
            catch (Exception ex)
            {
                return Ok(new
                {
                    data = "",
                    code = 0,
                    msg = ex.Message
                });
            }
        }
@@ -1677,26 +2003,5 @@
        }
        #endregion
        ///// <summary>
        ///// 测试git
        ///// </summary>
        ///// <param name="MenuName"></param>
        ///// <param name="pMenuNo"></param>
        ///// <param name="MenuNo"></param>
        ///// <param name="level"></param>
        ///// <returns></returns>
        //[HttpPost]
        //public IActionResult TestGit(string MenuName, string pMenuNo, string MenuNo, string level)
        //{
        //    //查询菜单信息列表
        //    List<FunctionMenuVm> menulist = _menuSvc.GetMenuList(MenuName, pMenuNo, MenuNo, level);
        //    return Ok(new
        //    {
        //        data = menulist,
        //        code = 0,
        //        msg = "成功"
        //    });
        //}
    }
}