using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.BZModels.Dto.FJ.TaskDtos; using WMS.BZModels; using WMS.Info; using wms.sqlsugar.model.fj; using WMS.BZSqlSugar; using WMS.Util; using WMS.BZModels.Dto.FJ.BillDocsDto; using Mapster; using Newtonsoft.Json; namespace WMS.BZServices.FJ { 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.Contains(billDocsinfoQueryDto.DocsNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.KeyWord), m => m.DocsNo.Contains(billDocsinfoQueryDto.KeyWord) || m.ProMaterCode.Contains(billDocsinfoQueryDto.KeyWord) || m.WorkOrder.Contains(billDocsinfoQueryDto.KeyWord) || m.SetGrpCode.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); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.ProMaterCode), m => m.ProMaterCode.Contains(billDocsinfoQueryDto.ProMaterCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.SetGrpCode), m => m.SetGrpCode.Contains(billDocsinfoQueryDto.SetGrpCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.WorkOrder), m => m.WorkOrder.Contains(billDocsinfoQueryDto.WorkOrder)); 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().Contains("内容量过大") ? "{}" : 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("]"); } } }