Browse Source

fix:修改审批流的逻辑bug

zqbao 5 months ago
parent
commit
5508a28878

+ 21 - 13
controllers/bi_approve/bi_approve_flow.go

@@ -13,7 +13,7 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
-type BiApproveFlow struct {
+type BiApproveFlowController struct {
 	controllers.BaseAuthController
 }
 
@@ -27,7 +27,7 @@ type BiApproveFlow struct {
 // @Param   SortRule			query	int		false	"排序方式: 1-正序; 2-倒序(默认)"
 // @Success 200 {object} report_approve.ReportApproveListResp
 // @router /flow/list [get]
-func (c *BiApproveFlow) List() {
+func (c *BiApproveFlowController) List() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -54,7 +54,7 @@ func (c *BiApproveFlow) List() {
 		pars = utils.GetLikeKeywordPars(pars, keyword, 1)
 	}
 	if classifyId > 0 {
-		condition += " AND classify_id = ?"
+		condition += ` AND classify_id = ?`
 		pars = append(pars, classifyId)
 	}
 	startSize := paging.StartIndex(currentIndex, pageSize)
@@ -88,7 +88,7 @@ func (c *BiApproveFlow) List() {
 // @Param	request	body request.BiApproveFlowSaveReq true "type json string"
 // @Success 200
 // @router /flow/add [post]
-func (c *BiApproveFlow) Add() {
+func (c *BiApproveFlowController) Add() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -127,7 +127,7 @@ func (c *BiApproveFlow) Add() {
 		return
 	}
 
-	msg, err := biapprove.SaveBiApproveFlow(req)
+	_, msg, err := biapprove.SaveBiApproveFlow(req)
 	if err != nil {
 		if msg != "" {
 			br.Msg = msg
@@ -149,7 +149,7 @@ func (c *BiApproveFlow) Add() {
 // @Param	request	body request.BiApproveFlowSaveReq true "type json string"
 // @Success 200 {object} report_approve.ReportApproveFlowDetailItem
 // @router /flow/edit [post]
-func (c *BiApproveFlow) Edit() {
+func (c *BiApproveFlowController) Edit() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -188,18 +188,22 @@ func (c *BiApproveFlow) Edit() {
 		return
 	}
 
-	msg, err := biapprove.SaveBiApproveFlow(req)
+	ok, msg, err := biapprove.SaveBiApproveFlow(req)
 	if err != nil {
 		if msg != "" {
 			br.Msg = msg
 		} else {
-			br.Msg = "新增审批流失败"
+			br.Msg = "编辑审批流失败"
 		}
-		br.ErrMsg = "新增审批流失败, err:" + err.Error()
+		br.ErrMsg = "编辑审批流失败, err:" + err.Error()
+		return
+	}
+	if !ok {
+		br.Msg = msg
 		return
 	}
 
-	br.Msg = "新增审批流成功"
+	br.Msg = "编辑审批流成功"
 	br.Success = true
 	br.Ret = 200
 }
@@ -210,7 +214,7 @@ func (c *BiApproveFlow) Edit() {
 // @Param	request	body request.BiApproveFlowRemoveResp true "type json string"
 // @Success 200 {object} report_approve.ReportApproveFlowDetailItem
 // @router /flow/remove [post]
-func (c *BiApproveFlow) Remove() {
+func (c *BiApproveFlowController) Remove() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -229,7 +233,7 @@ func (c *BiApproveFlow) Remove() {
 		br.Msg = "审批流不存在, 请刷新重试"
 		return
 	}
-	msg, err := biapprove.DeleteBiApproveFlow(req.BiApproveFlowId)
+	ok, msg, err := biapprove.DeleteBiApproveFlow(req.BiApproveFlowId)
 	if err != nil {
 		if msg != "" {
 			br.Msg = msg
@@ -239,6 +243,10 @@ func (c *BiApproveFlow) Remove() {
 		br.ErrMsg = "删除审批流失败, err:" + err.Error()
 		return
 	}
+	if !ok {
+		br.Msg = msg
+		return
+	}
 
 	br.Msg = "删除审批流成功"
 	br.Success = true
@@ -251,7 +259,7 @@ func (c *BiApproveFlow) Remove() {
 // @Param	request	body request.BiApproveFlowRemoveResp true "type json string"
 // @Success 200 {object} report_approve.ReportApproveFlowDetailItem
 // @router /flow/detail [get]
-func (c *BiApproveFlow) Detail() {
+func (c *BiApproveFlowController) Detail() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {

+ 2 - 2
models/bi_approve/bi_approve_flow.go

@@ -129,7 +129,7 @@ func GetBiApproveFlowByCondition(condition string, pars []interface{}, startSize
 	o := global.DmSQL["rddp"]
 	sql := "SELECT * FROM bi_approve_flow WHERE 1=1 "
 	if condition != "" {
-		sql += " AND " + condition
+		sql += condition
 	}
 	sql += " LIMIT ?,?"
 	pars = append(pars, startSize, pageSize)
@@ -141,7 +141,7 @@ func GetBiApproveFlowCountByCondition(condition string, pars []interface{}) (cou
 	o := global.DmSQL["rddp"]
 	sql := "SELECT COUNT(*) AS count FROM bi_approve_flow WHERE 1=1 "
 	if condition != "" {
-		sql += " AND " + condition
+		sql += condition
 	}
 	err = o.Raw(sql, pars...).Scan(&count).Error
 	return

+ 20 - 0
models/bi_approve/bi_approve_message.go

@@ -0,0 +1,20 @@
+package biapprove
+
+import "time"
+
+type ReportApproveMessage struct {
+	Id            int       `gorm:"primaryKey;column:id"`
+	SendUserId    int       `gorm:"column:send_user_id"`      // 发送人Id
+	ReceiveUserId int       `gorm:"column:receive_user_id"`   // 接收者Id
+	Content       string    `gorm:"column:content"`           // 消息内容
+	Remark        string    `gorm:"column:remark"`            // 备注信息
+	BiApproveId   int       `gorm:"column:report_approve_id"` // 审批Id
+	ApproveState  int       `gorm:"column:approve_state"`     // 审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回
+	IsRead        int       `gorm:"column:is_read"`           // 是否已读:0-未读;1-已读
+	CreateTime    time.Time `gorm:"column:create_time"`       // 创建时间
+	ModifyTime    time.Time `gorm:"column:modify_time"`       // 修改时间
+}
+
+func (r *ReportApproveMessage) TableName() string {
+	return "bi_approve_message"
+}

+ 6 - 2
models/bi_approve/bi_approve_node.go

@@ -18,13 +18,17 @@ type BiApproveNode struct {
 	CreatedTime     time.Time `gorm:"column:created_time"`
 }
 
+func (b *BiApproveNode) TableName() string {
+	return "bi_approve_node"
+}
+
 func UpdateNextNodes(nodes []*BiApproveNode) (err error) {
 	if len(nodes) == 0 {
 		return
 	}
 	updateCols := []string{"NextNodeId"}
 	for _, v := range nodes {
-		e := global.DmSQL["rddp"].Model(&BiApproveNode{}).Select(updateCols).Updates(v).Error
+		e := global.DmSQL["rddp"].Select(updateCols).Updates(v).Error
 		if e != nil {
 			err = fmt.Errorf("prev node update err: %v", e)
 			return
@@ -34,6 +38,6 @@ func UpdateNextNodes(nodes []*BiApproveNode) (err error) {
 }
 
 func GetBiApproveNodeByFlowIdAndVersionId(flowId int, versionId int) (node []*BiApproveNode, err error) {
-	err = global.DmSQL["rddp"].Where("bi_approve_flow_id =? AND curr_version =?", flowId, versionId).Scan(&node).Error
+	err = global.DmSQL["rddp"].Model(&BiApproveNode{}).Where("bi_approve_flow_id =? AND curr_version =?", flowId, versionId).Scan(&node).Error
 	return
 }

+ 54 - 0
routers/commentsRouter.go

@@ -241,6 +241,60 @@ 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.ControllerComments{
+            Method: "List",
+            Router: `/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/flow/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"],
+        beego.ControllerComments{
+            Method: "Detail",
+            Router: `/flow/detail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/flow/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/flow/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/bi_approve:BiApproveFlowController"],
+        beego.ControllerComments{
+            Method: "Remove",
+            Router: `/flow/remove`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers/data_manage/correlation:CorrelationChartClassifyController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/data_manage/correlation:CorrelationChartClassifyController"],
         beego.ControllerComments{
             Method: "AddChartClassify",

+ 6 - 0
routers/router.go

@@ -10,6 +10,7 @@ package routers
 import (
 	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/controllers/ai"
+	biapprove "eta_gn/eta_api/controllers/bi_approve"
 	"eta_gn/eta_api/controllers/data_manage"
 	"eta_gn/eta_api/controllers/data_manage/correlation"
 	"eta_gn/eta_api/controllers/data_manage/cross_variety"
@@ -352,6 +353,11 @@ func init() {
 				&report_approve.ReportApproveFlowController{},
 			),
 		),
+		web.NSNamespace("/bi_approve",
+			web.NSInclude(
+				&biapprove.BiApproveFlowController{},
+			),
+		),
 		web.NSNamespace("/data_source",
 			web.NSInclude(
 				&data_source.DataSourceController{},

+ 33 - 7
services/bi_approve/bi_approve_flow.go

@@ -31,7 +31,7 @@ func GetBiApproveFlowList(condition string, pars []interface{}, startSize, pageS
 }
 
 // SaveBiApproveFlow 保存审批流
-func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (msg string, err error) {
+func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (ok bool, msg string, err error) {
 	if flow.BiApproveFlowId == 0 {
 		t := &biapprove.BiApproveFlow{
 			FlowName:    flow.FlowName,
@@ -60,6 +60,7 @@ func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (msg string, err erro
 			msg = "保存审批流失败"
 			return
 		}
+		ok = true
 	} else {
 		resFlow, er := biapprove.GetBiApproveFlowById(flow.BiApproveFlowId)
 		if er != nil {
@@ -67,6 +68,15 @@ func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (msg string, err erro
 			err = er
 			return
 		}
+		ok, err = CheckDeleteBiApproveFlow(resFlow.BiApproveFlowId)
+		if err != nil {
+			msg = "保存审批流失败"
+			return
+		}
+		if !ok {
+			msg = "保存审批流失败, 存在还未审批的报告"
+			return
+		}
 		var updateCols []string
 		if resFlow.FlowName != flow.FlowName {
 			resFlow.FlowName = flow.FlowName
@@ -97,6 +107,7 @@ func SaveBiApproveFlow(flow *request.BiApproveFlowSaveReq) (msg string, err erro
 			msg = "保存审批流失败"
 			return
 		}
+		ok = true
 	}
 	return
 }
@@ -120,12 +131,16 @@ func GetBiApproveFlowDetail(flowId int) (detail *response.BiApproveFlowDetailRes
 	return
 }
 
-func DeleteBiApproveFlow(flowId int) (msg string, err error) {
-	// biflow, err := biapprove.GetBiApproveFlowById(flowId)
-	// if err != nil {
-	// 	msg = "删除审批流失败"
-	// 	return
-	// }
+func DeleteBiApproveFlow(flowId int) (ok bool, msg string, err error) {
+	ok, err = CheckDeleteBiApproveFlow(flowId)
+	if err != nil {
+		msg = "删除审批流失败"
+		return
+	}
+	if !ok {
+		msg = "删除审批流失败, 存在还未审批的报告"
+		return
+	}
 
 	t := &biapprove.BiApproveFlow{
 		BiApproveFlowId: flowId,
@@ -135,6 +150,17 @@ func DeleteBiApproveFlow(flowId int) (msg string, err error) {
 		msg = "删除审批流失败"
 		return
 	}
+	ok = true
+	return
+}
+
+func CheckDeleteBiApproveFlow(flowId int) (ok bool, err error) {
+	_, err = biapprove.GetBiApproveFlowById(flowId)
+	if err != nil {
+		return
+	}
+	// TODO: 检查是否存在还未审批的报告
+	ok = true
 	return
 }