BillDocsinfoService.cs 3.6 KB

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