using SqlSugar; using WMS.BZModels; using WMS.Info; using wms.sqlsugar.model.fj; using WMS.BZSqlSugar; using WMS.BZModels.Dto.FJ.BaseWareareaDtos; namespace WMS.BZServices.FJ { public class BaseWareAreaService { private readonly Repository _wareArearepository; private readonly Repository _warehouseRepository; public BaseWareAreaService(Repository wareArearepository, Repository warehouseRepository) { _wareArearepository = wareArearepository; _warehouseRepository = warehouseRepository; } public PagedInfo GetPageList(Pagination pagination, BaseWareareaQueryDto wareAreaQueryDto) { 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(wareAreaQueryDto?.KeyWord), (warearea, warehouse) => warearea.Code.Contains(wareAreaQueryDto.KeyWord) || warearea.Name.Contains(wareAreaQueryDto.Name)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wareAreaQueryDto?.Code), (warearea, warehouse) => warearea.Code.Contains(wareAreaQueryDto.Code)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wareAreaQueryDto?.Name), (warearea, warehouse) => warearea.Name.Contains(wareAreaQueryDto.Name)); var list = _wareArearepository.Context.Queryable((warearea, warehouse) => new object[] { JoinType.Left,warearea.WarehouseId == warehouse.Id }) .Select((warearea, warehouse) => new BaseWareareaDto { Id = warearea.Id.ToString(), WarehouseId = warearea.WarehouseId.ToString(), WarehouseName = warehouse.Name, IsStop = warearea.IsStop, Code = warearea.Code, Name = warearea.Name, TypeNum = warearea.TypeNum, Memo = warearea.Memo, AddWho = warearea.AddWho, AddTime = warearea.AddTime, EditWho = warearea.EditWho, EditTime = warearea.EditTime }).MergeTable().ToPage(pagination); return list; } public IEnumerable GetSelectNameList() { var lists = _wareArearepository.Queryable().Where(o=>o.IsStop==0).ToList().Select(o => new { id = o.Id.ToString(), text = o.Name }); return lists; } public void Save(LoginUserInfo loginUser, string keyValue, BaseWarearea entity) { try { if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException("库区编码不能为空"); } var warehouse = _warehouseRepository.Queryable().First(o => o.Id == entity.WarehouseId); if (warehouse == null) { throw new ArgumentException("不存在的仓库!"); } if (keyValue.IsEmpty() || keyValue == "undefined") { var mat = _wareArearepository.GetSingle(p => p.Code == entity.Code); if (mat != null) { throw new ArgumentException("库区编码已存在"); } BaseWarearea item = new BaseWarearea() { WarehouseId = warehouse.Id, AddWho = loginUser.UserNo, Code = entity.Code, EditWho = loginUser.UserNo, Name = entity.Name, IsStop = 0, TypeNum = 1 }; _wareArearepository.Insert(item); } else { entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _wareArearepository.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 { _wareArearepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand(); } catch (Exception ex) { throw ex; } } } }