Ver código fonte

Merge branch 'feature/eta1.8.5_excel_balance' into debug

# Conflicts:
#	controllers/data_manage/excel/balance_table.go
xyxie 10 meses atrás
pai
commit
0308f8dfab

+ 47 - 25
controllers/data_manage/excel/balance_table.go

@@ -1472,30 +1472,11 @@ func downloadBalanceTable(excelInfo *excel.ExcelInfo) (savePath, zipName string,
 }
 
 func refreshBalanceTable(excelDetail response.ExcelInfoDetail) (err error) {
-	//查询所有子表
-	cCondition := " AND parent_id = ? AND balance_type=0"
-	var cPars []interface{}
-	cPars = append(cPars, excelDetail.ExcelInfoId)
-	childList, e := excel.GetExcelInfoListByCondition(cCondition, cPars)
-	if e != nil {
-		err = fmt.Errorf("获取子表失败 %s", err.Error())
-		return
-	}
 	edbInfoIds := make([]int, 0)
 	edbInfoIdExist := make(map[int]bool)
-	// 遍历
-	for _, child := range childList {
-		var result request.MixedTableReq
-		err = json.Unmarshal([]byte(child.Content), &result)
-		if err != nil {
-			err = errors.New("表格json转结构体失败,Err:" + err.Error())
-			return
-		}
-		newData, tmpErr, _ := excelService.GetMixedTableCellData(result, "")
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
+	if excelDetail.ParentId > 0 {
+		newResult := excelDetail.TableData.(request.MixedTableReq)
+		newData := newResult.Data
 		if len(newData) > 0 {
 			for _, t := range newData {
 				for _, v := range t {
@@ -1508,15 +1489,56 @@ func refreshBalanceTable(excelDetail response.ExcelInfoDetail) (err error) {
 		}
 
 		// 清除缓存
-		key := utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + child.UniqueCode
+		key := utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + excelDetail.UniqueCode
 		if utils.Re == nil {
 			_ = utils.Rc.Delete(key)
 		}
+	} else {
+		//查询父表和子表
+		cCondition := " AND parent_id = ? AND balance_type=0"
+		var cPars []interface{}
+		cPars = append(cPars, excelDetail.ExcelInfoId)
+		childList, e := excel.GetExcelInfoListByCondition(cCondition, cPars)
+		if e != nil {
+			err = fmt.Errorf("获取子表失败 %s", err.Error())
+			return
+		}
+		// 遍历
+		for _, child := range childList {
+			var result request.MixedTableReq
+			err = json.Unmarshal([]byte(child.Content), &result)
+			if err != nil {
+				err = errors.New("表格json转结构体失败,Err:" + err.Error())
+				return
+			}
+			var newData [][]request.MixedTableCellDataReq
+			newData, err, _ = excelService.GetMixedTableCellData(result)
+			if err != nil {
+				return
+			}
+
+			if len(newData) > 0 {
+				for _, t := range newData {
+					for _, v := range t {
+						if v.EdbInfoId > 0 && !edbInfoIdExist[v.EdbInfoId] {
+							edbInfoIdExist[v.EdbInfoId] = true
+							edbInfoIds = append(edbInfoIds, v.EdbInfoId)
+						}
+					}
+				}
+			}
+
+			// 清除缓存
+			key := utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + child.UniqueCode
+			if utils.Re == nil {
+				_ = utils.Rc.Delete(key)
+			}
+		}
 	}
 
 	if len(edbInfoIds) > 0 {
-		e, _ = data.EdbInfoRefreshAllFromBaseV3(edbInfoIds, false, true, false)
-		if e != nil {
+		err, _ = data.EdbInfoRefreshAllFromBaseV3(edbInfoIds, false, true, false)
+		if err != nil {
 			err = fmt.Errorf("刷新混合表格数据失败, Err: " + err.Error())
 			return
 		}

+ 33 - 0
services/data/excel/balance_table.go

@@ -544,3 +544,36 @@ func SyncBalanceEdbData(excelInfo *excelModel.ExcelInfo, balanceTableData [][]re
 	}
 	return
 }
+
+// GetBalanceExcelInfoOpButton 获取ETA平衡表格的操作权限
+func GetBalanceExcelInfoOpButton(sysUserId, parentSysUserId int, haveOperaAuth bool, parentExcelInfoId int) (button excelModel.ExcelInfoDetailButton) {
+	// 如果没有数据权限,那么直接返回
+	if !haveOperaAuth {
+		return
+	}
+	//非管理员角色查看其他用户创建的表格,可刷新、另存为、下载表格;
+	button.RefreshButton = true
+	button.CopyButton = true
+	button.DownloadButton = true
+
+	if sysUserId == parentSysUserId {
+		button.OpButton = true
+		button.RefreshEdbButton = true
+		button.OpWorkerButton = true
+		button.DeleteButton = true
+	} else {
+		obj := new(excelModel.ExcelWorker)
+		workerList, err := obj.GetByExcelInfoId(parentExcelInfoId)
+		if err == nil {
+			for _, v := range workerList {
+				if v.SysUserId == sysUserId {
+					button.OpButton = true
+					button.RefreshEdbButton = true
+					button.DeleteButton = true
+					break
+				}
+			}
+		}
+	}
+	return
+}

+ 0 - 33
services/data/excel/excel_info.go

@@ -209,39 +209,6 @@ func GetExcelInfoOpButton(sysUser *system.Admin, belongUserId, source int, haveO
 	return
 }
 
-// GetBalanceExcelInfoOpButton 获取ETA平衡表格的操作权限
-func GetBalanceExcelInfoOpButton(sysUserId, parentSysUserId int, haveOperaAuth bool, parentExcelInfoId int) (button excel.ExcelInfoDetailButton) {
-	// 如果没有数据权限,那么直接返回
-	if !haveOperaAuth {
-		return
-	}
-	//非管理员角色查看其他用户创建的表格,可刷新、另存为、下载表格;
-	button.RefreshButton = true
-	button.CopyButton = true
-	button.DownloadButton = true
-
-	if sysUserId == parentSysUserId {
-		button.OpButton = true
-		button.RefreshEdbButton = true
-		button.OpWorkerButton = true
-		button.DeleteButton = true
-	} else {
-		obj := new(excel.ExcelWorker)
-		workerList, err := obj.GetByExcelInfoId(parentExcelInfoId)
-		if err == nil {
-			for _, v := range workerList {
-				if v.SysUserId == sysUserId {
-					button.OpButton = true
-					button.RefreshEdbButton = true
-					button.DeleteButton = true
-					break
-				}
-			}
-		}
-	}
-	return
-}
-
 // GetFirstEdbDataList 获取第一列的数据
 func GetFirstEdbDataList(edbInfo *data_manage.EdbInfo, num int, manualDateList []string) (resultDataList []request.ManualDataReq, err error) {
 	var dataList []*data_manage.EdbDataList