Browse Source

Merge branch 'BI_Dashboard' of http://8.136.199.33:3000/eta_gn_server/eta_api into BI_Dashboard

zwxi 6 months ago
parent
commit
32ad57862e

+ 34 - 2
controllers/bi_approve/bi_approve.go

@@ -3,11 +3,12 @@ package biapprove
 import (
 	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/models"
+	biapprove "eta_gn/eta_api/services/bi_approve"
 	"eta_gn/eta_api/utils"
 	"time"
 )
 
-type BIApproveController struct {
+type BiApproveController struct {
 	controllers.BaseAuthController
 }
 
@@ -27,7 +28,7 @@ type BIApproveController struct {
 // @Param   SortRule			query	int		false	"排序方式: 1-正序; 2-倒序(默认)"
 // @Success 200 {object} report_approve.ReportApproveListResp
 // @router /list [get]
-func (this *BIApproveController) List() {
+func (this *BiApproveController) List() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -111,3 +112,34 @@ func (this *BIApproveController) List() {
 	}
 
 }
+
+// list
+// @Title 公共看板分类列表
+// @Description 公共看板分类列表
+// @Success 200 {object} report_approve.ReportApproveFlowDetailItem
+// @router /classify/list [get]
+func (this *BiApproveController) ClassifyList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	res, msg, err := biapprove.GetPulicBiClassifyList()
+	if err != nil {
+		if msg == "" {
+			br.Msg = "获取分类列表失败"
+		} else {
+			br.Msg = msg
+		}
+		br.ErrMsg = err.Error()
+		return
+	}
+
+	br.Data = res
+	br.Msg = "获取分类列表成功"
+	br.Ret = 200
+	br.Success = true
+}

+ 10 - 1
models/bi_approve/bi_approve.go

@@ -1,6 +1,9 @@
 package biapprove
 
-import "time"
+import (
+	"eta_gn/eta_api/global"
+	"time"
+)
 
 type BiApprove struct {
 	BiApproveId   int       `gorm:"column:bi_approve_id;primary_key"`
@@ -23,3 +26,9 @@ type BiApprove struct {
 func (b *BiApprove) TableName() string {
 	return "bi_approve"
 }
+
+func GetBiApproveByFlowIdAndVersionId(biFlowId int, flowVersion int) (item []*BiApprove, err error) {
+	db := global.DmSQL["rddp"]
+	err = db.Where("flow_id = ? AND flow_version = ?", biFlowId, flowVersion).Find(&item).Error
+	return
+}

+ 5 - 0
models/bi_approve/bi_approve_flow.go

@@ -125,6 +125,11 @@ func GetBiApproveFlowById(biApproveFlowId int) (item *BiApproveFlow, err error)
 	return
 }
 
+func GetBiApproveFlowByClassifyId(classifyId int) (item *BiApproveFlow, err error) {
+	err = global.DmSQL["rddp"].Where("classify_id = ?", classifyId).First(&item).Error
+	return
+}
+
 func GetBiApproveFlowByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*BiApproveFlow, err error) {
 	o := global.DmSQL["rddp"]
 	sql := "SELECT * FROM bi_approve_flow WHERE 1=1 "

+ 26 - 11
models/bi_dashboard/bi_dashboard_classify.go

@@ -6,11 +6,18 @@ import (
 )
 
 type BiDashboardClassify struct {
-	BiDashboardClassifyId int       `gorm:"primaryKey;autoIncrement;column:bi_dashboard_classify_id"` // bi看板分类id
-	BiDashboardClassifyName string    `gorm:"column:bi_dashboard_classify_name;size:255;not null" ` // 看板分类名称
-	Sort                   int       `gorm:"column:sort" ` // 排序字段
-	CreateTime             time.Time `gorm:"column:create_time" ` // 创建时间
-	ModifyTime             time.Time `gorm:"column:modify_time"` // 更新时间
+	BiDashboardClassifyId   int       `gorm:"primaryKey;autoIncrement;column:bi_dashboard_classify_id"` // bi看板分类id
+	BiDashboardClassifyName string    `gorm:"column:bi_dashboard_classify_name;size:255;not null" `     // 看板分类名称
+	Sort                    int       `gorm:"column:sort" `                                             // 排序字段
+	CreateTime              time.Time `gorm:"column:create_time" `                                      // 创建时间
+	ModifyTime              time.Time `gorm:"column:modify_time"`                                       // 更新时间
+}
+type BiDashboardClassifyItem struct {
+	BiDashboardClassifyId   int    // bi看板分类id
+	BiDashboardClassifyName string // 看板分类名称
+	Sort                    int    // 排序字段
+	CreateTime              string // 创建时间
+	ModifyTime              string // 更新时间
 }
 
 // tableName
@@ -31,13 +38,12 @@ type RespGroupList struct {
 	GrantList   []RespGroupListItem
 }
 
-
 type RespGroupListItem struct {
-	GroupId   int64  `description:"目录id"`
-	GroupName string `description:"目录名称"`
-	AdminId   int    `description:"目录创建者账号ID"`
-	IsShare   int8   `description:"是否共享,0私有,1共享"`
-	DashboardList   []*RespGroupDashboardListItem
+	GroupId       int64  `description:"目录id"`
+	GroupName     string `description:"目录名称"`
+	AdminId       int    `description:"目录创建者账号ID"`
+	IsShare       int8   `description:"是否共享,0私有,1共享"`
+	DashboardList []*RespGroupDashboardListItem
 }
 
 type RespGroupDashboardListItem struct {
@@ -60,3 +66,12 @@ type RespGroupDashboardListItem struct {
 	TitleSetting  string `description:"PPT标题设置"`
 }
 
+func GetBiDashboardClassifyAllList() (list []*BiDashboardClassify, err error) {
+	err = global.DEFAULT_DmSQL.Select("*").Find(&list).Error
+	return
+}
+
+func GetBiDashboardClassifyById(id int) (item *BiDashboardClassify, err error) {
+	err = global.DEFAULT_DmSQL.Where("bi_dashboard_classify_id = ?", id).First(&item).Error
+	return
+}

+ 10 - 1
routers/commentsRouter.go

@@ -241,7 +241,16 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BIApproveController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BIApproveController"],
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveController"],
+        beego.ControllerComments{
+            Method: "ClassifyList",
+            Router: `/classify/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveController"],
         beego.ControllerComments{
             Method: "List",
             Router: `/list`,

+ 1 - 0
routers/router.go

@@ -356,6 +356,7 @@ func init() {
 		web.NSNamespace("/bi_approve",
 			web.NSInclude(
 				&biapprove.BiApproveFlowController{},
+				&biapprove.BiApproveController{},
 			),
 		),
 		web.NSNamespace("/data_source",

+ 23 - 0
services/bi_approve/bi_approve.go

@@ -0,0 +1,23 @@
+package biapprove
+
+import "eta_gn/eta_api/models/bi_dashboard"
+
+func GetPulicBiClassifyList() (res []*bi_dashboard.BiDashboardClassifyItem, msg string, err error) {
+	classifyList, err := bi_dashboard.GetBiDashboardClassifyAllList()
+	if err != nil {
+		msg = "获取公共分类列表失败"
+		return
+	}
+	res = toClassifyItem(classifyList)
+	return
+}
+
+func toClassifyItem(src []*bi_dashboard.BiDashboardClassify) (dst []*bi_dashboard.BiDashboardClassifyItem) {
+	for _, item := range src {
+		dst = append(dst, &bi_dashboard.BiDashboardClassifyItem{
+			BiDashboardClassifyId:   item.BiDashboardClassifyId,
+			BiDashboardClassifyName: item.BiDashboardClassifyName,
+		})
+	}
+	return
+}

+ 45 - 7
services/bi_approve/bi_approve_flow.go

@@ -5,6 +5,7 @@ import (
 	biapprove "eta_gn/eta_api/models/bi_approve"
 	"eta_gn/eta_api/models/bi_approve/request"
 	"eta_gn/eta_api/models/bi_approve/response"
+	"eta_gn/eta_api/models/bi_dashboard"
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"time"
@@ -32,13 +33,34 @@ func GetBiApproveFlowList(condition string, pars []interface{}, startSize, pageS
 
 // SaveBiApproveFlow 保存审批流
 func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (ok bool, msg string, err error) {
+	classifyInfo, err := bi_dashboard.GetBiDashboardClassifyById(flow.ClassifyId)
+	if err != nil {
+		if utils.IsErrNoRow(err) {
+			msg = "保存审批流失败, 分类不存在"
+			return
+		}
+		msg = "保存审批流失败"
+		return
+	}
 	if flow.BiApproveFlowId == 0 {
+		tmp, er := biapprove.GetBiApproveFlowByClassifyId(flow.ClassifyId)
+		if er != nil {
+			msg = "保存审批流失败"
+			err = er
+			return
+		}
+		if tmp != nil && tmp.BiApproveFlowId > 0 {
+			msg = "保存审批流失败, 分类下已存在审批流"
+			return
+		}
+
 		t := &biapprove.BiApproveFlow{
-			FlowName:    flow.FlowName,
-			ClassifyId:  flow.ClassifyId,
-			CurrVersion: 1,
-			CreateTime:  time.Now(),
-			ModifyTime:  time.Now(),
+			FlowName:     flow.FlowName,
+			ClassifyId:   flow.ClassifyId,
+			ClassifyName: classifyInfo.BiDashboardClassifyName,
+			CurrVersion:  1,
+			CreateTime:   time.Now(),
+			ModifyTime:   time.Now(),
 		}
 		biFlowNodeItems := make([]*biapprove.BiApproveNode, 0)
 		for _, node := range flow.Nodes {
@@ -131,10 +153,15 @@ func GetBiApproveFlowDetail(flowId int) (detail *response.BiApproveFlowDetailRes
 	}
 	return
 }
+
 // DeleteBiApproveFlow 删除审批流
 func DeleteBiApproveFlow(flowId int) (ok bool, msg string, err error) {
 	ok, err = CheckDeleteBiApproveFlow(flowId)
 	if err != nil {
+		if utils.IsErrNoRow(err) {
+			msg = "删除审批流失败, 审批流不存在"
+			return
+		}
 		msg = "删除审批流失败"
 		return
 	}
@@ -154,13 +181,24 @@ func DeleteBiApproveFlow(flowId int) (ok bool, msg string, err error) {
 	ok = true
 	return
 }
+
 // CheckDeleteBiApproveFlow 检查是否可以删除审批流
 func CheckDeleteBiApproveFlow(flowId int) (ok bool, err error) {
-	_, err = biapprove.GetBiApproveFlowById(flowId)
+	flowInfo, err := biapprove.GetBiApproveFlowById(flowId)
 	if err != nil {
 		return
 	}
-	// TODO: 检查是否存在还未审批的报告
+	// 检查是否存在还未审批的Bi看报
+	approveList, err := biapprove.GetBiApproveByFlowIdAndVersionId(flowInfo.BiApproveFlowId, flowInfo.CurrVersion)
+	if err != nil {
+		return
+	}
+	for _, v := range approveList {
+		if v.State == BiApproveApproveStateApproving {
+			return false, nil
+		}
+	}
+
 	ok = true
 	return
 }

+ 22 - 0
services/bi_approve/constant.go

@@ -0,0 +1,22 @@
+package biapprove
+
+// 节点审批方式
+const (
+	NodeApproveTypeRoll = 1 // 依次审批
+	NodeApproveTypeAll  = 2 // 会签
+	NodeApproveTypeAny  = 3 // 或签
+)
+
+// 节点审批人类型
+const (
+	NodeUserTypeNormal = "user" // 用户
+	NodeUserTypeRole   = "role" // 角色
+)
+
+// 报告审批状态
+const (
+	BiApproveApproveStateApproving = 1 // 待审批
+	BiApproveApproveStatePass      = 2 // 已审批
+	BiApproveApproveStateRefuse    = 3 // 已驳回
+	BiApproveApproveStateCancel    = 4 // 已撤销
+)