OrderMapperConfigs.cs 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Hotline.FlowEngine.Workflows;
  2. using Hotline.Orders;
  3. using Hotline.Share.Dtos.Order;
  4. using Mapster;
  5. namespace Hotline.Application.Mappers;
  6. public class OrderMapperConfigs : IRegister
  7. {
  8. public void Register(TypeAdapterConfig config)
  9. {
  10. config.ForType<Order, OrderDto>()
  11. .IgnoreIf((s, d) => s.OrderComplain == null, d => d.OrderComplain)
  12. .IgnoreIf((s, d) => s.OrderReport == null, d => d.OrderReport)
  13. .IgnoreIf((s, d) => s.Hotspot == null, d => d.Hotspot)
  14. ;
  15. config.ForType<AddOrderDto, Order>()
  16. .IgnoreIf((s, d) => s.OrderComplain == null, d => d.OrderComplain)
  17. .IgnoreIf((s, d) => s.OrderReport == null, d => d.OrderReport)
  18. .Map(d => d.Additions, s => s.Files)
  19. ;
  20. config.ForType<UpdateOrderDto, Order>()
  21. .Inherits<AddOrderDto, Order>()
  22. .Map(d => d.OrderComplain.Id, x => x.Id)
  23. .Map(d => d.OrderReport.Id, x => x.Id);
  24. config.ForType<Workflow, Order>()
  25. .Map(d => d.WorkflowId, s => s.Id)
  26. .Map(d => d.StartTime, s => s.CreationTime)
  27. //.Map(d => d.ExpiredTime, s => s.ExpiredTime)
  28. //.Map(d => d.ActualHandleStepCode, s => s.ActualHandleStepCode)
  29. //.Map(d => d.ActualHandleStepName, s => s.ActualHandleStepName)
  30. //.Map(d => d.ActualHandleStepCreateTime, s => s.ActualHandleStepCreateTime)
  31. //.Map(d => d.ActualHandleTime, s => s.ActualHandleTime)
  32. //.Map(d => d.ActualHandlerId, s => s.ActualHandlerId)
  33. //.Map(d => d.ActualHandlerName, s => s.ActualHandlerName)
  34. //.Map(d => d.ActualHandleOrgName, s => s.ActualHandleOrgName)
  35. //.Map(d => d.ActualHandleOrgCode, s => s.ActualHandleOrgCode)
  36. //.Map(d => d.ActualHandleOrgAreaCode, s => s.ActualHandleOrgAreaCode)
  37. //.Map(d => d.ActualHandleOrgAreaName, s => s.ActualHandleOrgAreaName)
  38. //.Map(d => d.ActualOpinion, s => s.ActualOpinion)
  39. //.Map(d => d.CurrentStepCode, s => s.CurrentStepCode)
  40. //.Map(d => d.CurrentStepName, s => s.CurrentStepName)
  41. //.Map(d => d.CurrentStepCreateTime, s => s.CurrentStepCreateTime)
  42. //.Map(d => d.OrgLevelOneCode, s => s.OrgLevelOneCode)
  43. //.Map(d => d.OrgLevelOneName, s => s.OrgLevelOneName)
  44. //.Map(d => d.AcceptorId, s => s.AcceptorId)
  45. //.Map(d => d.AcceptorName, s => s.AcceptorName)
  46. //.Map(d => d.AcceptorStaffNo, s => s.AcceptorStaffNo)
  47. //.Map(d => d.ProcessType, s => s.ProcessType)
  48. //.Map(d => d.AssignUserIds, s => s.AssignUserIds)
  49. //.Map(d => d.AssignOrgCodes, s => s.AssignOrgCodes)
  50. //.IgnoreNonMapped(true)
  51. .Ignore(d => d.Status)
  52. .Ignore(d => d.Title)
  53. .AfterMapping((s, d) =>
  54. {
  55. d.UpdateHandlingStatus(s.IsInCountersign());
  56. })
  57. ;
  58. config.ForType<Order, PublishDto>()
  59. .Inherits<Order, OrderDto>()
  60. .IgnoreIf((s, d) => s.OrderPublish == null, d => d.PublishState)
  61. .IgnoreIf((s, d) => s.OrderPublish == null, d => d.ArrangeContent)
  62. .IgnoreIf((s, d) => s.OrderPublish == null, d => d.PublishTime)
  63. .IgnoreIf((s, d) => s.OrderPublish == null, d => d.PublishMan)
  64. .Map(d => d.PublishState, s => s.OrderPublish.PublishState)
  65. .Map(d => d.ArrangeContent, s => s.OrderPublish.ArrangeContent)
  66. .Map(d => d.PublishTime, s => s.OrderPublish.CreationTime)
  67. .Map(d => d.PublishMan, s => s.OrderPublish.CreatorName);
  68. config.ForType<OrderPublish,PublishedDto>()
  69. .Map(d => d.PublishState, s => s.PublishState)
  70. .Map(d => d.ArrangeContent, s => s.ArrangeContent)
  71. .Map(d => d.PublishTime, s => s.CreationTime)
  72. .Map(d => d.PublishMan, s => s.CreatorName);
  73. config.ForType<Order, OrderWaitedDto>()
  74. .Inherits<Order, OrderDto>();
  75. config.ForType<OrderVisit, OrderVisitDto>()
  76. .Inherits<Order, OrderDto>()
  77. .IgnoreIf((s, d) => s.Employee == null, d => d.EmployeeName)
  78. .Map(d => d.EmployeeName, s => s.Employee.Name);
  79. }
  80. }