using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using wms.sqlsugar.model.pt; using WMS.BZModels.Dto.PT.BaseMatinfoDtos; using WMS.BZModels; using WMS.Info; using WMS.BZSqlSugar; namespace WMS.BZServices.PT { public class BillmesinfoService { private readonly Repository _billMesmiddleRepository; public BillmesinfoService(Repository billmesRepository) { _billMesmiddleRepository = billmesRepository; } public PagedInfo GetMesInfoList(Pagination pagination, MesInfoQueryDto mesinfoQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(mesinfoQueryDto?.KeyWord), m => m.BillCode.Contains(mesinfoQueryDto.KeyWord) || m.BoilerNo.Contains(mesinfoQueryDto.KeyWord) || m.PackNo.Contains(mesinfoQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(mesinfoQueryDto?.BillCode), m => m.BillCode.Contains(mesinfoQueryDto.BillCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(mesinfoQueryDto?.BoilerNo), m => m.BoilerNo.Contains(mesinfoQueryDto.BoilerNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(mesinfoQueryDto?.PackNo), m => m.PackNo.Contains(mesinfoQueryDto.PackNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(mesinfoQueryDto?.StateNum), m => m.State.Equals(mesinfoQueryDto.StateNum)); predicate = predicate.AndIF(mesinfoQueryDto != null && mesinfoQueryDto.AddTimeBegin.HasValue, m => m.AddTime >= mesinfoQueryDto.AddTimeBegin); predicate = predicate.AndIF(mesinfoQueryDto != null && mesinfoQueryDto.AddTimeEnd.HasValue, m => m.AddTime <= mesinfoQueryDto.AddTimeEnd); predicate = predicate.AndIF(mesinfoQueryDto != null && mesinfoQueryDto.EndTimeBegin.HasValue, m => m.EditTime >= mesinfoQueryDto.EndTimeBegin); predicate = predicate.AndIF(mesinfoQueryDto != null && mesinfoQueryDto.EndTimeEnd.HasValue, m => m.EditTime <= mesinfoQueryDto.EndTimeEnd); var list = _billMesmiddleRepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); return list; } public void Save(LoginUserInfo loginUser, string keyValue, BillMesmiddle entity) { try { if (string.IsNullOrWhiteSpace(entity.BillCode)) { throw new ArgumentException("单号不能为空"); } entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _billMesmiddleRepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(it => it.State).IgnoreColumns(it => it.WareCode).Where(it => it.BillCode == keyValue).ExecuteCommand(); } catch (Exception ex) { throw ex; } } } }