2
3

todolist.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/oilsupplier/annualaudit"
  4. "dashoo.cn/backend/api/business/oilsupplier/infochange"
  5. "dashoo.cn/backend/api/business/oilsupplier/supplier"
  6. "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
  7. "dashoo.cn/backend/api/business/register"
  8. "dashoo.cn/backend/api/business/todolist"
  9. "dashoo.cn/backend/api/business/workflow"
  10. . "dashoo.cn/backend/api/controllers"
  11. "dashoo.cn/utils"
  12. "sort"
  13. "strconv"
  14. "strings"
  15. )
  16. type TodoListController struct {
  17. BaseController
  18. }
  19. // @Title 获取列表
  20. // @Description get user by token
  21. // @Success 200 {object} []supplier.OilSupplierView
  22. // @router /gettodolist [get]
  23. func (this *TodoListController) GetMyTaskEntityList() {
  24. page := this.GetPageInfoForm()
  25. stype := this.GetString("Type")
  26. supplierTypeCode := this.GetString("SupplierTypeCode")
  27. supplierName := this.GetString("SupplierName")
  28. wfNames := ""
  29. if stype == "1" {
  30. wfNames = workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_SUPPLIER_INSTORE
  31. } else if stype == "2" {
  32. wfNames = workflow.OIL_ENUSER_APPEND_APPLY + "," + workflow.OIL_FIRST_ENUSER_APPEND_APPLY + "," + workflow.OIL_SECOND_ENUSER_APPEND_APPLY
  33. } else if stype == "3" {
  34. wfNames = workflow.OIL_AUDIT_APPLY
  35. } else if stype == "4" {
  36. wfNames = workflow.OIL_INFO_CHANGE
  37. } else if stype == "5" {
  38. wfNames = workflow.OIL_REGISTER_APPLY
  39. } else if stype == "6" {
  40. wfNames = workflow.OIL_SUPPLIER_INSTORE
  41. }
  42. var todolists []todolist.TodoList
  43. var pagingResult workflow.ActiMyPagingResultVM
  44. var myTasksRetWithTimes []workflow.ActiMyTasksRetWithTimeVM
  45. actisvc := workflow.GetActivitiService(utils.DBE)
  46. pagingResult = actisvc.GetMyAllTypePagingTasksWithTime(this.User.Id, page.CurrentPage, page.Size, wfNames, supplierTypeCode, supplierName)
  47. myTasksRetWithTimes = pagingResult.TaskList
  48. //取出各种类型的ID
  49. for _,item := range myTasksRetWithTimes {
  50. idx := strings.Index(item.BusinessKey, "-")
  51. id := item.BusinessKey
  52. if idx >= 0 {
  53. id = strings.Split(item.BusinessKey, "-")[0]
  54. }
  55. //工作流名称
  56. has := false
  57. wfName := strings.Split(item.ProcessDefinitionId, ":")[0] //如:oil_enuser_supplier_apply:2:2543
  58. if wfName == workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_SUPPLIER_INSTORE {
  59. //准入
  60. where := " 1=1 "
  61. where = where + " and b.Id = '" + id + "'"
  62. var todo todolist.TodoList
  63. svc := supplier.GetOilSupplierService(utils.DBE)
  64. has = svc.GetMyTodoEntitie(OilSupplierName, OilSupplierCertName, &todo, where)
  65. if has {
  66. todo.Type = todolist.SUPPLIER
  67. todo.UserName = this.User.Realname
  68. todo.CreateTime = item.CreateTime
  69. todo.TaskName = item.TaskName
  70. todolists = append(todolists, todo)
  71. }
  72. } else if wfName == workflow.OIL_ENUSER_APPEND_APPLY || wfName == workflow.OIL_FIRST_ENUSER_APPEND_APPLY || wfName == workflow.OIL_SECOND_ENUSER_APPEND_APPLY {
  73. //增项
  74. where := " 1=1 "
  75. where = where + " and b.Id = '" + id + "'"
  76. var todo todolist.TodoList
  77. svcapp := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  78. has :=svcapp.GetTodoEntitie(OilSupplierName, OilSupplierCertAppendName, &todo, where)
  79. if has {
  80. todo.Type = todolist.CERTAPPEND
  81. todo.UserName = this.User.Realname
  82. todo.CreateTime = item.CreateTime
  83. todolists = append(todolists, todo)
  84. }
  85. } else if wfName == workflow.OIL_AUDIT_APPLY {
  86. //年审
  87. var todo todolist.TodoList
  88. var listannu annualaudit.OilAnnualAudit
  89. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  90. has = svc.GetEntityById(id, &listannu)
  91. if has {
  92. todo.Id = listannu.Id
  93. todo.SupplierId = strconv.Itoa(listannu.SupplierId)
  94. todo.Type = todolist.ANNUALAUDIT
  95. todo.SupplierName = listannu.SupplierName
  96. todo.UserName = this.User.Realname
  97. todo.TaskName = item.TaskName
  98. todo.SupplierTypeCode = listannu.SupplierTypeName
  99. todo.Step = strconv.Itoa(listannu.Step)
  100. todo.Status = listannu.Status
  101. todo.CertId = strconv.Itoa(listannu.CerId)
  102. todo.CreateTime = item.CreateTime
  103. todolists = append(todolists, todo)
  104. }
  105. } else if wfName == workflow.OIL_INFO_CHANGE {
  106. //资质变更
  107. var todo todolist.TodoList
  108. var listInfo infochange.OilInfoChange
  109. svc := infochange.GetInfoChangeService(utils.DBE)
  110. has = svc.GetEntityById(id, &listInfo)
  111. if has {
  112. todo.Id = listInfo.Id
  113. todo.Type = todolist.INFOCHANGE
  114. todo.SupplierName = listInfo.SupplierName
  115. todo.UserName = this.User.Realname
  116. todo.TaskName = item.TaskName
  117. todo.SupplierTypeCode = listInfo.SupplierTypeName
  118. todo.Status = listInfo.Status
  119. todo.CreateTime = item.CreateTime
  120. todolists = append(todolists, todo)
  121. }
  122. } else if wfName == workflow.OIL_REGISTER_APPLY {
  123. //企业用户注册
  124. var todo todolist.TodoList
  125. regsvc := register.GetOilCorporateInfoService(utils.DBE)
  126. var listinfo register.OilCorporateInfo
  127. has = regsvc.GetEntityById(id, &listinfo)
  128. if has {
  129. todo.Id = listinfo.Id
  130. todo.Type = todolist.REGISTER
  131. todo.SupplierName = listinfo.SupplierName
  132. todo.UserName = this.User.Realname
  133. todo.TaskName = item.TaskName
  134. todo.Status = strconv.Itoa(listinfo.CheckStatus)
  135. todo.CreateTime = item.CreateTime
  136. todolists = append(todolists, todo)
  137. }
  138. }
  139. }
  140. sort.Slice(todolists, func(i, j int) bool {
  141. return todolists[i].CreateTime > todolists[j].CreateTime
  142. })
  143. var datainfo DataInfo
  144. datainfo.Items = todolists
  145. datainfo.CurrentItemCount = pagingResult.Total
  146. datainfo.PageIndex = page.CurrentPage
  147. datainfo.ItemsPerPage = page.Size
  148. this.Data["json"] = &datainfo
  149. this.ServeJSON()
  150. }
  151. // @Title 获取已办列表
  152. // @Description get user by token
  153. // @Success 200 {object} []supplier.OilSupplierView
  154. // @router /getmytaskfinishedlist [get]
  155. func (this *TodoListController) GetMyTaskFinishedList() {
  156. page := this.GetPageInfoForm()
  157. stype := this.GetString("Type")
  158. supplierTypeCode := this.GetString("SupplierTypeCode")
  159. supplierName := this.GetString("SupplierName")
  160. wfNames := ""
  161. if stype == "1" {
  162. wfNames = workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY + "," + workflow.OIL_SUPPLIER_INSTORE
  163. } else if stype == "2" {
  164. wfNames = workflow.OIL_ENUSER_APPEND_APPLY + "," + workflow.OIL_FIRST_ENUSER_APPEND_APPLY + "," + workflow.OIL_SECOND_ENUSER_APPEND_APPLY
  165. } else if stype == "3" {
  166. wfNames = workflow.OIL_AUDIT_APPLY
  167. } else if stype == "4" {
  168. wfNames = workflow.OIL_INFO_CHANGE
  169. } else if stype == "5" {
  170. wfNames = workflow.OIL_REGISTER_APPLY
  171. } else if stype == "6" {
  172. wfNames = workflow.OIL_SUPPLIER_INSTORE
  173. }
  174. var todolists []todolist.TodoList
  175. var pagingResult workflow.ActiMyPagingResultVM
  176. var myTasksRetWithTimes []workflow.ActiMyTasksRetWithTimeVM
  177. actisvc := workflow.GetActivitiService(utils.DBE)
  178. pagingResult = actisvc.GetMyAllTypePagingFinishedTasksWithTime(this.User.Id, page.CurrentPage, page.Size, wfNames, supplierTypeCode, supplierName)
  179. myTasksRetWithTimes = pagingResult.TaskList
  180. //取出各种类型的ID
  181. for _,item := range myTasksRetWithTimes {
  182. idx := strings.Index(item.BusinessKey, "-")
  183. id := item.BusinessKey
  184. if idx >= 0 {
  185. id = strings.Split(item.BusinessKey, "-")[0]
  186. }
  187. //工作流名称
  188. has := false
  189. wfName := strings.Split(item.ProcessDefinitionId, ":")[0] //如:oil_enuser_supplier_apply:2:2543
  190. if wfName == workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY || wfName == workflow.OIL_SUPPLIER_INSTORE {
  191. //准入
  192. where := " 1=1 "
  193. where = where + " and b.Id = '" + id + "'"
  194. var todo todolist.TodoList
  195. svc := supplier.GetOilSupplierService(utils.DBE)
  196. has = svc.GetMyTodoEntitie(OilSupplierName, OilSupplierCertName, &todo, where)
  197. if has {
  198. todo.Type = todolist.SUPPLIER
  199. todo.UserName = this.User.Realname
  200. todo.CreateTime = item.CreateTime
  201. todo.TaskName = item.TaskName
  202. todolists = append(todolists, todo)
  203. }
  204. } else if wfName == workflow.OIL_ENUSER_APPEND_APPLY || wfName == workflow.OIL_FIRST_ENUSER_APPEND_APPLY || wfName == workflow.OIL_SECOND_ENUSER_APPEND_APPLY {
  205. //增项
  206. where := " 1=1 "
  207. where = where + " and b.Id = '" + id + "'"
  208. var todo todolist.TodoList
  209. svcapp := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
  210. has :=svcapp.GetTodoEntitie(OilSupplierName, OilSupplierCertAppendName, &todo, where)
  211. if has {
  212. todo.Type = todolist.CERTAPPEND
  213. todo.UserName = this.User.Realname
  214. todo.CreateTime = item.CreateTime
  215. todolists = append(todolists, todo)
  216. }
  217. } else if wfName == workflow.OIL_AUDIT_APPLY {
  218. //年审
  219. where := " 1=1 "
  220. where = where + " and b.Id = '" + id + "'"
  221. var todo todolist.TodoList
  222. var listannu annualaudit.OilAnnualAudit
  223. svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
  224. has = svc.GetEntity(&listannu, where)
  225. if has {
  226. todo.Id = listannu.Id
  227. todo.SupplierId = strconv.Itoa(listannu.SupplierId)
  228. todo.Type = todolist.ANNUALAUDIT
  229. todo.SupplierName = listannu.SupplierName
  230. todo.UserName = this.User.Realname
  231. todo.TaskName = item.TaskName
  232. todo.SupplierTypeCode = listannu.SupplierTypeName
  233. todo.Step = strconv.Itoa(listannu.Step)
  234. todo.Status = listannu.Status
  235. todo.CertId = strconv.Itoa(listannu.CerId)
  236. todo.CreateTime = item.CreateTime
  237. todolists = append(todolists, todo)
  238. }
  239. } else if wfName == workflow.OIL_INFO_CHANGE {
  240. //资质变更
  241. where := " 1=1 "
  242. where = where + " and b.Id = '" + id + "'"
  243. var todo todolist.TodoList
  244. var listInfo infochange.OilInfoChange
  245. svc := infochange.GetInfoChangeService(utils.DBE)
  246. has = svc.GetEntity(&listInfo, where)
  247. if has {
  248. todo.Id = listInfo.Id
  249. todo.Type = todolist.INFOCHANGE
  250. todo.SupplierName = listInfo.SupplierName
  251. todo.UserName = this.User.Realname
  252. todo.TaskName = item.TaskName
  253. todo.SupplierTypeCode = listInfo.SupplierTypeName
  254. todo.Status = listInfo.Status
  255. todo.CreateTime = item.CreateTime
  256. todolists = append(todolists, todo)
  257. }
  258. } else if wfName == workflow.OIL_REGISTER_APPLY {
  259. //企业用户注册
  260. var todo todolist.TodoList
  261. regsvc := register.GetOilCorporateInfoService(utils.DBE)
  262. var listinfo register.OilCorporateInfo
  263. has = regsvc.GetEntityById(id, &listinfo)
  264. if has {
  265. todo.Id = listinfo.Id
  266. todo.Type = todolist.REGISTER
  267. todo.SupplierName = listinfo.SupplierName
  268. todo.UserName = this.User.Realname
  269. todo.TaskName = item.TaskName
  270. todo.Status = strconv.Itoa(listinfo.CheckStatus)
  271. todo.CreateTime = item.CreateTime
  272. todolists = append(todolists, todo)
  273. }
  274. }
  275. }
  276. sort.Slice(todolists, func(i, j int) bool {
  277. return todolists[i].CreateTime > todolists[j].CreateTime
  278. })
  279. var datainfo DataInfo
  280. datainfo.Items = todolists
  281. datainfo.CurrentItemCount = pagingResult.Total
  282. datainfo.PageIndex = page.CurrentPage
  283. datainfo.ItemsPerPage = page.Size
  284. this.Data["json"] = &datainfo
  285. this.ServeJSON()
  286. }