BillDocsinfoService.cs 3.6 KB

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