using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.BZModels.Dto.HJ.TaskDtos; using WMS.BZModels; using WMS.Info; using wms.sqlsugar.model.hj; using WMS.BZSqlSugar; using WMS.Util; using WMS.BZModels.Dto.HJ.BillDocsDto; using Mapster; namespace WMS.BZServices.HJ { public class BillDocsinfoService { private readonly Repository _billDocsinfoRepository; public BillDocsinfoService(Repository billDocsinfoRepository) { _billDocsinfoRepository = billDocsinfoRepository; } public PagedInfo GetPageList(Pagination pagination, BillDocsinfoQueryDto billDocsinfoQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.DocsNo), m => m.DocsNo.ToString().Contains(billDocsinfoQueryDto.DocsNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.KeyWord), m => m.DocsNo.Contains(billDocsinfoQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.TypeNum), m => m.TypeNum.Equals(billDocsinfoQueryDto.TypeNum)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.StateNum), m => m.StateNum.Equals(billDocsinfoQueryDto.StateNum)); predicate = predicate.AndIF(billDocsinfoQueryDto != null && billDocsinfoQueryDto.AddTimeBegin.HasValue, m => m.AddTime >= billDocsinfoQueryDto.AddTimeBegin); predicate = predicate.AndIF(billDocsinfoQueryDto != null && billDocsinfoQueryDto.AddTimeEnd.HasValue, m => m.AddTime <= billDocsinfoQueryDto.AddTimeEnd); var list = _billDocsinfoRepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); return list; } public BillDocsinfoDto GetBillDocsinfo(long billDocId) { var billDocsinfo = _billDocsinfoRepository.Queryable().First(o => o.Id == billDocId); if (billDocsinfo == null) { throw BZSysExCore.ThrowFailException("不存在的数据!"); } //var table= _billDocsinfoRepository.Context.Ado.GetDataTable("select JsonContent from Bill_DocsInfo where Id=@billDocId", parameters: new { billDocId= billDocId }); var dto = billDocsinfo.Adapt(); dto.JsonContent = billDocsinfo.JsonContent.Trim().IndexOf("内容量过大") > 0 ? "{}" : IsJson(billDocsinfo.JsonContent) ? billDocsinfo.JsonContent : "{" + billDocsinfo.JsonContent + "}"; return dto; } private bool IsJson(string input) { input = input.Trim(); return input.StartsWith("{") && input.EndsWith("}") || input.StartsWith("[") && input.EndsWith("]"); } } }