package oilsupplier import ( "dashoo.cn/backend/api/business/oilsupplier/annualaudit" "dashoo.cn/backend/api/business/oilsupplier/infochange" "dashoo.cn/backend/api/business/oilsupplier/qualchange" "dashoo.cn/backend/api/business/oilsupplier/supplier" "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend" "dashoo.cn/backend/api/business/todolist" "dashoo.cn/backend/api/business/workflow" . "dashoo.cn/backend/api/controllers" "dashoo.cn/utils" "fmt" "strconv" "strings" ) type TodoListController struct { BaseController } // @Title 获取列表 // @Description get user by token // @Success 200 {object} []supplier.OilSupplierView // @router /gettodolist [get] func (this *TodoListController) GetMyTaskEntityList() { var todolists []todolist.TodoList var todo todolist.TodoList page := this.GetPageInfoForm() where := " 1=1 " orderby := "Id" asc := false Order := this.GetString("Order") where = where + " and b.Status>0" Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } stype := this.GetString("Type") supplierTypeCode := this.GetString("SupplierTypeCode") supplierName := this.GetString("SupplierName") if supplierTypeCode != "" { where = where + " and b.SupplierTypeCode = '" + supplierTypeCode + "'" } if supplierName != "" { where = where + " and a.SupplierName like '%" + supplierName + "%'" } actisvc := workflow.GetActivitiService(utils.DBE) svc := supplier.GetOilSupplierService(utils.DBE) if stype == "1" || stype == "" { //找出待办任务===准入 var certIdList string if actisvc.GetMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = actisvc.GetMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) certIdList = certIdList + "," } if actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetMyTasks(workflow.OIL_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetMyTasks(workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetMyTasks(workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetMyTasks(workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } certIdList = strings.Trim(certIdList, ",") certIdarr := strings.Split(certIdList, ",") for i, item := range certIdarr { idx := strings.Index(item, "-") if idx >= 0 { certIdarr[i] = strings.Split(item, "-")[0] } } certIdList = strings.Join(certIdarr, ",") var list []supplier.OilSupplierView if certIdList != "" { where += " and b.Id in (" + certIdList + ")" svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, orderby, asc, &list, where) for _, item := range list { todo.Id = item.Id todo.CertId = item.CertId todo.SupplierTypeCode = item.SupplierTypeCode todo.Type = todolist.SUPPLIER todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "2" || stype == "" { //找出待办任务 -- 增项 whereapp := "1=1" whereapp = whereapp + " and b.Status>0" appendIdList := actisvc.GetMyTasks(workflow.OIL_APPEND_APPLY, this.User.Id) appendIdarr := strings.Split(appendIdList, ",") for i, item := range appendIdarr { idx := strings.Index(item, "-") if (idx >= 0) { appendIdarr[i] = strings.Split(item, "-")[0] } } appendIdList = strings.Join(appendIdarr, ",") var listapp []suppliercertappend.OilSupplierCertAppendTodo svcapp := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE) if appendIdList != "" { whereapp += " and b.Id in (" + appendIdList + ")" svcapp.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertAppendName, page.CurrentPage, page.Size, orderby, asc, &listapp, whereapp) for _, item := range listapp { todo.Id = item.Id todo.Type = todolist.CERTAPPEND todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.AppendType todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "3" || stype == "" { // 待办--年审 whereannu := "1=1" if supplierName != "" { whereannu = whereannu + " and SupplierName like '%" + supplierName + "%'" } var listannu []annualaudit.OilAnnualAudit annuIdList := actisvc.GetMyTasks(workflow.OIL_AUDIT_APPLY, this.User.Id) annuIdarr := strings.Split(annuIdList, ",") for i, item := range annuIdarr { idx := strings.Index(item, "-") if idx >= 0 { annuIdarr[i] = strings.Split(item, "-")[0] } } annuIdList = strings.Join(annuIdarr, ",") if annuIdList != "" { whereannu += " and Id in (" + annuIdList + ")" //根据部门查询待办任务 whereannu += " and Status != 2 " svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listannu, whereannu) for _, item := range listannu { todo.Id = item.Id todo.SupplierId = strconv.Itoa(item.SupplierId) todo.Type = todolist.ANNUALAUDIT todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.SupplierTypeName todo.Step = strconv.Itoa(item.Step) todo.WorkflowId = item.WorkflowId todo.Status = item.Status todo.CertId = strconv.Itoa(item.CerId) todolists = append(todolists, todo) } } } if stype == "4" || stype == "" { // 待办 ----- 信息变更 var listInfo []infochange.OilInfoChange whereInfo := "1=1" if supplierName != "" { whereInfo = where + " and SupplierName like '%" + supplierName + "%'" } infoList := actisvc.GetMyTasks(workflow.OIL_INFO_CHANGE, this.User.Id) infoIdarr := strings.Split(infoList, ",") for i, item := range infoIdarr { idx := strings.Index(item, "-") if (idx >= 0) { infoIdarr[i] = strings.Split(item, "-")[0] } } infoList = strings.Join(infoIdarr, ",") if infoList != "" { whereInfo += " and Id in (" + infoList + ")" svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listInfo, whereInfo) for _, item := range listInfo { todo.Id = item.Id todo.Type = todolist.INFOCHANGE todo.SupplierId = strconv.Itoa(item.SupplierId) todo.SupplierName = item.OldSupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.SupplierTypeName todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "5" || stype == "" { // 资质变更 var listqual []qualchange.OilQualChangeMain qualList := actisvc.GetMyTasks(workflow.OIL_QUAL_CHANGE, this.User.Id) qualIdarr := strings.Split(qualList, ",") for i, item := range qualIdarr { idx := strings.Index(item, "-") if idx >= 0 { qualIdarr[i] = strings.Split(item, "-")[0] } } qualList = strings.Join(qualIdarr, ",") wherequal := "1=1 " if supplierName != "" { wherequal = wherequal + " and SupplierName like '%" + supplierName + "%'" } if qualList != "" { wherequal += " and Id in (" + qualList + ")" wherequal += " and Status != -2 " svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listqual, wherequal) for _, item := range listqual { todo.Id = item.Id todo.CertId = strconv.Itoa(item.SupplierCertId) todo.SupplierId = strconv.Itoa(item.SupplierId) todo.Type = todolist.QUALCHANGE todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = "0" todo.Status = item.Status todolists = append(todolists, todo) } } } var datainfo DataInfo datainfo.Items = todolists this.Data["json"] = &datainfo this.ServeJSON() //this.SetUserDeptId() } // @Title 获取已办列表 // @Description get user by token // @Success 200 {object} []supplier.OilSupplierView // @router /getmytaskfinishedlist [get] func (this *TodoListController) GetMyTaskFinishedList() { var todolists []todolist.TodoList var todo todolist.TodoList page := this.GetPageInfoForm() where := " 1=1 " orderby := "Id" asc := false Order := this.GetString("Order") where = where + " and b.Status>0" Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } stype := this.GetString("Type") supplierTypeCode := this.GetString("SupplierTypeCode") supplierName := this.GetString("SupplierName") if supplierTypeCode != "" { where = where + " and b.SupplierTypeCode = '" + supplierTypeCode + "'" } if supplierName != "" { where = where + " and a.SupplierName like '%" + supplierName + "%'" } actisvc := workflow.GetActivitiService(utils.DBE) svc := supplier.GetOilSupplierService(utils.DBE) if stype == "1" || stype == "" { //已办任务===准入 var certIdList string if actisvc.GetHistoryMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = actisvc.GetHistoryMyTasks(workflow.OIL_SUPPLIER_APPLY, this.User.Id) certIdList = certIdList + "," } if actisvc.GetHistoryMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetHistoryMyTasks(workflow.OIL_FIRST_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetHistoryMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetHistoryMyTasks(workflow.OIL_SECOND_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetHistoryMyTasks(workflow.OIL_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetHistoryMyTasks(workflow.OIL_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetHistoryMyTasks(workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetHistoryMyTasks(workflow.OIL_FIRST_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } if actisvc.GetHistoryMyTasks(workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY, this.User.Id) != "" { certIdList = fmt.Sprintf("%s %s", certIdList, actisvc.GetHistoryMyTasks(workflow.OIL_SECOND_ENUSER_SUPPLIER_APPLY, this.User.Id)) certIdList = certIdList + "," } certIdList = strings.Trim(certIdList, ",") certIdarr := strings.Split(certIdList, ",") for i, item := range certIdarr { idx := strings.Index(item, "-") if idx >= 0 { certIdarr[i] = strings.Split(item, "-")[0] } } certIdList = strings.Join(certIdarr, ",") var list []supplier.OilSupplierView if certIdList != "" { where += " and b.Id in (" + certIdList + ")" svc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, page.CurrentPage, page.Size, orderby, asc, &list, where) for _, item := range list { todo.Id = item.Id todo.CertId = item.CertId todo.SupplierTypeCode = item.SupplierTypeCode todo.Type = todolist.SUPPLIER todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "2" || stype == "" { //已办任务 -- 增项 whereapp := "1=1" whereapp = whereapp + " and b.Status>0" appendIdList := actisvc.GetHistoryMyTasks(workflow.OIL_APPEND_APPLY, this.User.Id) appendIdarr := strings.Split(appendIdList, ",") for i, item := range appendIdarr { idx := strings.Index(item, "-") if (idx >= 0) { appendIdarr[i] = strings.Split(item, "-")[0] } } appendIdList = strings.Join(appendIdarr, ",") var listapp []suppliercertappend.OilSupplierCertAppendTodo svcapp := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE) if appendIdList != "" { whereapp += " and b.Id in (" + appendIdList + ")" svcapp.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertAppendName, page.CurrentPage, page.Size, orderby, asc, &listapp, whereapp) for _, item := range listapp { todo.Id = item.Id todo.Type = todolist.CERTAPPEND todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.AppendType todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "3" || stype == "" { // 已办--年审 whereannu := "1=1" if supplierName != "" { whereannu = whereannu + " and SupplierName like '%" + supplierName + "%'" } var listannu []annualaudit.OilAnnualAudit annuIdList := actisvc.GetHistoryMyTasks(workflow.OIL_AUDIT_APPLY, this.User.Id) annuIdarr := strings.Split(annuIdList, ",") for i, item := range annuIdarr { idx := strings.Index(item, "-") if idx >= 0 { annuIdarr[i] = strings.Split(item, "-")[0] } } annuIdList = strings.Join(annuIdarr, ",") if annuIdList != "" { whereannu += " and Id in (" + annuIdList + ")" //根据部门查询待办任务 whereannu += " and Status != 2 " svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listannu, whereannu) for _, item := range listannu { todo.Id = item.Id todo.SupplierId = strconv.Itoa(item.SupplierId) todo.Type = todolist.ANNUALAUDIT todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.SupplierTypeName todo.Step = strconv.Itoa(item.Step) todo.WorkflowId = item.WorkflowId todo.Status = item.Status todo.CertId = strconv.Itoa(item.CerId) todolists = append(todolists, todo) } } } if stype == "4" || stype == "" { // 已办 ----- 信息变更 var listInfo []infochange.OilInfoChange whereInfo := "1=1" if supplierName != "" { whereInfo = where + " and SupplierName like '%" + supplierName + "%'" } infoList := actisvc.GetHistoryMyTasks(workflow.OIL_INFO_CHANGE, this.User.Id) infoIdarr := strings.Split(infoList, ",") for i, item := range infoIdarr { idx := strings.Index(item, "-") if (idx >= 0) { infoIdarr[i] = strings.Split(item, "-")[0] } } infoList = strings.Join(infoIdarr, ",") if infoList != "" { whereInfo += " and Id in (" + infoList + ")" svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listInfo, whereInfo) for _, item := range listInfo { todo.Id = item.Id todo.Type = todolist.INFOCHANGE todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = item.SupplierTypeName todo.Status = item.Status todolists = append(todolists, todo) } } } if stype == "5" || stype == "" { // 资质变更 var listqual []qualchange.OilQualChangeMain qualList := actisvc.GetHistoryMyTasks(workflow.OIL_QUAL_CHANGE, this.User.Id) qualIdarr := strings.Split(qualList, ",") for i, item := range qualIdarr { idx := strings.Index(item, "-") if idx >= 0 { qualIdarr[i] = strings.Split(item, "-")[0] } } qualList = strings.Join(qualIdarr, ",") wherequal := "1=1 " if supplierName != "" { wherequal = wherequal + " and SupplierName like '%" + supplierName + "%'" } if qualList != "" { wherequal += " and Id in (" + qualList + ")" wherequal += " and Status != -2 " svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &listqual, wherequal) for _, item := range listqual { todo.Id = item.Id todo.CertId = strconv.Itoa(item.SupplierCertId) todo.SupplierId = strconv.Itoa(item.SupplierId) todo.Type = todolist.QUALCHANGE todo.SupplierName = item.SupplierName todo.UserName = this.User.Realname todo.SupplierTypeCode = "0" todo.Status = item.Status todolists = append(todolists, todo) } } } var datainfo DataInfo datainfo.Items = todolists this.Data["json"] = &datainfo this.ServeJSON() }