BillDocsinfoService.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using wms.sqlsugar.model.pt;
  8. using WMS.BZModels;
  9. using WMS.BZModels.Dto.PT.BaseMatinfoDtos;
  10. using WMS.Info;
  11. using WMS.BZSqlSugar;
  12. using WMS.Util;
  13. using Mapster;
  14. namespace WMS.BZServices.PT
  15. {
  16. public class BillDocsinfoService
  17. {
  18. private readonly Repository<BillDocsinfo> _billDocsinfoRepository;
  19. public BillDocsinfoService(Repository<BillDocsinfo> billDocsinfoRepository)
  20. {
  21. _billDocsinfoRepository = billDocsinfoRepository;
  22. }
  23. public PagedInfo<BillDocsinfoListDto> GetPageList(Pagination pagination, BillDocsinfoQueryDto billDocsinfoQueryDto)
  24. {
  25. var predicate = Expressionable.Create<BillDocsinfo>();
  26. predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.DocsNo), m => m.DocsNo.ToString().Contains(billDocsinfoQueryDto.DocsNo));
  27. predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.KeyWord), m => m.DocsNo.Contains(billDocsinfoQueryDto.KeyWord));
  28. predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.TypeNum), m => m.Type.Equals(billDocsinfoQueryDto.TypeNum));
  29. predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.StateNum), m => m.StateNum.Equals(billDocsinfoQueryDto.StateNum));
  30. predicate = predicate.AndIF(billDocsinfoQueryDto != null && billDocsinfoQueryDto.AddTimeBegin.HasValue, m => m.AddTime >= billDocsinfoQueryDto.AddTimeBegin);
  31. predicate = predicate.AndIF(billDocsinfoQueryDto != null && billDocsinfoQueryDto.AddTimeEnd.HasValue, m => m.AddTime <= billDocsinfoQueryDto.AddTimeEnd);
  32. var list = _billDocsinfoRepository.Queryable().Where(predicate.ToExpression())
  33. .ToPage<BillDocsinfo, BillDocsinfoListDto>(pagination);
  34. return list;
  35. }
  36. public BillDocsinfoDto GetBillDocsinfo(long billDocId)
  37. {
  38. var billDocsinfo = _billDocsinfoRepository.Queryable().First(o => o.Id == billDocId);
  39. if (billDocsinfo == null)
  40. {
  41. throw BZSysExCore.ThrowFailException("不存在的数据!");
  42. }
  43. //var table= _billDocsinfoRepository.Context.Ado.GetDataTable("select JsonContent from Bill_DocsInfo where Id=@billDocId", parameters: new { billDocId= billDocId });
  44. var dto = billDocsinfo.Adapt<BillDocsinfoDto>();
  45. dto.JsonContent = billDocsinfo.JsonContent.Trim().IndexOf("内容量过大") > 0 ? "{}" :
  46. IsJson(billDocsinfo.JsonContent) ? billDocsinfo.JsonContent : "{" + billDocsinfo.JsonContent + "}";
  47. return dto;
  48. }
  49. private bool IsJson(string input)
  50. {
  51. input = input.Trim();
  52. return input.StartsWith("{") && input.EndsWith("}")
  53. || input.StartsWith("[") && input.EndsWith("]");
  54. }
  55. }
  56. }