|
@@ -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
|
|
|
}
|