payne
2024-04-24 b8055e2fb3c84d32f01c2f6dc4d8bde4536c6f04
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -45,9 +45,8 @@
            _wmsMaterialCustomerRep = wmsMaterialCustomerRep;
            _wmsSubstituteGoodRep = wmsSubstituteGoodRep;
        }
        /// <summary>
        /// 分页查询物料信息表
        /// 分页查询物料信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -55,7 +54,7 @@
        public async Task<PageResult<WmsMaterialOutput>> Page([FromQuery] WmsMaterialSearch input)
        {
            var wmsMaterials = await _wmsMaterialRep.DetachedEntities
                                     .Where(!string.IsNullOrEmpty(input.MaterialName), u => EF.Functions.Like(u.MaterialName, $"%{input.MaterialName.Trim()}%"))
                                     .Where(!string.IsNullOrEmpty(input.MaterialName), u => u.MaterialName == input.MaterialName)
                                     .Where(!string.IsNullOrEmpty(input.MaterialCode), u => u.MaterialCode == input.MaterialCode)
                                     .Where(!string.IsNullOrEmpty(input.ErpCode), u => u.ErpCode == input.ErpCode)
                                     .Where(!string.IsNullOrEmpty(input.MaterialTypeName), u => u.MaterialTypeName == input.MaterialTypeName)
@@ -63,7 +62,7 @@
                                     .Where(input.MaterialType != null, u => u.MaterialType == input.MaterialType)
                                     .Where(!string.IsNullOrEmpty(input.MaterialGroup), u => u.MaterialGroup == input.MaterialGroup)
                                     .Where(!string.IsNullOrEmpty(input.ABCClassName), u => u.ABCClassName == input.ABCClassName)
                                     //.Where(input.ABCClass != null, u => u.ABCClass == input.ABCClass)
                                     .Where(input.ABCClass != null, u => u.ABCClass == input.ABCClass)
                                     .Where(!string.IsNullOrEmpty(input.MaterialSpec), u => u.MaterialSpec == input.MaterialSpec)
                                     .Where(!string.IsNullOrEmpty(input.InPlaceCode), u => u.InPlaceCode == input.InPlaceCode)
                                     .Where(!string.IsNullOrEmpty(input.MaterialUnit), u => u.MaterialUnit == input.MaterialUnit)
@@ -87,10 +86,10 @@
        }
        /// <summary>
        /// 不分页查询物料信息表列表
        /// 不分页查询物料信息列表
        /// </summary>
        /// <param name="input">物料信息表查询参数</param>
        /// <returns>(物料信息表)实例列表</returns>
        /// <param name="input">物料信息查询参数</param>
        /// <returns>(物料信息)实例列表</returns>
        [HttpGet("WmsMaterial/listNonPage")]
        public async Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input)
        {
@@ -120,7 +119,7 @@
            var pCreatedUserName = input.CreatedUserName?.Trim() ?? "";
            var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
            var wmsMaterials = await _wmsMaterialRep.DetachedEntities
                .Where(!string.IsNullOrEmpty(pMaterialName), u => EF.Functions.Like(u.MaterialName, $"%{pMaterialName}%"))
                .Where(!string.IsNullOrEmpty(pMaterialName), u => u.MaterialName == pMaterialName)
                .Where(!string.IsNullOrEmpty(pMaterialCode), u => u.MaterialCode == pMaterialCode)
                .Where(!string.IsNullOrEmpty(pErpCode), u => u.ErpCode == pErpCode)
                .Where(!string.IsNullOrEmpty(pMaterialTypeName), u => u.MaterialTypeName == pMaterialTypeName)
@@ -128,7 +127,7 @@
                .Where(pMaterialType != null, u => u.MaterialType == pMaterialType)
                .Where(!string.IsNullOrEmpty(pMaterialGroup), u => u.MaterialGroup == pMaterialGroup)
                .Where(!string.IsNullOrEmpty(pABCClassName), u => u.ABCClassName == pABCClassName)
                //.Where(pABCClass != null, u => u.ABCClass == pABCClass)
                .Where(pABCClass != null, u => u.ABCClass == pABCClass)
                .Where(!string.IsNullOrEmpty(pMaterialSpec), u => u.MaterialSpec == pMaterialSpec)
                .Where(!string.IsNullOrEmpty(pInPlaceCode), u => u.InPlaceCode == pInPlaceCode)
                .Where(!string.IsNullOrEmpty(pMaterialUnit), u => u.MaterialUnit == pMaterialUnit)
@@ -152,7 +151,7 @@
        }
         /// <summary>
        /// 获取物料信息表
        /// 获取物料信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -163,7 +162,7 @@
        }
        /// <summary>
        /// 获取物料信息表列表
        /// 获取物料信息列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -228,13 +227,18 @@
            await _wmsMaterialRep.InsertAsync(wmsMaterial);
            if (materialCustomerList?.Count > 0)
            {
            await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
            }
            if (substituteGoodList?.Count > 0)
            {
            await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
            }
        }
        /// <summary>
        /// 删除物料信息表
        /// 删除物料信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -247,7 +251,7 @@
        }
        /// <summary>
        /// 更新物料信息表
        /// 更新物料信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -272,7 +276,7 @@
        #region 导入
        /// <summary>
        /// Excel模板导入物料信息表功能
        /// Excel模板导入物料信息功能
        /// </summary>
        /// <param name="file">Excel模板文件</param>
        /// <returns>导入的记录数</returns>
