Browse Source

自动创建子表

xyxie 10 months ago
parent
commit
84976665bc

+ 24 - 1
controllers/data_manage/excel/excel_info.go

@@ -247,7 +247,30 @@ func (c *ExcelInfoController) Add() {
 			})
 		}
 	}
-	err = excel3.AddExcelInfo(excelInfo, excelEdbMappingList)
+	childExcel := new(excel3.ExcelInfo)
+	if excelInfo.Source == utils.BALANCE_TABLE && req.ParentId == 0 && excelInfo.BalanceType == 0 { //首次创建平衡表时需要添加一个默认的子表
+		timestamp = strconv.FormatInt(time.Now().UnixNano(), 10) + "_" + utils.GetRandString(10)
+		childExcel = &excel3.ExcelInfo{
+			//ExcelInfoId:     0,
+			ExcelName:       "平衡表",
+			Source:          excelInfo.Source,
+			ExcelType:       excelInfo.ExcelType,
+			UniqueCode:      utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
+			ExcelClassifyId: req.ExcelClassifyId,
+			SysUserId:       sysUser.AdminId,
+			SysUserRealName: sysUser.RealName,
+			Content:         excelInfo.Content,
+			//ExcelImage:         req.ExcelImage,
+			Sort:       excelInfo.Sort + 1,
+			IsDelete:   0,
+			ModifyTime: time.Now(),
+			CreateTime: time.Now(),
+			//ParentId:           req.ParentId,
+			UpdateUserId:       sysUser.AdminId,
+			UpdateUserRealName: sysUser.RealName,
+		}
+	}
+	err = excel3.AddExcelInfo(excelInfo, excelEdbMappingList, childExcel)
 	if err != nil {
 		br.Msg = "保存失败"
 		br.ErrMsg = "保存失败,Err:" + err.Error()

+ 11 - 2
models/data_manage/excel/excel_info.go

@@ -59,7 +59,7 @@ type MyExcelInfoList struct {
 }
 
 // AddExcelInfo 新增表格
-func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping) (err error) {
+func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping, childExcel *ExcelInfo) (err error) {
 	o, err := orm.NewOrmUsingDB("data").Begin()
 	if err != nil {
 		return
@@ -77,7 +77,16 @@ func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping)
 		return
 	}
 	excelInfo.ExcelInfoId = int(lastId)
-
+	// todo 判断如果是平衡表的父级,则新增一个名叫平衡表的子表, 内容为空
+	if childExcel != nil {
+		// 表格信息入库
+		childExcel.ParentId = excelInfo.ExcelInfoId
+		_, err = o.Insert(childExcel)
+		if err != nil {
+			err = fmt.Errorf("新增子表失败:%v", err)
+			return
+		}
+	}
 	// excel与指标的关联关系
 	dataNum := len(excelEdbMappingList)
 	if dataNum > 0 {

+ 2 - 2
services/data/excel/excel_op.go

@@ -172,8 +172,8 @@ func Copy(oldExcelInfoId, excelClassifyId int, excelName string, sysUser *system
 			v.ExcelInfoId = 0
 			list[k] = v
 		}
-
-		err = excelModel.AddExcelInfo(excelInfo, list)
+		childExcel := new(excelModel.ExcelInfo)
+		err = excelModel.AddExcelInfo(excelInfo, list, childExcel)
 		if err != nil {
 			errMsg = "保存失败"
 		}