using Microsoft.Extensions.Logging; using SlnMesnac.Model.domain; using SlnMesnac.Common; using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Text; #region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2024 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:LAPTOP-E0N2L34V * 命名空间:SlnMesnac.Repository.service.Impl * 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 * * 创建者:WenJY * 电子邮箱:wenjy@mesnac.com * 创建时间:2024-03-27 21:58:35 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> namespace SlnMesnac.Repository.service.Impl { public class BaseMaterialServiceImpl : IBaseMaterialService { private Repository _repository; private ILogger _logger; public BaseMaterialServiceImpl(Repository repository, ILogger logger) { _repository = repository; _logger = logger; } /// /// 通过物料编码获取物料信息 /// /// /// public BaseMaterialInfo GetMaterialInfoByMaterialCode(string materialCode) { BaseMaterialInfo materialInfo = null; try { materialInfo = _repository.GetFirst(x => x.MaterialCode == materialCode); } catch (Exception ex) { _logger.LogError($"根据物料编号获取物料信息异常:{ex.Message}"); } return materialInfo; } /// /// 通过SAP物料编码获取物料信息 /// /// /// public BaseMaterialInfo GetMaterialInfoBySapMaterialCode(string sapMaterialCode) { BaseMaterialInfo materialInfo = null; try { materialInfo = _repository.GetFirst(x => x.SAPMaterialCode == sapMaterialCode); } catch (Exception ex) { _logger.LogError($"根据SAP物料编号获取物料信息异常:{ex.Message}"); } return materialInfo; } /// /// 获取所有的物料信息 /// /// public List GetMaterialInfos() { List materialInfos = null; try { materialInfos = _repository.GetList(); } catch (Exception ex) { _logger.LogError($"获取物料信息异常:{ex.Message}"); } return materialInfos; } /// /// 通过物料类别获取物料信息 /// /// 物料大类 /// 物料细类 /// public List GetMaterialInfosByMaterialType(int majorTypeId, string minorTypeId) { List materialInfos = null; try { Expression> exp = x => true; if (majorTypeId != 0) { exp = exp.And(x => x.MajorTypeID == majorTypeId); } else if (!string.IsNullOrEmpty(minorTypeId)) { exp = exp.And(x => x.MinorTypeID == minorTypeId); } materialInfos = _repository.GetList(exp); } catch (Exception ex) { _logger.LogError($"通过物料类型获取物料信息异常:{ex.Message}"); } return materialInfos; } } }