浏览代码

Merge branch 'eta/2.0.0' into debug

# Conflicts:
#	controllers/target.go
Roc 8 月之前
父节点
当前提交
c6b375b0bf

+ 1 - 1
controllers/data_manage/data_manage_permission/data_move.go

@@ -271,7 +271,7 @@ func (c *DataMangePermissionController) MoveEdbChartUser() {
 		return
 	}
 
-	err, errMsg := data_manage_permission.MoveEdbChart(req.Source, req.SubSource, req.UserId, req.NewUserId, req.IsSelectAll, req.DataIdList, req.NoDataIdList, req.Keyword, req.ClassifyId, sysUser.AdminId)
+	err, errMsg := data_manage_permission.MoveEdbChart(req.Source, req.SubSource, req.UserId, req.NewUserId, req.IsSelectAll, req.DataIdList, req.NoDataIdList, req.Keyword, req.ClassifyId, sysUser.AdminId, sysUser.RealName)
 	if err != nil {
 		//br.Success = true
 		br.Msg = "移动失败"

+ 3 - 2
controllers/target.go

@@ -615,7 +615,8 @@ func (this *TargetController) TargetAdd() {
 		br.Msg = "指标名称已存在"
 		return
 	}
-	err = models.AddEdbinfo(maxTradeCode, req.SecName, req.Unit, "手动", req.Frequency, req.NoticeTime, req.ClassifyId, sysUser.AdminId)
+
+	err = models.AddEdbinfo(maxTradeCode, req.SecName, req.Unit, "手动", req.Frequency, req.NoticeTime, req.ClassifyId, sysUser.AdminId, sysUser.RealName)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -2837,7 +2838,7 @@ func (this *TargetController) ImportTarget() {
 						failDatas = append(failDatas, failItem)
 						continue
 					}
-					err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, "", classify.ClassifyId, sysUser.AdminId)
+					err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, "", classify.ClassifyId, sysUser.AdminId, sysUser.RealName)
 					if err != nil {
 						failItem := &models.EdbImportFail{
 							ClassifyName: classifyName,

+ 18 - 3
models/manual_edb.go

@@ -78,6 +78,7 @@ type EdbInfoListItem struct {
 	NoticeTime   string `description:"通知时间"`
 	Mobile       string `description:"录入者手机号"`
 	ModifyDate   string `description:"待更新日期"`
+	ModifyTime   string `description:"数据更新时间"`
 	Status       string `description:"状态:未完成/完成"`
 	UniqueCode   string
 	IsJoinEdb    int8   `description:"指标库是否已添加:0-否;1-是"`
@@ -242,14 +243,15 @@ func DelManualIndexByCodeList(codeList []string) (err error) {
 // @param secNameList []string
 // @return item []*Edbinfo
 // @return err error
-func GetEdbinfoListBySecNameList(secNameList []string) (item []*Edbinfo, err error) {
+func GetEdbinfoListBySecNameList(secNameList []string) (items []*Edbinfo, err error) {
 	num := len(secNameList)
 	if num <= 0 {
 		return
 	}
 	sql := `SELECT * FROM edbinfo WHERE SEC_NAME in (` + utils.GetOrmInReplace(num) + ` ) AND REMARK='手动' `
 	o := orm.NewOrmUsingDB("edb")
-	err = o.Raw(sql, secNameList).QueryRow(&item)
+	_, err = o.Raw(sql, secNameList).QueryRows(&items)
+
 	return
 }
 
@@ -286,7 +288,7 @@ type EdbinfoOpRecord struct {
 // 1、创建指标
 // 2、编辑指标
 // 3、更新数据
-// 4、数据资产由<xxx>转移给<xxx>——在数据操作权限进行数据资产转移;
+// 4、数据资产由<xxx>转移给<xxx>
 
 // Create
 // @Description: 添加手工数据的操作日志
@@ -300,6 +302,19 @@ func (m *EdbinfoOpRecord) Create() (err error) {
 	return
 }
 
+// MulCreate
+// @Description: 批量添加手工数据的操作日志
+// @author: Roc
+// @receiver m
+// @datetime 2024-08-01 11:05:02
+// @param list []*EdbinfoOpRecord
+// @return err error
+func (m *EdbinfoOpRecord) MulCreate(list []*EdbinfoOpRecord) (err error) {
+	o := orm.NewOrmUsingDB("edb")
+	_, err = o.InsertMulti(utils.MultiAddNum, list)
+	return
+}
+
 // EdbinfoOpRecordItem
 // @Description: 手工数据的操作日志
 type EdbinfoOpRecordItem struct {

+ 23 - 8
models/target.go

@@ -372,11 +372,26 @@ func GetEdbinfoByTradeCode(tradeCode string) (item *Edbinfo, err error) {
 	return
 }
 
-func AddEdbinfo(tradeCode, secName, unit, remark, frequency, noticeTime string, classifyId int, userId int) (err error) {
-	sql := `INSERT INTO edbinfo(TRADE_CODE, SEC_NAME,UNIT, REMARK,frequency, classify_id,notice_time,user_id,create_date) 
-			VALUES(?,?,?,?,?,?,?,?,now()) `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, tradeCode, secName, unit, remark, frequency, classifyId, noticeTime, userId).Exec()
+func AddEdbinfo(tradeCode, secName, unit, remark, frequency, noticeTime string, classifyId int, userId int, userName string) (err error) {
+	o := orm.NewOrmUsingDB("edb")
+	currTime := time.Now().Format(utils.FormatDateTime)
+	edbInfo := &Edbinfo{
+		TradeCode:  tradeCode,
+		SecName:    secName,
+		Unit:       unit,
+		Remark:     remark,
+		Frequency:  frequency,
+		ClassifyId: classifyId,
+		CreateDate: currTime,
+		UserId:     userId,
+		UserName:   userName,
+		NoticeTime: noticeTime,
+		Mobile:     "",
+		ModifyTime: currTime,
+		IsJoinEdb:  0,
+	}
+	_, err = o.Insert(edbInfo)
+
 	return
 }
 
@@ -1648,14 +1663,14 @@ func GetEdbinfoListByCodeListByUserId(userIdList []int) (items []*Edbinfo, err e
 }
 
 // ModifyEdbinfoUserIdByCodeList 根据指标code列表修改创建人
-func ModifyEdbinfoUserIdByCodeList(edbCodeList []string, userId int) (err error) {
+func ModifyEdbinfoUserIdByCodeList(edbCodeList []string, userId int, userName string) (err error) {
 	num := len(edbCodeList)
 	if num <= 0 {
 		return
 	}
 	o := orm.NewOrmUsingDB("edb")
-	sql := `UPDATE edbinfo SET user_id=? WHERE TRADE_CODE in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, userId, edbCodeList).Exec()
+	sql := `UPDATE edbinfo SET user_id = ?,user_name = ? WHERE TRADE_CODE in (` + utils.GetOrmInReplace(num) + `) `
+	_, err = o.Raw(sql, userId, userName, edbCodeList).Exec()
 	return
 }
 

+ 31 - 2
services/data/data_manage_permission/data_move.go

@@ -487,7 +487,7 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 
 // MoveEdbChart 转移指标/图表创建人
 // @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格
-func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool, dataId, noDataId []string, keyword, classify string, opUserId int) (err error, errMsg string) {
+func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool, dataId, noDataId []string, keyword, classify string, opUserId int, opUserName string) (err error, errMsg string) {
 	adminInfo, err := system.GetSysAdminById(newUserId)
 	if err != nil {
 		return
@@ -556,7 +556,12 @@ func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool,
 				})
 			}
 			// 修改创建人
-			err = models.ModifyEdbinfoUserIdByCodeList(dataId, newUserId)
+			err = models.ModifyEdbinfoUserIdByCodeList(dataId, newUserId, adminInfo.RealName)
+
+			// 如果移动成功了,需要记录该指标的操作记录
+			if err == nil && len(tmpList) > 0 {
+				go afterMoveManualEdb(tmpList, adminInfo, opUserId, opUserName)
+			}
 		}
 
 	case 2: //钢联化工数据库
@@ -1383,3 +1388,27 @@ func GetMoveEdbChartCount(userId, countType int) (sourceMap map[int]int, err err
 
 	return
 }
+
+// afterMoveManualEdb
+// @Description: 手工数据移动后的操作
+// @author: Roc
+// @datetime 2024-08-01 13:55:59
+// @param tmpList []*models.Edbinfo
+// @param adminInfo *system.Admin
+// @param opUserId int
+// @param opUserName string
+func afterMoveManualEdb(tmpList []*models.Edbinfo, adminInfo *system.Admin, opUserId int, opUserName string) {
+	recordList := make([]*models.EdbinfoOpRecord, 0)
+	for _, tmpManualInfo := range tmpList {
+		remark := fmt.Sprintf("数据资产由%s转移给%s", tmpManualInfo.UserName, adminInfo.RealName)
+		recordList = append(recordList, &models.EdbinfoOpRecord{
+			TradeCode:  tmpManualInfo.TradeCode,
+			Remark:     remark,
+			UserId:     opUserId,
+			UserName:   opUserName,
+			CreateTime: time.Now(),
+		})
+	}
+	obj := models.EdbinfoOpRecord{}
+	_ = obj.MulCreate(recordList)
+}

+ 2 - 2
services/data/edb_info.go

@@ -712,7 +712,7 @@ func EdbInfoRefresh(edbInfo *data_manage.EdbInfoView, refreshAll bool) (err erro
 }
 
 // AddEdbInfo 新增手工指标数据
-func AddEdbInfo(secName, unit, frequency, noticeTime, mobile string, classifyId, userId int) (err error) {
+func AddEdbInfo(secName, unit, frequency, noticeTime, mobile string, classifyId, userId int, userName string) (err error) {
 	tradeCode, err := models.GetMaxTradeCode()
 	if err != nil {
 		return
@@ -748,7 +748,7 @@ func AddEdbInfo(secName, unit, frequency, noticeTime, mobile string, classifyId,
 	// 先删除该指标编码的历史数据(避免上海删除指标时,没有删除该指标数据)
 	_ = models.DeleteAllEdbData(maxTradeCode)
 	// 再次新增指标
-	err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, noticeTime, classifyId, userId)
+	err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, noticeTime, classifyId, userId, userName)
 	if err != nil {
 		err = errors.New("新增失败,Err:" + err.Error())
 		return

+ 48 - 9
services/data/manual.go

@@ -216,8 +216,44 @@ func ManualIndexSource2Edb(req ManualIndexSource2EdbReq, lang string) (edb *data
 	return
 }
 
+// ImportManualData
+// @Description: 数据导入
+// @author: Roc
+// @datetime 2024-08-01 11:27:21
+// @param path string
+// @param sysUser *system.Admin
+// @return successCount int
+// @return failCount int
+// @return err error
+// @return errMsg string
 func ImportManualData(path string, sysUser *system.Admin) (successCount, failCount int, err error, errMsg string) {
-	// TODO 操作记录
+	// 错误信息
+	errMsgList := make([]string, 0)
+	// 操作记录
+	recordMap := make(map[string]string)
+	defer func() {
+		recordList := make([]*models.EdbinfoOpRecord, 0)
+		for tradeCode, remark := range recordMap {
+			recordList = append(recordList, &models.EdbinfoOpRecord{
+				TradeCode:  tradeCode,
+				Remark:     remark,
+				UserId:     sysUser.AdminId,
+				UserName:   sysUser.RealName,
+				CreateTime: time.Now(),
+			})
+		}
+		if len(recordList) > 0 {
+			go func() {
+				obj := models.EdbinfoOpRecord{}
+				_ = obj.MulCreate(recordList)
+			}()
+		}
+
+		// 错误信息记录
+		if len(errMsgList) > 0 {
+			utils.FileLog.Info("导入失败, errMsgList: %v", strings.Join(errMsgList, "\n"))
+		}
+	}()
 	errMsg = `导入失败`
 	xlFile, err := xlsx.OpenFile(path)
 	if err != nil {
@@ -266,7 +302,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 		failDataList = append(failDataList, tmpFailDataList...)
 	}
 
-	var indexDataListMap map[string]ImportManualIndexData
+	indexDataListMap := make(map[string]ImportManualIndexData)
 	for _, v := range indexDataList {
 		indexData, ok := indexDataListMap[v.IndexName]
 		if !ok {
@@ -333,6 +369,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 		for _, v := range manualIndexList {
 			targetMap[v.SecName] = v
 			tradeCodeList = append(tradeCodeList, v.TradeCode)
+			recordMap[v.TradeCode] = "更新数据"
 		}
 
 		// 获取明细数据
@@ -343,10 +380,10 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 			return
 		}
 		for _, tmpData := range dataList {
-			//tmpDataMap,ok := edbCodeDataMap[tmpData.TradeCode]
-			//if !ok{
-			//	tmpDataMap = make(map[string]string)
-			//}
+			_, ok := edbCodeDataMap[tmpData.TradeCode]
+			if !ok {
+				edbCodeDataMap[tmpData.TradeCode] = make(map[string]string)
+			}
 			edbCodeDataMap[tmpData.TradeCode][tmpData.Dt] = tmpData.Close
 		}
 	}
@@ -367,7 +404,6 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 	//	continue
 	//}
 
-	errMsgList := make([]string, 0)
 	addDataList := make([]*models.Edbdata, 0)
 
 	for _, v := range indexDataListMap {
@@ -442,7 +478,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 				failDataList = append(failDataList, failItem)
 				continue
 			}
-			tmpErr := AddEdbInfo(v.IndexName, v.Unit, v.Frequency, "", sysUser.Mobile, classify.ClassifyId, sysUser.AdminId)
+			tmpErr := AddEdbInfo(v.IndexName, v.Unit, v.Frequency, "", sysUser.Mobile, classify.ClassifyId, sysUser.AdminId, sysUser.RealName)
 			if tmpErr != nil {
 				fmt.Println("line 158")
 
@@ -462,6 +498,8 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 			tmpTarget, tmpErr := models.GetTargetBySecName(v.IndexName)
 			target = tmpTarget
 			targetMap[v.IndexName] = target
+
+			recordMap[target.TradeCode] = "创建指标"
 		}
 
 		if target == nil {
@@ -511,6 +549,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
 			tmpDataMap, ok := edbCodeDataMap[target.TradeCode]
 			if !ok {
 				tmpDataMap = make(map[string]string)
+				edbCodeDataMap[target.TradeCode] = tmpDataMap
 			}
 
 			for createDate, closeVal := range v.DataMap {
@@ -880,7 +919,7 @@ func getDataByTemplate2(sheet *xlsx.Sheet, sysUserId int) (indexDataList []Impor
 					ClassifyName: classifyName,
 					CreateDate:   currDate,
 					SecName:      indexName,
-					Close:        cells[3].Value,
+					Close:        v.Value,
 					Remark:       "日期格式异常",
 					SysUserId:    strconv.Itoa(sysUserId),
 					Frequency:    frequency,

+ 1 - 1
services/target.go

@@ -41,7 +41,7 @@ func AddEdbItem(secName, unit, frequency string, classifyId int, sysUser *system
 		errMsg = "指标名称已存在"
 		return
 	}
-	err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, "", classifyId, sysUser.AdminId)
+	err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, "", classifyId, sysUser.AdminId, sysUser.RealName)
 	if err != nil {
 		errMsg = "新增失败,Err:" + err.Error()
 		return

二进制
static/template/导入模板1.xlsx


二进制
static/template/导入模板2.xlsx