using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using WMS.BZModels; using WMS.Info; using WMS.BZSqlSugar; using wms.sqlsugar.model.cp; using WMS.BZModels.Dto.CP.BaseMatinfoDtos; namespace WMS.BZServices.CP { public class BaseMatinfoService { private readonly Repository _matinforepository; public BaseMatinfoService(Repository matinforepository) { _matinforepository = matinforepository; } public PagedInfo GetPageList(Pagination pagination, BaseMatinfoQueryDto basematinfoQueryDto) { if (pagination.sord.ToUpper() != "ASC") { pagination.sidx = pagination.sidx + " DESC"; } if (pagination.sidx.IsEmpty()) { pagination.sidx = "AddTime DESC"; } var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.KeyWord), m => m.Code.Contains(basematinfoQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Code), m => m.Code.Contains(basematinfoQueryDto.Code)); predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Name), m => m.Name.Contains(basematinfoQueryDto.Name)); predicate = predicate.AndIF(basematinfoQueryDto?.HoldDuration > 0, m => m.HoldDuration == basematinfoQueryDto.HoldDuration); predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.SpoolType), m => m.SpoolType.Contains(basematinfoQueryDto.SpoolType)); predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.ShortDesc), m => m.ShortDesc.Contains(basematinfoQueryDto.ShortDesc)); var list = _matinforepository.Queryable().Where(predicate.ToExpression()) //.OrderBy(pagination.sidx) .ToPage(pagination); return list; } public void Save(LoginUserInfo loginUser, string keyValue, BaseMatinfo entity) { try { if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException("物料编码不能为空"); } if (keyValue.IsEmpty() || keyValue == "undefined") { var mat = _matinforepository.GetSingle(p => p.Code == entity.Code); if (mat != null) { throw new ArgumentException("物料编码已存在"); } BaseMatinfo item = new BaseMatinfo() { WarehouseId = 1668442390064664576, AddWho = loginUser.UserNo, Code = entity.Code, EditWho = loginUser.UserNo, Name = entity.Name, ShortDesc = entity.ShortDesc, MatGrpId = 0, Description = entity.ShortDesc, Strength = entity.Strength, Plating = entity.Plating, PlatingWeight = entity.PlatingWeight, Linear = entity.Linear, IsHold = entity.IsHold, HoldDuration = entity.HoldDuration }; _matinforepository.Insert(item); } else { entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _matinforepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(it => it.WarehouseId).Where(it => it.Code == keyValue).ExecuteCommand(); } } catch (Exception ex) { throw ex; } } public void Delete(string ModuleNo) { try { _matinforepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand(); } catch (Exception ex) { throw ex; } } } }