@@ -405,19 +409,23 @@
                          {
                                addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
                           }
                if (string.IsNullOrEmpty(_MaterialType))
                {
                    throw Oops.Oh($"第{index}行[物料类型]{_MaterialType}不能为空!");
                }
                          if(!string.IsNullOrEmpty(_MaterialType))
                          {
                              if (!int.TryParse(_MaterialType, out int outMaterialType)&&!string.IsNullOrEmpty(_MaterialType))
                    System.Int32 enumMaterialType = default(System.Int32);
                    if (!Enum.TryParse<System.Int32>(_MaterialType, out enumMaterialType) && !string.IsNullOrEmpty(_MaterialType))
                              {
                                 throw Oops.Oh($"第{index}行[物料类型]{_MaterialType}值不正确!");
                              }
                              if (outMaterialType <= 0&&!string.IsNullOrEmpty(_MaterialType))
                              {
                                 throw Oops.Oh($"第{index}行[物料类型]{_MaterialType}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.MaterialType = outMaterialType;
                        addItem.MaterialType = enumMaterialType;
                              }
                          
                          }
@@ -431,17 +439,14 @@
                           }
                          if(!string.IsNullOrEmpty(_ABCClass))
                          {
                              if (!int.TryParse(_ABCClass, out int outABCClass)&&!string.IsNullOrEmpty(_ABCClass))
                    Admin.NET.Core.ABCClassEnum enumABCClass = default(Admin.NET.Core.ABCClassEnum);
                    if (!Enum.TryParse < Admin.NET.Core.ABCClassEnum > (_ABCClass, out enumABCClass)&& !string.IsNullOrEmpty(_ABCClass))
                              {
                                 throw Oops.Oh($"第{index}行[ABC分类]{_ABCClass}值不正确!");
                              }
                              if (outABCClass <= 0&&!string.IsNullOrEmpty(_ABCClass))
                    } else
                              {
                                 throw Oops.Oh($"第{index}行[ABC分类]{_ABCClass}值不能小于等于0!");
                              }
                              else
                              {
                                // addItem.ABCClass = outABCClass;
                        addItem.ABCClass = enumABCClass;
                              }
                          
                          }
@@ -579,7 +584,7 @@
        }
        /// <summary>
        /// 根据版本下载物料信息表的Excel导入模板
        /// 根据版本下载物料信息的Excel导入模板
        /// </summary>
        /// <param name="version">模板版本</param>
        /// <returns>下载的模板文件</returns>
@@ -587,7 +592,7 @@
        public IActionResult DownloadExcelTemplate([FromQuery] string version)
        {
            string _path = TemplateConst.EXCEL_TEMPLATEFILE_导入模版路径 + $"\\WmsMaterial{TemplateConst.EXCEL_TEMPLATEFILE_导入模版名称后缀}.xlsx";
            var fileName = HttpUtility.UrlEncode($"导入模板(物料信息表).xlsx", Encoding.GetEncoding("UTF-8"));
            var fileName = HttpUtility.UrlEncode($"导入模板(物料信息).xlsx", Encoding.GetEncoding("UTF-8"));
            return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
        }