瀏覽代碼

Merge branch 'BI_Dashboard' into dm

zwxi 5 月之前
父節點
當前提交
c238d987bf

+ 175 - 22
controllers/bi_dashboard.go

@@ -533,9 +533,9 @@ func (this *BIDaShboardController) PublicList() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	grantList := bi_dashboard.RespGroupList{}
+	resp := make([]*bi_dashboard.RespPublicGroupListItem, 0)
 	// 获取公共看板列表
-	publicCond := ` AND state = 6 `
+	publicCond := ` AND state = 6 AND bi_dashboard_classify_id > 0 `
 	publicPars := []interface{}{this.SysUser.AdminId}
 	publicList, err := bi_dashboard.GetBiDashboardList(publicCond, publicPars)
 	if err != nil {
@@ -549,6 +549,7 @@ func (this *BIDaShboardController) PublicList() {
 
 	publicAdminIdList := make([]int, 0)
 	publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
+	publicDashboardClassifyIdMap := make(map[int]int)
 	for _, v := range publicList {
 		publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
 		if !ok {
@@ -572,6 +573,7 @@ func (this *BIDaShboardController) PublicList() {
 		}
 		publicDashboardList = append(publicDashboardList, tmp)
 		publicDashboardListMap[v.SysAdminId] = publicDashboardList
+		publicDashboardClassifyIdMap[v.BiDashboardClassifyId] = v.BiDashboardClassifyId
 	}
 	// 创建人信息
 	systemAdminMap := make(map[int]*system.Admin)
@@ -583,26 +585,48 @@ func (this *BIDaShboardController) PublicList() {
 		systemAdminMap[v.AdminId] = v
 	}
 
-	for _, v := range publicAdminIdList {
-		systemAdmin, ok := systemAdminMap[v]
-		if !ok {
-			continue
-		}
+	classifyList, err := bi_dashboard.GetBiDashboardClassifyAllList()
+	if err != nil {
+		br.Msg = "查询失败"
+		br.ErrMsg = "查询失败,Err:" + err.Error()
+		return
+	}
 
-		// 看板 列表信息
-		respGroupNameListItemList, ok := publicDashboardListMap[v]
-		if !ok {
-			respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
+	for _, c := range classifyList {
+		tmpItem := &bi_dashboard.RespPublicGroupListItem{
+			GroupId:   int64(c.BiDashboardClassifyId),
+			GroupName: c.BiDashboardClassifyName,
 		}
-
-		// ppt 分组信息
-		tmpRespGroupListItem := &bi_dashboard.RespOtherGroupListItem{
-			GroupId:       int64(systemAdmin.AdminId),
-			GroupName:     systemAdmin.RealName,
-			AdminId:       systemAdmin.AdminId,
-			DashboardList: respGroupNameListItemList,
+		if _, ok := publicDashboardClassifyIdMap[c.BiDashboardClassifyId]; ok {
+			for _, v := range publicAdminIdList {
+				systemAdmin, ok := systemAdminMap[v]
+				if !ok {
+					continue
+				}
+
+				// 看板 列表信息
+				respGroupNameListItemList, ok := publicDashboardListMap[v]
+				if !ok {
+					respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
+				}
+
+				// ppt 分组信息
+				tmpRespGroupListItem := &bi_dashboard.RespPublicGroupListItem{
+					GroupId:   int64(systemAdmin.AdminId),
+					GroupName: systemAdmin.RealName,
+					AdminId:   systemAdmin.AdminId,
+				}
+
+				for _, vv := range respGroupNameListItemList {
+					if vv.BiDashboardClassifyId == c.BiDashboardClassifyId {
+						tmpRespGroupListItem.DashboardList = append(tmpRespGroupListItem.DashboardList, vv)
+					}
+				}
+				tmpItem.Children = append(tmpItem.Children, tmpRespGroupListItem)
+
+				resp = append(resp, tmpItem)
+			}
 		}
-		grantList.OtherList = append(grantList.OtherList, tmpRespGroupListItem)
 	}
 
 	br.Ret = 200
@@ -795,7 +819,6 @@ func (this *BIDaShboardController) Grant() {
 
 	list := make([]*bi_dashboard.BiDashboardGrant, 0)
 
-
 	grantAdminIdStrList := strings.Split(req.AdminIdStr, ",")
 	lenGrantAdminIdStrList := len(grantAdminIdStrList) //指定用户的人数
 	for _, v := range grantAdminIdStrList {
@@ -870,7 +893,6 @@ func (this *BIDaShboardController) Public() {
 		return
 	}
 
-
 	item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
 	if err != nil && !utils.IsErrNoRow(err) {
 		br.Msg = "获取数据异常!"
@@ -889,7 +911,7 @@ func (this *BIDaShboardController) Public() {
 	} else {
 		item.State = 6
 	}
-	
+
 	item.BiDashboardClassifyId = req.ClassifyId
 
 	err = bi_dashboard.EditDashboard(item)
@@ -904,3 +926,134 @@ func (this *BIDaShboardController) Public() {
 	br.IsAddLog = true
 	br.Msg = "分配成功"
 }
+
+// GroupList
+// @Title 获取分类列表
+// @Description 获取分类列表接口
+// @Success 200 {object} models.RespGroupList
+// @router /classify/list [get]
+func (this *BIDaShboardController) ClassifyList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	classifyList, err := bi_dashboard.GetBiDashboardClassifyAllList()
+	if err != nil {
+		br.Msg = "查询失败"
+		br.ErrMsg = "查询失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "查询成功"
+	br.Data = classifyList
+	return
+}
+
+// CancelGrant
+// @Title 取消分配看板权限
+// @Description 取消分配看板权限
+// @Param	request	body bi_dashboard.DelDashboardReq true "type json string"
+// @Success 200 Ret=200 分配成功
+// @router /grant/cancel [post]
+func (this *BIDaShboardController) CancelGrant() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req bi_dashboard.DelDashboardReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.BiDashboardId <= 0 {
+		br.Msg = "参数错误"
+		return
+	}
+
+	item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
+	if err != nil {
+		br.Msg = "数据不存在"
+		br.ErrMsg = "数据不存在,Err:" + err.Error()
+		return
+	}
+	if item.SysAdminId != this.SysUser.AdminId {
+		br.Msg = "无权配置"
+		return
+	}
+
+	// 分配
+	err = bi_dashboard.DeleteDashboardGrant(req.BiDashboardId)
+	if err != nil {
+		br.Msg = "取消失败"
+		br.ErrMsg = "取消失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.IsAddLog = true
+	br.Msg = "取消成功"
+}
+
+// GrantInfo
+// @Title 获取分配ppt权限详情
+// @Description 获取分配ppt权限详情接口
+// @Param    BiDashboardId   query   int  true       "看板的id"
+// @Success 200 {object} models.GrantInfoResp
+// @router /grant/info [get]
+func (this *BIDaShboardController) GrantInfo() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	biDashboardId, _ := this.GetInt("BiDashboardId")
+	if biDashboardId <= 0 {
+		br.Msg = "参数错误"
+		return
+	}
+
+	item, err := bi_dashboard.GetDashboardById(biDashboardId)
+	if err != nil {
+		br.Msg = "数据不存在"
+		br.ErrMsg = "数据不存在,Err:" + err.Error()
+		return
+	}
+	if item.SysAdminId != this.SysUser.AdminId {
+		br.Msg = "无权配置"
+		return
+	}
+
+	grantInfoList, err := bi_dashboard.GetDashboardGrantInfo(biDashboardId)
+	if err != nil {
+		br.Msg = "信息获取失败"
+		br.ErrMsg = "信息获取失败,Err:" + err.Error()
+		return
+	}
+
+	if len(grantInfoList) <= 0 {
+		br.Msg = "未配置"
+		br.IsSendEmail = false
+		return
+	}
+
+	var adminIdStr string
+
+	adminIdsList := make([]string, 0)
+	for _, v := range grantInfoList {
+		adminIdsList = append(adminIdsList, strconv.Itoa(int(v.GrantAdminId)))
+	}
+	adminIdStr = strings.Join(adminIdsList, ",")
+
+	br.Ret = 200
+	br.Success = true
+	br.Data = adminIdStr
+	br.Msg = "查询成功"
+}

+ 10 - 0
models/bi_dashboard/bi_dashboard_grant.go

@@ -61,3 +61,13 @@ type PublicDashboardReq struct {
 	BiDashboardId int `description:"看板id" `
 	ClassifyId    int `description:"分类id"`
 }
+
+// del
+func DeleteDashboardGrant(biDashboardId int) (err error) {
+	return global.DEFAULT_DmSQL.Delete(&BiDashboardGrant{}, biDashboardId).Error
+}
+
+// get
+func GetDashboardGrantInfo(biDashboardId int) (list []*BiDashboardGrant, err error) {
+	return list, global.DEFAULT_DmSQL.Where("bi_dashboard_id=?", biDashboardId).Find(&list).Error
+}

+ 27 - 0
routers/commentsRouter.go

@@ -8260,6 +8260,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "ClassifyList",
+            Router: `/classify/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
         beego.ControllerComments{
             Method: "DeleteDashboard",
@@ -8314,6 +8323,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "CancelGrant",
+            Router: `/grant/cancel`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "GrantInfo",
+            Router: `/grant/info`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
         beego.ControllerComments{
             Method: "MyList",

+ 16 - 67
services/bi_approve/bi_approve.go

@@ -186,7 +186,7 @@ func PassBiApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.BiTitle)
 			return
 		} else {
 			// 最后一个节点
@@ -232,7 +232,7 @@ func PassBiApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.BiTitle)
 			return
 		}
 	}
@@ -268,7 +268,7 @@ func PassBiApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.BiApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.BiTitle)
 			return
 		}
 	}
@@ -287,7 +287,7 @@ func PassBiApprove(approveId int, adminId int) (msg string, err error) {
 			err = fmt.Errorf("更新审批信息失败, Err: %s", e.Error())
 			return
 		}
-		if e = updateBiApproveState(approveItem.BiId, approveItem.BiApproveId, BiStatePass); e != nil {
+		if e = updateBiApproveState(approveItem.BiId, BiStatePass); e != nil {
 			err = fmt.Errorf("更新报告审批状态失败, Err: %s", e.Error())
 			return
 		}
@@ -323,7 +323,7 @@ func toClassifyItem(src []*bi_dashboard.BiDashboardClassify) (dst []*bi_dashboar
 }
 
 // BuildNextNodeRecordAndMsg 生成下一个节点的审批记录并推送消息
-func BuildNextNodeRecordAndMsg(approveNodeItem *biapprove.BiApproveNode, approveId, sysAdminId int, sysAdminName string) (err error) {
+func BuildNextNodeRecordAndMsg(approveNodeItem *biapprove.BiApproveNode, approveId, sysAdminId int, sysAdminName, biTitle string) (err error) {
 	if approveNodeItem == nil {
 		err = fmt.Errorf("approve node nil")
 		return
@@ -380,7 +380,7 @@ func BuildNextNodeRecordAndMsg(approveNodeItem *biapprove.BiApproveNode, approve
 			m.SendUserId = sysAdminId
 			m.ReceiveUserId = v.ApproveUserId
 			m.Content = "您有新的待办任务"
-			m.Remark = fmt.Sprintf("%s提交的【看板审批】需要您审批,请及时处理", sysAdminName)
+			m.Remark = fmt.Sprintf("%s提交的【%s】需要您审批,请及时处理", sysAdminName, biTitle)
 			m.BiApproveId = approveId
 			m.ApproveState = BiApproveStateApproving
 			m.CreateTime = now
@@ -397,12 +397,12 @@ func BuildNextNodeRecordAndMsg(approveNodeItem *biapprove.BiApproveNode, approve
 }
 
 // updateBiApproveState 更新Bi看板审批状态
-func updateBiApproveState(biId, approveId, state int) (err error) {
+func updateBiApproveState(biId, state int) (err error) {
 	// updateCols := []string{"ApproveId", "State", "ModifyTime"}
 	updateCols := []string{"State", "ModifyTime"}
 	BiItem, e := bi_dashboard.GetDashboardById(biId)
 	if e != nil && !utils.IsErrNoRow(e) {
-		err = fmt.Errorf("获取智能看板失败, Err: %s", e.Error())
+		err = fmt.Errorf("获取Bi看板失败, Err: %s", e.Error())
 		return
 	}
 	if BiItem != nil && BiItem.BiDashboardId > 0 {
@@ -795,7 +795,7 @@ func BiApproveRefuse(biApproveId, adminId int, approveRemark string) (msg string
 	}
 
 	// 驳回审批
-	if e = RefuseBiApprove(approveItem, recordItem, approveRemark, adminId); e != nil {
+	if e = refuseBiApprove(approveItem, recordItem, approveRemark, adminId); e != nil {
 		msg = "操作失败"
 		err = fmt.Errorf("RefuseBiApprove err: %s", e.Error())
 		return
@@ -803,8 +803,8 @@ func BiApproveRefuse(biApproveId, adminId int, approveRemark string) (msg string
 	return
 }
 
-// RefuseBiApprove 驳回审批
-func RefuseBiApprove(approveItem *biapprove.BiApprove, recordItem *biapprove.BiApproveRecord, approveRemark string, sysAdminId int) (err error) {
+// refuseBiApprove 驳回审批
+func refuseBiApprove(approveItem *biapprove.BiApprove, recordItem *biapprove.BiApproveRecord, approveRemark string, sysAdminId int) (err error) {
 	if approveItem == nil {
 		err = fmt.Errorf("审批信息有误")
 		return
@@ -849,7 +849,7 @@ func RefuseBiApprove(approveItem *biapprove.BiApprove, recordItem *biapprove.BiA
 		return
 	}
 
-	if e := updateBiApproveState(approveItem.BiId, approveItem.BiApproveId, BiStateRefused); e != nil {
+	if e := updateBiApproveState(approveItem.BiId, BiStateRefused); e != nil {
 		err = fmt.Errorf("更新报告状态失败, Err: %s", e.Error())
 		return
 	}
@@ -860,7 +860,7 @@ func RefuseBiApprove(approveItem *biapprove.BiApprove, recordItem *biapprove.BiA
 		messageItem.SendUserId = sysAdminId
 		messageItem.ReceiveUserId = approveItem.ApplyUserId
 		messageItem.Content = "您提交的审批被驳回"
-		messageItem.Remark = "您提交的【看板审批】已被驳回"
+		messageItem.Remark = fmt.Sprintf("您提交的【%s】已被驳回", approveItem.BiTitle)
 		messageItem.BiApproveId = approveItem.BiApproveId
 		messageItem.ApproveState = BiApproveStateRefuse
 		messageItem.CreateTime = now
@@ -938,7 +938,7 @@ func cancelBiApprove(biId, approveId, sysAdminId int, sysAdminName string) (err
 	}
 
 	// 修改报告状态
-	e = updateBiApproveState(biId, 0, BiStateWaitSubmit)
+	e = updateBiApproveState(biId, BiStateUnpublished)
 	if e != nil {
 		err = fmt.Errorf("更新报告审批撤回失败, Err: %s", e.Error())
 		return
@@ -962,7 +962,7 @@ func cancelBiApprove(biId, approveId, sysAdminId int, sysAdminName string) (err
 			m := new(biapprove.BiApproveMessage)
 			m.SendUserId = sysAdminId
 			m.ReceiveUserId = v.ApproveUserId
-			m.Content = fmt.Sprintf("%s提交的【看板审批】已撤回", sysAdminName)
+			m.Content = fmt.Sprintf("您提交的【%s】已撤回", approveItem.BiTitle)
 			m.BiApproveId = approveId
 			m.ApproveState = BiApproveStateCancel
 			m.CreateTime = time.Now().Local()
@@ -1011,57 +1011,6 @@ func CheckBiOpenApprove(classifyId int) (opening bool, err error) {
 	return
 }
 
-// CheckBiCurrState 校验报告当前应有的状态
-func CheckBiCurrState(classifyId, operate int) (state int, err error) {
-	// 获取审批配置
-	confMap, e := models.GetBusinessConf()
-	if e != nil {
-		err = fmt.Errorf("GetBusinessConf err: %s", e.Error())
-		return
-	}
-	openMap := map[string]bool{"false": false, "true": true}
-	openApprove := openMap[confMap[models.BusinessConfIsBIApprove]]
-
-	// 查询对应分类是否有审批流
-	flowOb := new(biapprove.BiApproveFlow)
-	flowCond := fmt.Sprintf(` AND %s = ?`, biapprove.BiApproveFlowCols.ClassifyId)
-	flowPars := make([]interface{}, 0)
-	flowPars = append(flowPars, classifyId)
-	flowItem, e := flowOb.GetItemByCondition(flowCond, flowPars, "")
-	if e != nil && !utils.IsErrNoRow(e) {
-		err = fmt.Errorf("ApproveFlow GetItemByCondition err: %s", e.Error())
-		return
-	}
-
-	// 开启审批/有审批流
-	if openApprove && (flowItem != nil) {
-		// 操作为无审批的操作时, 会转为有审批的初始状态-待提交
-		stateMap := map[int]int{
-			BiOperateAdd:           BiStateWaitSubmit,  // 新增
-			BiOperateEdit:          BiStateWaitSubmit,  // 编辑
-			BiOperatePublish:       BiStateWaitSubmit,  // 发布
-			BiOperateCancelPublish: BiStateWaitSubmit,  // 取消发布
-			BiOperateSubmitApprove: BiStateWaitApprove, // 提审
-			BiOperateCancelApprove: BiStateWaitSubmit,  // 撤回
-		}
-		state = stateMap[operate]
-		return
-	}
-
-	// 关闭审批/分类无审批
-	// 操作为有审批的操作时, 会转为无审批的初始状态-未发布
-	stateMap := map[int]int{
-		BiOperateAdd:           BiStateUnpublished, // 新增
-		BiOperateEdit:          BiStateUnpublished, // 编辑
-		BiOperatePublish:       BiStatePublished,   // 发布
-		BiOperateCancelPublish: BiStateUnpublished, // 取消发布
-		BiOperateSubmitApprove: BiStateUnpublished, // 提审
-		BiOperateCancelApprove: BiStateUnpublished, // 撤回
-	}
-	state = stateMap[operate]
-	return
-}
-
 // SubmitBiApprove 提交审批
 func SubmitBiApprove(biId int, biTitle string, classifyId int, sysAdminId int, sysAdminName string) (approveId int, err error) {
 	// 默认内部审批, 如果是走的第三方审批, 那么仅修改状态
@@ -1138,7 +1087,7 @@ func SubmitBiApprove(biId int, biTitle string, classifyId int, sysAdminId int, s
 	approveId = newApprove.BiApproveId
 
 	// 生成节点审批记录
-	err = BuildNextNodeRecordAndMsg(firstNodeItem, newApprove.BiApproveId, sysAdminId, sysAdminName)
+	err = BuildNextNodeRecordAndMsg(firstNodeItem, newApprove.BiApproveId, sysAdminId, sysAdminName, newApprove.BiTitle)
 	return
 }
 

+ 4 - 14
services/bi_approve/constant.go

@@ -2,24 +2,14 @@ package biapprove
 
 // 看板状态
 const (
-	BiStateUnpublished = 1 // 未发布
-	BiStatePublished   = 2 // 已发布
-	BiStateWaitSubmit  = 3 // 待提交
-	BiStateWaitApprove = 4 // 审批
+	BiStateUnpublished = 1 // 未公开
+	// BiStatePublished   = 2 // 已发布
+	// BiStateWaitSubmit  = 3 // 待提交
+	BiStateWaitApprove = 4 // 审批
 	BiStateRefused     = 5 // 已驳回
 	BiStatePass        = 6 // 已通过
 )
 
-// 看板操作
-const (
-	BiOperateAdd           = 1 // 新增报告
-	BiOperateEdit          = 2 // 编辑报告
-	BiOperatePublish       = 3 // 发布报告
-	BiOperateCancelPublish = 4 // 取消发布报告
-	BiOperateSubmitApprove = 5 // 提交审批
-	BiOperateCancelApprove = 6 // 撤回审批
-)
-
 // 节点审批方式
 const (
 	NodeApproveTypeRoll = 1 // 依次审批