|
@@ -25,6 +25,31 @@ type ManualEdbController struct {
|
|
|
controllers.BaseAuthController
|
|
|
}
|
|
|
|
|
|
+// TemplateDownload
|
|
|
+// @Title 下载模板
|
|
|
+// @Description 下载模板
|
|
|
+// @Success 200 {object} models.EdbdataClassifyResp
|
|
|
+// @Param Source query int false "来源:1:模板1;2:模板2"
|
|
|
+// @router /template [get]
|
|
|
+func (c *ManualEdbController) TemplateDownload() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+ source, _ := c.GetInt("Source")
|
|
|
+ switch source {
|
|
|
+ case 2:
|
|
|
+ c.Ctx.Output.Download("./static/template/导入模板2.xlsx", "数据导入模板2.xlsx")
|
|
|
+ default:
|
|
|
+ c.Ctx.Output.Download("./static/template/导入模板1.xlsx", "数据导入模板1.xlsx")
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "下载成功"
|
|
|
+}
|
|
|
+
|
|
|
// EdbDetail
|
|
|
// @Title 指标列表
|
|
|
// @Description 指标列表
|
|
@@ -486,58 +511,15 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
|
|
|
dateValueMap := make(map[string]string)
|
|
|
//取到所有数据
|
|
|
- for i := range req.Data {
|
|
|
- // 过滤第一行
|
|
|
- if i == 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- if req.Data[i] == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- tmpData := req.Data[i]
|
|
|
- // 少于两列,说明数据是异常的,得过滤
|
|
|
- if len(tmpData) < 2 {
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- var tmpDate string
|
|
|
- //先拿下日期列表
|
|
|
- {
|
|
|
- dateMap := tmpData[0].(map[string]interface{})
|
|
|
- _, ok := dateMap["m"]
|
|
|
- if !ok {
|
|
|
- continue
|
|
|
- }
|
|
|
- tmpDate = dateMap["m"].(string)
|
|
|
- }
|
|
|
-
|
|
|
- // 数据处理
|
|
|
- {
|
|
|
- if tmpData[1] == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- valueMap := tmpData[1].(map[string]interface{})
|
|
|
- value, _ := valueMap["m"]
|
|
|
- if value == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- dateValueMap[tmpDate] = valueMap["m"].(string)
|
|
|
-
|
|
|
- // 09-27 千位分隔符时用 "m" 取字符串存数据库会把逗号当小数点,现在换用 "v" 直接取数字再转为字符串,看看会不会有问题
|
|
|
- if ct, ok := valueMap["ct"].(map[string]interface{}); ok {
|
|
|
- fa, _ := ct["fa"]
|
|
|
- if fa == "#,##0.000" {
|
|
|
- value = valueMap["v"]
|
|
|
- floatValue := valueMap["v"].(float64)
|
|
|
- dateValueMap[tmpDate] = strconv.FormatFloat(floatValue, 'f', -1, 64)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ for _, dateValue := range req.Data {
|
|
|
+ dateValueMap[dateValue.Date] = strconv.FormatFloat(dateValue.Value, 'f', -1, 64)
|
|
|
}
|
|
|
|
|
|
//操作指标,新增指标及数据等
|
|
|
{
|
|
|
- secName := strings.TrimSpace(req.Name)
|
|
|
+ var isUpdate bool
|
|
|
+
|
|
|
+ secName := strings.TrimSpace(req.EdbName)
|
|
|
frequency := strings.TrimSpace(req.Frequency)
|
|
|
unit := strings.TrimSpace(req.Unit)
|
|
|
|
|
@@ -566,6 +548,7 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
}
|
|
|
|
|
|
if len(updateCols) > 0 {
|
|
|
+ isUpdate = true
|
|
|
err = manualEdbInfo.Update(updateCols)
|
|
|
if err != nil {
|
|
|
br.Msg = `指标保存失败`
|
|
@@ -623,6 +606,7 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
continue
|
|
|
}
|
|
|
if !tmpValDecimal.Equal(closeValDecimal) {
|
|
|
+ isUpdate = true
|
|
|
fmt.Println("更新数值")
|
|
|
err = models.ModifyTargetsDataByImport(manualEdbInfo.TradeCode, createDate, closeVal)
|
|
|
if err != nil {
|
|
@@ -635,6 +619,7 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
|
|
|
// 新增指标
|
|
|
if len(addDataList) > 0 {
|
|
|
+ isUpdate = true
|
|
|
err = models.OnlyMultiAddEdbdata(addDataList)
|
|
|
if err != nil {
|
|
|
fmt.Println("MultiAddEdbdata err:", err.Error())
|
|
@@ -645,6 +630,7 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
// 删除不需要的日期数据
|
|
|
num := len(deleteDataMap)
|
|
|
if num > 0 {
|
|
|
+ isUpdate = true
|
|
|
deleteDateList := make([]string, 0)
|
|
|
for date := range deleteDataMap {
|
|
|
deleteDateList = append(deleteDateList, date)
|
|
@@ -656,6 +642,20 @@ func (c *ManualEdbController) EditExcelData() {
|
|
|
errs = append(errs, err.Error())
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 添加记录
|
|
|
+ if isUpdate {
|
|
|
+ record := &models.EdbinfoOpRecord{
|
|
|
+ TradeCode: manualEdbInfo.TradeCode,
|
|
|
+ Remark: "编辑指标",
|
|
|
+ UserId: sysUser.AdminId,
|
|
|
+ UserName: sysUser.RealName,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ go func() {
|
|
|
+ _ = record.Create()
|
|
|
+ }()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
br.Ret = 200
|
|
@@ -984,13 +984,13 @@ func (c *ManualEdbController) NameCheck() {
|
|
|
br.Success = true
|
|
|
}
|
|
|
|
|
|
-// BatchAdd
|
|
|
-// @Title 批量新增
|
|
|
-// @Description 批量新增
|
|
|
+// BatchAdd2Edb
|
|
|
+// @Title 批量新增到指标库
|
|
|
+// @Description 批量新增到指标库
|
|
|
// @Param request body data_manage.AddEdbInfoReq true "type json string"
|
|
|
// @Success 200 string "操作成功"
|
|
|
// @router /target/edb/batch/add [post]
|
|
|
-func (c *ManualEdbController) BatchAdd() {
|
|
|
+func (c *ManualEdbController) BatchAdd2Edb() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
if br.ErrMsg == "" {
|
|
@@ -1848,3 +1848,60 @@ func (c *ManualEdbController) ImportData() {
|
|
|
br.Success = true
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// RecordList
|
|
|
+// @Title 获取指标操作记录列表
|
|
|
+// @Description 获取指标操作记录列表
|
|
|
+// @Param TradeCode query string false "指标编码"
|
|
|
+// @Success 200 {object} models.EdbinfoOpRecordListResp
|
|
|
+// @router /target/edb/op/record/list [get]
|
|
|
+func (c *ManualEdbController) RecordList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := c.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ pageSize, _ := c.GetInt("PageSize")
|
|
|
+ currentIndex, _ := c.GetInt("CurrentIndex")
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ // 频度
|
|
|
+ tradeCode := c.GetString("TradeCode")
|
|
|
+ if tradeCode == `` {
|
|
|
+ br.Msg = `请选择指标`
|
|
|
+ br.ErrMsg = `请选择指标`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ total, list, err := models.GetEdbinfoOpRecordPageList(tradeCode, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := models.EdbinfoOpRecordListResp{
|
|
|
+ List: list,
|
|
|
+ Paging: paging.GetPaging(currentIndex, pageSize, total),
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|