todolist.go 13 KB

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