using Infrastructure.Attribute; using Infrastructure.Extensions; using DOAN.Model.BZFM.Dto; using DOAN.Model.BZFM; using DOAN.Repository; using DOAN.Service.BZFM.IBZFMService; namespace DOAN.Service.BZFM { /// /// 物料分类表Service业务层处理 /// [AppService(ServiceType = typeof(IMmMaterialCategoryService), ServiceLifetime = LifeTime.Transient)] public class MmMaterialCategoryService : BaseService, IMmMaterialCategoryService { /// /// 查询物料分类表列表 /// /// /// public PagedInfo GetList(MmMaterialCategoryQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public MmMaterialCategory GetInfo(int Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加物料分类表 /// /// /// public MmMaterialCategory AddMmMaterialCategory(MmMaterialCategory model) { // 检查是否有重复 bool hasAny = Context.Queryable() .Where(it => it.CategoryCode == model.CategoryCode) .Any(); if (hasAny) { throw new Exception("分类编码不可重复!"); } return Insertable(model).ExecuteReturnEntity(); } /// /// 修改物料分类表 /// /// /// public int UpdateMmMaterialCategory(MmMaterialCategory model) { // 检查是否有重复 bool hasAny = Context.Queryable() .Where(it => it.CategoryCode == model.CategoryCode) .Where(it => it.Id != model.Id) .Any(); if (hasAny) { throw new Exception("分类编码不可重复!"); } return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(MmMaterialCategoryQueryDto parm) { var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.CategoryCode),it=>it.CategoryCode.Contains(parm.CategoryCode)) .AndIF(!string.IsNullOrEmpty(parm.CategoryName), it => it.CategoryName.Contains(parm.CategoryName)) //检查数据:(启用/停用) .AndIF(!string.IsNullOrEmpty(parm.Status), it => it.Status == parm.Status); return predicate; } } }