|
@@ -7,9 +7,10 @@ import (
|
|
|
"eta/eta_api/models/report_approve"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
- "github.com/beego/beego/v2/core/logs"
|
|
|
"sort"
|
|
|
"time"
|
|
|
+
|
|
|
+ "github.com/beego/beego/v2/core/logs"
|
|
|
)
|
|
|
|
|
|
// MoveReportClassify 移动分类
|
|
@@ -835,6 +836,70 @@ func SortClassifyListBySortAndCreateTime(classifyList []*models.ClassifyList) {
|
|
|
sort.Sort(BySortAndCreateTime(classifyList))
|
|
|
}
|
|
|
|
|
|
+// MarkEnableDeleteClassify 标记是否可以删除分类
|
|
|
+func MarkEnableDeleteClassify(classifyList []*models.ClassifyList) (err error) {
|
|
|
+ if len(classifyList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIds := make([]int, 0)
|
|
|
+ for _, v := range classifyList {
|
|
|
+ classifyIds = append(classifyIds, v.Id)
|
|
|
+ }
|
|
|
+ // 检查是否有报告
|
|
|
+ reportList, err := models.GetExistReportClassifyIdByClassifyIds(classifyIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询该分类是否关联了审批流
|
|
|
+ flowOb := new(report_approve.ReportApproveFlow)
|
|
|
+ flowCond := fmt.Sprintf(` AND %s = ? AND ( %s IN (`+utils.GetOrmInReplace(len(classifyIds))+`) OR %s IN (`+utils.GetOrmInReplace(len(classifyIds))+`) OR %s IN (`+utils.GetOrmInReplace(len(classifyIds))+`))`,
|
|
|
+ report_approve.ReportApproveFlowCols.ReportType,
|
|
|
+ report_approve.ReportApproveFlowCols.ClassifyFirstId,
|
|
|
+ report_approve.ReportApproveFlowCols.ClassifySecondId,
|
|
|
+ report_approve.ReportApproveFlowCols.ClassifyThirdId,
|
|
|
+ )
|
|
|
+ flowPars := make([]interface{}, 0)
|
|
|
+ flowPars = append(flowPars, report_approve.FlowReportTypeChinese, classifyIds, classifyIds, classifyIds)
|
|
|
+ flowList, err := flowOb.GetItemsByCondition(flowCond, flowPars, []string{"classify_first_id", "classify_second_id", "classify_third_id"}, "")
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ disableDeleteClassifyMap := make(map[int]struct{})
|
|
|
+ // 记录关联报告的分类
|
|
|
+ for _, v := range reportList {
|
|
|
+ if v.ClassifyIdFirst > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifyIdFirst] = struct{}{}
|
|
|
+ }
|
|
|
+ if v.ClassifyIdSecond > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifyIdSecond] = struct{}{}
|
|
|
+ }
|
|
|
+ if v.ClassifyIdThird > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifyIdThird] = struct{}{}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 记录关联审批流的分类
|
|
|
+ for _, v := range flowList {
|
|
|
+ if v.ClassifyFirstId > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifyFirstId] = struct{}{}
|
|
|
+ }
|
|
|
+ if v.ClassifySecondId > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifySecondId] = struct{}{}
|
|
|
+ }
|
|
|
+ if v.ClassifyThirdId > 0 {
|
|
|
+ disableDeleteClassifyMap[v.ClassifyThirdId] = struct{}{}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if _, ok := disableDeleteClassifyMap[v.Id]; !ok {
|
|
|
+ v.IsEnableDelete = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// DealBug6445 处理禅道bug6445,对数据进行补偿刷新
|
|
|
func DealBug6445() error {
|
|
|
var condition string
|