|
@@ -1254,15 +1254,16 @@ func getBalanceDataListStartDateAndValue(dataList []*data_manage.EdbDataList) (s
|
|
|
}
|
|
|
|
|
|
// AddBalanceStaticExcel 另存为和存为静态表以及子表的复制都调用该接口
|
|
|
-func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName string, sysUser *system.Admin, parentId, relExcelInfoId, balanceType int, childExcelList []*excelModel.ExcelInfo) (excelInfo *excelModel.ExcelInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName string, sysUser *system.Admin, parentId, relExcelInfoId, balanceType int, childExcelList []*excelModel.ExcelInfo, pingNameFlag bool) (excelInfo *excelModel.ExcelInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
isSendEmail = true
|
|
|
|
|
|
versionName = utils.TrimLRStr(versionName)
|
|
|
// 检验分类下是否存在该表格名称
|
|
|
- {
|
|
|
+ // todo 检验动态表分类下表格名称是否存在
|
|
|
+ if balanceType == 1 && versionName != "" {
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
- condition += " AND rel_excel_info_id=? "
|
|
|
+ condition += " AND rel_excel_info_id=? AND balance_type=1"
|
|
|
pars = append(pars, oldExcelInfo.ExcelInfoId)
|
|
|
|
|
|
condition += " AND version_name=? "
|
|
@@ -1275,7 +1276,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
return
|
|
|
}
|
|
|
if count > 0 {
|
|
|
- errMsg = "表格版本号已存在,请重新填写表格名称"
|
|
|
+ errMsg = "表格版本号已存在,请重新填写版本号"
|
|
|
err = errors.New(errMsg)
|
|
|
isSendEmail = false
|
|
|
return
|
|
@@ -1285,7 +1286,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
// 表格信息
|
|
|
timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
excelName := oldExcelInfo.ExcelName
|
|
|
- if parentId == 0 {
|
|
|
+ if pingNameFlag && versionName != "" {
|
|
|
excelName += "(" + versionName + ")"
|
|
|
}
|
|
|
|
|
@@ -1338,7 +1339,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
}
|
|
|
if parentId == 0 && len(childExcelList) > 0 {
|
|
|
for _, childExcelInfo := range childExcelList {
|
|
|
- _, err, errMsg, isSendEmail = AddBalanceStaticExcel(childExcelInfo, versionName, sysUser, excelInfo.ExcelInfoId, relExcelInfoId, balanceType, []*excelModel.ExcelInfo{})
|
|
|
+ _, err, errMsg, isSendEmail = AddBalanceStaticExcel(childExcelInfo, versionName, sysUser, excelInfo.ExcelInfoId, relExcelInfoId, balanceType, []*excelModel.ExcelInfo{}, false)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -1375,7 +1376,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
err = fmt.Errorf("未找到图表关联的指标信息")
|
|
|
return
|
|
|
}
|
|
|
- err, errMsg, isSendEmail = CopyBalanceExcelChart(chartInfo, mappingList, versionName, sysUser)
|
|
|
+ err, errMsg, isSendEmail = CopyBalanceExcelChart(chartInfo, mappingList, versionName, sysUser, pingNameFlag)
|
|
|
if err != nil {
|
|
|
err = fmt.Errorf("复制图表失败 Err:%s", err.Error())
|
|
|
return
|
|
@@ -1387,15 +1388,15 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
}
|
|
|
|
|
|
// CopyBalanceExcelChart 复制平衡表图表
|
|
|
-func CopyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, oldChartEdbList []*excelModel.ExcelChartEdb, versionName string, sysUser *system.Admin) (err error, errMsg string, isSendEmail bool) {
|
|
|
+func CopyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, oldChartEdbList []*excelModel.ExcelChartEdb, versionName string, sysUser *system.Admin, pingNameFlag bool) (err error, errMsg string, isSendEmail bool) {
|
|
|
chartEdbList := make([]*excelModel.AddChartEdbAndDataItem, 0)
|
|
|
- if versionName != "" {
|
|
|
+ if pingNameFlag && versionName != "" {
|
|
|
oldChartInfo.ChartName += "(" + versionName + ")"
|
|
|
}
|
|
|
for _, chartEdb := range oldChartEdbList {
|
|
|
excelEdb := new(excelModel.ExcelChartEdb)
|
|
|
excelEdb.EdbName = chartEdb.EdbName
|
|
|
- if versionName != "" {
|
|
|
+ if pingNameFlag && versionName != "" {
|
|
|
excelEdb.EdbName += "(" + versionName + ")"
|
|
|
}
|
|
|
randStr := utils.GetRandDigit(4)
|
|
@@ -1531,3 +1532,85 @@ func copyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, sysUserId in
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// CopyBalanceExcel 动态平衡表另存为
|
|
|
+func CopyBalanceExcel(oldExcelInfo *excelModel.ExcelInfo, excelClassifyId int, excelName string, sysUser *system.Admin) (excelInfo *excelModel.ExcelInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+ if oldExcelInfo.ParentId != 0 && oldExcelInfo.BalanceType != 0 {
|
|
|
+ errMsg = "平衡表类型错误"
|
|
|
+ err = fmt.Errorf("平衡表类型错误 ")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询excel表格名称是否已经存在
|
|
|
+ // 检验分类下是否存在该表格名称
|
|
|
+ {
|
|
|
+ var nameCondition string
|
|
|
+ var namePars []interface{}
|
|
|
+ nameCondition += " AND excel_classify_id=? AND parent_id=?"
|
|
|
+ namePars = append(namePars, excelClassifyId, 0)
|
|
|
+
|
|
|
+ nameCondition += " AND excel_name=? "
|
|
|
+ namePars = append(namePars, excelName)
|
|
|
+
|
|
|
+ count, tmpErr := excelModel.GetExcelInfoCountByCondition(nameCondition, namePars)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断表格名称是否存在失败"
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "表格名称已存在,请重新填写表格名称"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ oldExcelInfo.ExcelName = excelName
|
|
|
+
|
|
|
+ // 先复制动态表,再复制动态子表,复制静态表,再复制静态子表
|
|
|
+ //查询动态表所有的子表,并复制为静态表
|
|
|
+ condition := " AND parent_id = ? AND balance_type = 0 "
|
|
|
+ var pars []interface{}
|
|
|
+ pars = append(pars, oldExcelInfo.ExcelInfoId)
|
|
|
+ childExcelList, err := excelModel.GetExcelInfoListByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取子表失败"
|
|
|
+ err = fmt.Errorf("获取子表失败 %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ excelInfo, err, errMsg, isSendEmail = AddBalanceStaticExcel(oldExcelInfo, "", sysUser, 0, 0, 0, childExcelList, false)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "复制动态表失败"
|
|
|
+ err = fmt.Errorf("复制动态表失败 %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //复制静态表
|
|
|
+ staticCondition := " AND parent_id = 0 AND balance_type = 1 AND rel_excel_info_id=? "
|
|
|
+ var staticPars []interface{}
|
|
|
+ staticPars = append(staticPars, oldExcelInfo.ExcelInfoId)
|
|
|
+ staticExcelList, err := excelModel.GetExcelInfoListByCondition(staticCondition, staticPars)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取子表失败"
|
|
|
+ err = fmt.Errorf("获取子表失败 %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, staticExcelInfo := range staticExcelList {
|
|
|
+ cCondition := " AND parent_id = ? AND balance_type = 1"
|
|
|
+ var cPars []interface{}
|
|
|
+ cPars = append(cPars, staticExcelInfo.ExcelInfoId)
|
|
|
+ childList, e := excelModel.GetExcelInfoListByCondition(cCondition, cPars)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "获取子表失败"
|
|
|
+ err = fmt.Errorf("获取子表失败 %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, err, errMsg, isSendEmail = AddBalanceStaticExcel(staticExcelInfo, staticExcelInfo.VersionName, sysUser, 0, excelInfo.ExcelInfoId, 1, childList, false)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "复制动态表失败"
|
|
|
+ err = fmt.Errorf("复制动态表失败 %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|