report.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package roadshow
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_task/models"
  6. "hongze/hongze_task/models/roadshow"
  7. "hongze/hongze_task/utils"
  8. "strconv"
  9. "time"
  10. "context"
  11. )
  12. func AddReportRecord(cont context.Context)(err error) {
  13. defer func() {
  14. if err != nil {
  15. fmt.Println("AddReportRecord Err:" + err.Error())
  16. }
  17. }()
  18. adminAll, err := models.GetAdminList()
  19. if err != nil {
  20. return
  21. }
  22. adminMap := make(map[int]*models.AdminView)
  23. for _, v := range adminAll {
  24. adminMap[v.AdminId] = v
  25. }
  26. companyList, err := roadshow.RsCompanyList()
  27. if err != nil {
  28. return
  29. }
  30. companyMap := make(map[int]*roadshow.CompanySearchView)
  31. for _, v := range companyList {
  32. companyMap[v.CompanyId] = v
  33. }
  34. endDate := time.Now().Format(utils.FormatDate)
  35. existList, err := roadshow.GetExistRsReportRecord(endDate)
  36. if err != nil {
  37. return
  38. }
  39. existMap := make(map[string]*roadshow.RsReportRecord)
  40. for _, v := range existList {
  41. key := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(v.RsCalendarResearcherId)
  42. existMap[key] = v
  43. }
  44. list, err := roadshow.GetRsCalendarDetail(endDate)
  45. if err != nil {
  46. return
  47. }
  48. for _, v := range list {
  49. company := new(roadshow.CompanySearchView)
  50. if v.CompanyId > 0 {
  51. company, _ = companyMap[v.CompanyId]
  52. }
  53. researcher, ok := adminMap[v.ResearcherId]
  54. if !ok {
  55. err = errors.New("研究员信息不存在:" + strconv.Itoa(v.ResearcherId))
  56. //continue
  57. }
  58. seller, ok := adminMap[v.SysUserId]
  59. if !ok {
  60. err = errors.New("销售信息不存在:" + strconv.Itoa(v.SysUserId))
  61. //return
  62. //continue
  63. }
  64. key := strconv.Itoa(v.RsCalendarId) + "_" + strconv.Itoa(v.RsCalendarResearcherId)
  65. if _, ok := existMap[key]; ok { //修改
  66. reportWhereParams := make(map[string]interface{})
  67. reportWhereParams["rs_calendar_id"] = v.RsCalendarId
  68. reportWhereParams["rs_calendar_researcher_id"] = v.RsCalendarResearcherId
  69. reportUpdateParams := make(map[string]interface{})
  70. if company != nil {
  71. reportUpdateParams["company_id"] = company.CompanyId
  72. reportUpdateParams["company_name"] = company.CompanyName
  73. reportUpdateParams["credit_code"] = company.CreditCode
  74. reportUpdateParams["company_status"] = company.Status
  75. }
  76. reportUpdateParams["activity_type"] = v.ActivityType
  77. if researcher != nil {
  78. reportUpdateParams["researcher_id"] = researcher.AdminId
  79. reportUpdateParams["researcher_name"] = researcher.RealName
  80. reportUpdateParams["researcher_group_id"] = researcher.GroupId
  81. reportUpdateParams["researcher_group_name"] = researcher.GroupName
  82. } else {
  83. reportUpdateParams["researcher_id"] = v.ResearcherId
  84. reportUpdateParams["researcher_name"] = v.ResearcherName
  85. reportUpdateParams["researcher_group_id"] = 0
  86. reportUpdateParams["researcher_group_name"] = ""
  87. }
  88. if seller != nil {
  89. reportUpdateParams["seller_id"] = seller.AdminId
  90. reportUpdateParams["seller_name"] = seller.RealName
  91. reportUpdateParams["seller_group_id"] = seller.GroupId
  92. reportUpdateParams["seller_group_name"] = seller.GroupName
  93. } else {
  94. reportUpdateParams["seller_id"] = v.SysUserId
  95. reportUpdateParams["seller_name"] = v.SysUserRealName
  96. reportUpdateParams["seller_group_id"] = 0
  97. reportUpdateParams["seller_group_name"] = ""
  98. }
  99. reportUpdateParams["start_date"] = v.StartDate
  100. reportUpdateParams["end_date"] = v.EndDate
  101. reportUpdateParams["start_time"] = v.StartTime
  102. reportUpdateParams["end_time"] = v.EndTime
  103. reportUpdateParams["start_week"] = v.StartWeek
  104. reportUpdateParams["end_week"] = v.EndWeek
  105. reportUpdateParams["rs_calendar_researcher_status"] = v.Status
  106. reportUpdateParams["activity_type"] = v.ActivityType
  107. reportUpdateParams["roadshow_type"] = v.RoadshowType
  108. reportUpdateParams["modify_time"] = time.Now()
  109. err = roadshow.UpdateRsReportRecord(reportWhereParams, reportUpdateParams)
  110. } else { //新增
  111. item := new(roadshow.RsReportRecord)
  112. if company != nil {
  113. item.CompanyId = company.CompanyId
  114. item.CompanyName = company.CompanyName
  115. item.CreditCode = company.CreditCode
  116. item.CompanyStatus = company.Status
  117. }
  118. item.ActivityType = v.ActivityType
  119. item.ResearcherId = v.ResearcherId
  120. item.ResearcherName = v.ResearcherName
  121. if researcher != nil {
  122. item.ResearcherGroupId = researcher.GroupId
  123. item.ResearcherGroupName = researcher.GroupName
  124. } else {
  125. item.ResearcherGroupId = 0
  126. item.ResearcherGroupName = ""
  127. }
  128. if seller != nil {
  129. item.SellerId = seller.AdminId
  130. item.SellerName = seller.RealName
  131. item.SellerGroupId = seller.GroupId
  132. item.SellerGroupName = seller.GroupName
  133. } else {
  134. item.SellerId = v.SysUserId
  135. item.SellerName = v.SysUserRealName
  136. item.SellerGroupId = 0
  137. item.SellerGroupName = ""
  138. }
  139. item.RsCalendarId = v.RsCalendarId
  140. item.RsCalendarResearcherId = v.RsCalendarResearcherId
  141. item.StartDate = v.StartDate
  142. item.EndDate = v.EndDate
  143. item.StartTime = v.StartTime
  144. item.EndTime = v.EndTime
  145. item.StartWeek = v.StartWeek
  146. item.EndWeek = v.EndWeek
  147. item.CreateTime = time.Now()
  148. item.ModifyTime = time.Now()
  149. item.RsCalendarResearcherStatus = v.Status
  150. item.RoadshowType = v.RoadshowType
  151. _, err = roadshow.AddRsReportRecord(item)
  152. if err != nil {
  153. return
  154. }
  155. }
  156. }
  157. return err
  158. }