|
@@ -7,9 +7,16 @@ import (
|
|
|
"eta_gn/eta_api/utils"
|
|
|
"fmt"
|
|
|
"sort"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+var (
|
|
|
+ timeField = map[int]string{1: fmt.Sprintf("a.%s", biapprove.BiApproveCols.CreateTime), 2: fmt.Sprintf("a.%s", biapprove.BiApproveCols.ApproveTime), 3: fmt.Sprintf("b.%s", biapprove.BiApproveCols.ApproveTime)}
|
|
|
+ myTimeField = map[int]string{1: fmt.Sprintf("%s", biapprove.BiApproveCols.CreateTime), 3: fmt.Sprintf("%s", biapprove.BiApproveCols.ApproveTime)}
|
|
|
+ orderRules = map[int]string{1: "ASC", 2: "DESC"}
|
|
|
+)
|
|
|
+
|
|
|
func GetPulicBiClassifyList() (res []*bi_dashboard.BiDashboardClassifyItem, msg string, err error) {
|
|
|
classifyList, err := bi_dashboard.GetBiDashboardClassifyAllList()
|
|
|
if err != nil {
|
|
@@ -414,3 +421,218 @@ func updateBiApproveState(biId, approveId, state int) (err error) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func ProcessingBiApprove(adminId, classifyId, timeType, sortField, sortRule, startSize, pageSize int, adminName, startTime, endTime, keyword string) (ormList []*biapprove.BiApproveItemOrm, respTotal int, msg string, err error) {
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ cond := ` AND a.state = ? AND b.state = ? AND a."approve_user_id" = ?`
|
|
|
+ pars = append(pars, BiApproveStateApproving, BiApproveStateApproving, adminId)
|
|
|
+ order := ""
|
|
|
+
|
|
|
+ // 筛选条件
|
|
|
+ if classifyId > 0 {
|
|
|
+ cond += ` AND b.classify_id = ?`
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+ if timeType <= 0 {
|
|
|
+ timeType = 1
|
|
|
+ }
|
|
|
+ if timeType == 1 && startTime != "" && endTime != "" {
|
|
|
+ _, e := time.Parse(utils.FormatDate, startTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "开始时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime, e := time.Parse(utils.FormatDate, endTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "结束时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime = tmpEndTime.AddDate(0, 0, 1)
|
|
|
+ cond += ` AND (b.create_time BETWEEN ? AND ?)`
|
|
|
+ pars = append(pars, startTime, tmpEndTime)
|
|
|
+ }
|
|
|
+ keyword = strings.TrimSpace(keyword)
|
|
|
+ if keyword != "" {
|
|
|
+ kw := fmt.Sprint("%", keyword, "%")
|
|
|
+ cond += ` AND b.bi_title LIKE ?`
|
|
|
+ pars = append(pars, kw)
|
|
|
+ }
|
|
|
+ if sortField > 0 && sortRule > 0 {
|
|
|
+ var orderField, orderRule string
|
|
|
+ switch sortField {
|
|
|
+ case 1:
|
|
|
+ orderField = "b.create_time"
|
|
|
+ case 2:
|
|
|
+ orderField = "a.approve_time"
|
|
|
+ case 3:
|
|
|
+ orderField = "b.approve_time"
|
|
|
+ }
|
|
|
+ switch sortRule {
|
|
|
+ case 1:
|
|
|
+ orderRule = "ASC"
|
|
|
+ case 2:
|
|
|
+ orderRule = "DESC"
|
|
|
+ }
|
|
|
+ order = fmt.Sprintf("%s %s", orderField, orderRule)
|
|
|
+ }
|
|
|
+ total, e := biapprove.GetApprovingBiApproveCount(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, e := biapprove.GetApprovingBiApprovePageList(cond, pars, order, startSize, pageSize)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ respTotal = total
|
|
|
+ ormList = list
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// SolvedBiApprove 已处理的审批
|
|
|
+func SolvedBiApprove(adminId, classifyId, timeType, sortField, sortRule, approveState, startSize, pageSize int, adminName, startTime, endTime, keyword string) (ormList []*biapprove.BiApproveItemOrm, respTotal int, msg string, err error) {
|
|
|
+ cond := fmt.Sprintf(` AND a.%s = ? AND a.%s IN (?)`, biapprove.BiApproveRecordCols.ApproveUserId, biapprove.BiApproveRecordCols.NodeState)
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, adminId, []int{BiApproveStatePass, BiApproveStateRefuse})
|
|
|
+ order := ""
|
|
|
+
|
|
|
+ // 筛选条件
|
|
|
+ if classifyId > 0 {
|
|
|
+ cond += fmt.Sprintf(` AND b.%s = ?`, biapprove.BiApproveCols.ClassifyId)
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+ if timeType > 0 && startTime != "" && endTime != "" {
|
|
|
+ _, e := time.Parse(utils.FormatDate, startTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "开始时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime, e := time.Parse(utils.FormatDate, endTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "结束时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime = tmpEndTime.AddDate(0, 0, 1)
|
|
|
+ cond += fmt.Sprintf(` AND (%s BETWEEN ? AND ?)`, timeField[timeType])
|
|
|
+ pars = append(pars, startTime, tmpEndTime)
|
|
|
+ }
|
|
|
+ keyword = strings.TrimSpace(keyword)
|
|
|
+ if keyword != "" {
|
|
|
+ kw := fmt.Sprint("%", keyword, "%")
|
|
|
+ cond += fmt.Sprintf(` AND b.%s LIKE ?`, biapprove.BiApproveCols.BiTitle)
|
|
|
+ pars = append(pars, kw)
|
|
|
+ }
|
|
|
+ if sortField > 0 && sortRule > 0 {
|
|
|
+ orderField := timeField[sortField]
|
|
|
+ if orderField == "" {
|
|
|
+ msg = "时间排序字段有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ orderRule := orderRules[sortRule]
|
|
|
+ if orderRule == "" {
|
|
|
+ msg = "时间排序方式有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ order = fmt.Sprintf("%s %s", orderField, orderRule)
|
|
|
+ }
|
|
|
+ if approveState > 0 {
|
|
|
+ cond += fmt.Sprintf(` AND a.%s = ?`, biapprove.BiApproveRecordCols.State)
|
|
|
+ pars = append(pars, approveState)
|
|
|
+ }
|
|
|
+ total, e := biapprove.GetApprovedBiApproveCount(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = fmt.Errorf("GetApprovedBiApproveCount err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, e := biapprove.GetApprovedBiApprovePageList(cond, pars, order, startSize, pageSize)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = fmt.Errorf("GetApprovedBiApprovePageList err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ // 这个时候的状态,用审批状态
|
|
|
+ v.RecordState = v.NodeState
|
|
|
+ v.ApproveTime = v.NodeApproveTime
|
|
|
+ }
|
|
|
+ ormList = list
|
|
|
+ respTotal = total
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func MyApplyBiApproves(adminId, classifyId, timeType, sortField, sortRule, approveState, startSize, pageSize int, adminName, startTime, endTime, keyword string) (ormList []*biapprove.BiApproveItemOrm, respTotal int, msg string, err error) {
|
|
|
+ cond := fmt.Sprintf(` AND a.%s = ?`, biapprove.BiApproveCols.ApplyUserId)
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, adminId)
|
|
|
+ order := ""
|
|
|
+
|
|
|
+ // 筛选条件
|
|
|
+ if classifyId > 0 {
|
|
|
+ cond += fmt.Sprintf(` AND a.%s = ?`, biapprove.BiApproveCols.ClassifyId)
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ }
|
|
|
+ if timeType > 0 && startTime != "" && endTime != "" {
|
|
|
+ _, e := time.Parse(utils.FormatDate, startTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "开始时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime, e := time.Parse(utils.FormatDate, endTime)
|
|
|
+ if e != nil {
|
|
|
+ msg = "结束时间格式有误"
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpEndTime = tmpEndTime.AddDate(0, 0, 1)
|
|
|
+ cond += fmt.Sprintf(` AND (%s BETWEEN ? AND ?)`, timeField[timeType])
|
|
|
+ pars = append(pars, startTime, tmpEndTime)
|
|
|
+ }
|
|
|
+ keyword = strings.TrimSpace(keyword)
|
|
|
+ if keyword != "" {
|
|
|
+ kw := fmt.Sprint("%", keyword, "%")
|
|
|
+ cond += fmt.Sprintf(` AND a.%s LIKE ?`, biapprove.BiApproveCols.BiTitle)
|
|
|
+ pars = append(pars, kw)
|
|
|
+ }
|
|
|
+ if sortField > 0 && sortRule > 0 {
|
|
|
+ orderField := myTimeField[sortField]
|
|
|
+ if orderField == "" {
|
|
|
+ msg = "时间排序字段有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ orderRule := orderRules[sortRule]
|
|
|
+ if orderRule == "" {
|
|
|
+ msg = "时间排序方式有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ order = fmt.Sprintf("%s %s", orderField, orderRule)
|
|
|
+ }
|
|
|
+ if approveState > 0 {
|
|
|
+ cond += fmt.Sprintf(` AND a.%s = ?`, biapprove.BiApproveRecordCols.State)
|
|
|
+ pars = append(pars, approveState)
|
|
|
+ }
|
|
|
+ total, e := biapprove.GetApplyBiApproveCount(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = fmt.Errorf("GetApplyBiApproveCount err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ respTotal = total
|
|
|
+ list, e := biapprove.GetApplyBiApprovePageList(cond, pars, order, startSize, pageSize)
|
|
|
+ if e != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ err = fmt.Errorf("GetApplyBiApprovePageList err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ormList = list
|
|
|
+ return
|
|
|
+}
|