OrderCarbonCopyApplication.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Hotline.Orders;
  2. using Hotline.Share.Dtos.Order.CarbonCopy;
  3. using SqlSugar;
  4. using XF.Domain.Authentications;
  5. using XF.Domain.Repository;
  6. namespace Hotline.Application.Orders;
  7. public class OrderCarbonCopyApplication : IOrderCarbonCopyApplication
  8. {
  9. private readonly ISessionContext _sessionContext;
  10. private readonly IRepository<OrderCarboncopy> _orderccRepository;
  11. public OrderCarbonCopyApplication(
  12. ISessionContext sessionContext,
  13. IRepository<OrderCarboncopy> orderccRepository)
  14. {
  15. _sessionContext = sessionContext;
  16. _orderccRepository = orderccRepository;
  17. }
  18. public ISugarQueryable<OrderCarboncopy> Query(QueryCarbonCopyRequest dto)
  19. {
  20. return _orderccRepository.Queryable()
  21. .Includes(d => d.Order)
  22. .Where(d => (!string.IsNullOrEmpty(d.UserId) && d.UserId == _sessionContext.UserId)
  23. || (!string.IsNullOrEmpty(d.OrgId) && d.OrgId == _sessionContext.OrgId)
  24. || (!string.IsNullOrEmpty(d.RoleId) && _sessionContext.Roles.Contains(d.RoleId)))
  25. .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No))//工单编码
  26. .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title!)) //标题
  27. .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType) //受理类型
  28. .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot))
  29. .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
  30. .WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart) //受理时间开始
  31. .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd) //受理时间结束
  32. .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.Order.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
  33. .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.Order.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
  34. ;
  35. }
  36. }