|
@@ -1,6 +1,7 @@
|
|
|
package residual_analysis_service
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/models/residual_analysis_model"
|
|
|
"eta/eta_api/models/system"
|
|
@@ -388,7 +389,7 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func ResidualAnalysisDetail(edbInfoId int) ([]*data_manage.EdbInfoList, error) {
|
|
|
+func ResidualAnalysisDetail(edbInfoId int) (residual_analysis_model.ResidualAnalysisDetailResp, error) {
|
|
|
// 通过指标配置映射表 拿到配置id,再获取关联的所有指标信息
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
@@ -398,18 +399,18 @@ func ResidualAnalysisDetail(edbInfoId int) ([]*data_manage.EdbInfoList, error) {
|
|
|
|
|
|
mappingList, err := residual_analysis_model.GetConfigMappingListByCondition(condition, pars)
|
|
|
if err != nil {
|
|
|
- return []*data_manage.EdbInfoList{}, err
|
|
|
+ return residual_analysis_model.ResidualAnalysisDetailResp{}, err
|
|
|
}
|
|
|
|
|
|
if len(mappingList) <= 0 {
|
|
|
- return []*data_manage.EdbInfoList{}, fmt.Errorf("指标不存在", nil)
|
|
|
+ return residual_analysis_model.ResidualAnalysisDetailResp{}, fmt.Errorf("指标不存在", nil)
|
|
|
}
|
|
|
|
|
|
mapping := mappingList[0]
|
|
|
|
|
|
configMappingList, err := residual_analysis_model.GetConfigMappingListByConfigId(mapping.CalculateResidualAnalysisConfigId)
|
|
|
if err != nil {
|
|
|
- return []*data_manage.EdbInfoList{}, err
|
|
|
+ return residual_analysis_model.ResidualAnalysisDetailResp{}, err
|
|
|
}
|
|
|
|
|
|
var edbInfoIdList []int64
|
|
@@ -427,8 +428,82 @@ func ResidualAnalysisDetail(edbInfoId int) ([]*data_manage.EdbInfoList, error) {
|
|
|
|
|
|
edbInfoList, err := data_manage.GetEdbInfoListByCond(condition, pars)
|
|
|
if err != nil {
|
|
|
- return []*data_manage.EdbInfoList{}, err
|
|
|
+ return residual_analysis_model.ResidualAnalysisDetailResp{}, err
|
|
|
}
|
|
|
|
|
|
- return edbInfoList, nil
|
|
|
+ // 获取配置
|
|
|
+ configInfo, err := residual_analysis_model.GetResidualAnalysisConfigById(mapping.CalculateResidualAnalysisConfigId)
|
|
|
+ if err != nil {
|
|
|
+ return residual_analysis_model.ResidualAnalysisDetailResp{}, err
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := residual_analysis_model.ResidualAnalysisDetailResp{
|
|
|
+ ConfigInfo: &configInfo,
|
|
|
+ EdbInfoList: edbInfoList,
|
|
|
+ }
|
|
|
+
|
|
|
+ return resp, nil
|
|
|
+}
|
|
|
+
|
|
|
+func SaveResidualAnalysisConfig(req residual_analysis_model.ResidualAnalysisReq, sysUser *system.Admin) error {
|
|
|
+
|
|
|
+ config := residual_analysis_model.ResidualAnalysisConfigVo{
|
|
|
+ DateType: req.DateType,
|
|
|
+ StartDate: req.StartDate,
|
|
|
+ EndDate: req.EndDate,
|
|
|
+ IsOrder: req.IsOrder,
|
|
|
+ IndexType: req.IndexType,
|
|
|
+ LeadValue: req.LeadValue,
|
|
|
+ LeadFrequency: req.LeadFrequency,
|
|
|
+ LeftIndexMin: req.LeftIndexMin,
|
|
|
+ LeftIndexMax: req.LeftIndexMax,
|
|
|
+ RightIndexMin: req.RightIndexMin,
|
|
|
+ RightIndexMax: req.RightIndexMax,
|
|
|
+ ResidualIndexMin: req.ResidualIndexMin,
|
|
|
+ ResidualIndexMax: req.ResidualIndexMax,
|
|
|
+ ContrastIndexMin: req.ContrastIndexMin,
|
|
|
+ ContrastIndexMax: req.ContrastIndexMax,
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换为json格式
|
|
|
+ configJson, err := json.Marshal(config)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ // 新增or更新
|
|
|
+ if req.EdbInfoId > 0 {
|
|
|
+ condition += " and edb_info_id=?"
|
|
|
+ pars = append(pars, req.EdbInfoId)
|
|
|
+ configMappings, err := residual_analysis_model.GetConfigMappingListByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(configMappings) > 0 {
|
|
|
+ mapping := configMappings[0]
|
|
|
+ configInfo, err := residual_analysis_model.GetResidualAnalysisConfigById(mapping.CalculateResidualAnalysisConfigId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ configInfo.Config = string(configJson)
|
|
|
+ err = residual_analysis_model.UpdateResidualAnalysisConfig(configInfo)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ analysisConfig := residual_analysis_model.CalculateResidualAnalysisConfig{
|
|
|
+ Config: string(configJson),
|
|
|
+ SysUserId: sysUser.AdminId,
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = residual_analysis_model.SaveResidualAnalysisConfig(analysisConfig)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
}
|