|
@@ -6,26 +6,30 @@ import (
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
"github.com/shopspring/decimal"
|
|
|
"hongze/hongze_edb_lib/utils"
|
|
|
+ "reflect"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+// Ljzzj 累计值转季度
|
|
|
type Ljzzj struct {
|
|
|
}
|
|
|
|
|
|
-// AddCalculateBatchParams 添加的请求参
|
|
|
-type AddCalculateBatchParams struct {
|
|
|
- Req *EdbInfoCalculateBatchSaveReq
|
|
|
- FromEdbInfo *EdbInfo
|
|
|
- EdbCode string
|
|
|
- UniqueCode string
|
|
|
- SysUserId int
|
|
|
- SysUserRealName string
|
|
|
+func (obj Ljzzj) Test() {
|
|
|
+ fmt.Println(reflect.TypeOf(obj).Name())
|
|
|
}
|
|
|
|
|
|
-// Add 累计值转月
|
|
|
-func (item Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error) {
|
|
|
+// Add 添加
|
|
|
+func (obj Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
|
|
|
+ req := params.Req
|
|
|
+ fromEdbInfo := params.FromEdbInfo
|
|
|
+ edbCode := params.EdbCode
|
|
|
+ if fromEdbInfo.Frequency != "季度" {
|
|
|
+ errMsg = "请选择季度指标"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
o := orm.NewOrm()
|
|
|
to, err := o.Begin()
|
|
|
if err != nil {
|
|
@@ -33,20 +37,16 @@ func (item Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err err
|
|
|
}
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- fmt.Println("AddCalculateLjzzj,Err:" + err.Error())
|
|
|
_ = to.Rollback()
|
|
|
+ fmt.Println(reflect.TypeOf(obj).Name(), ";Add,Err:"+err.Error())
|
|
|
} else {
|
|
|
_ = to.Commit()
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
- req := params.Req
|
|
|
- fromEdbInfo := params.FromEdbInfo
|
|
|
- edbCode := params.EdbCode
|
|
|
-
|
|
|
edbInfo = new(EdbInfo)
|
|
|
- edbInfo.Source = utils.DATA_SOURCE_CALCULATE_LJZZJ
|
|
|
- edbInfo.SourceName = utils.DATA_SOURCE_NAME_CALCULATE_LJZZJ
|
|
|
+ edbInfo.Source = obj.GetSource()
|
|
|
+ edbInfo.SourceName = obj.GetSourceName()
|
|
|
edbInfo.EdbCode = edbCode
|
|
|
edbInfo.EdbName = req.EdbName
|
|
|
edbInfo.EdbNameSource = req.EdbName
|
|
@@ -90,20 +90,13 @@ func (item Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err err
|
|
|
}
|
|
|
|
|
|
//计算数据
|
|
|
- err = item.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbInfo.EdbCode, "", "")
|
|
|
+ err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbInfo.EdbCode, "", "")
|
|
|
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// EditCalculateBatchParams 编辑的请求参
|
|
|
-type EditCalculateBatchParams struct {
|
|
|
- Req *EdbInfoCalculateBatchEditReq
|
|
|
- EdbInfo *EdbInfo
|
|
|
- FromEdbInfo *EdbInfo
|
|
|
-}
|
|
|
-
|
|
|
// Edit 编辑
|
|
|
-func (item Ljzzj) Edit(params EditCalculateBatchParams) (err error) {
|
|
|
+func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error) {
|
|
|
req := params.Req
|
|
|
edbInfo := params.EdbInfo
|
|
|
fromEdbInfo := params.FromEdbInfo
|
|
@@ -115,8 +108,8 @@ func (item Ljzzj) Edit(params EditCalculateBatchParams) (err error) {
|
|
|
}
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- fmt.Println("EditCalculateLjzzj,Err:" + err.Error())
|
|
|
_ = to.Rollback()
|
|
|
+ fmt.Println(reflect.TypeOf(obj).Name(), ";Edit,Err:"+err.Error())
|
|
|
} else {
|
|
|
_ = to.Commit()
|
|
|
}
|
|
@@ -169,8 +162,8 @@ func (item Ljzzj) Edit(params EditCalculateBatchParams) (err error) {
|
|
|
calculateMappingItem := &EdbInfoCalculateMapping{
|
|
|
EdbInfoCalculateMappingId: 0,
|
|
|
EdbInfoId: edbInfo.EdbInfoId,
|
|
|
- Source: utils.DATA_SOURCE_CALCULATE_LJZZJ,
|
|
|
- SourceName: "累计值转月",
|
|
|
+ Source: obj.GetSource(),
|
|
|
+ SourceName: obj.GetSourceName(),
|
|
|
EdbCode: edbInfo.EdbCode,
|
|
|
FromEdbInfoId: fromEdbInfo.EdbInfoId,
|
|
|
FromEdbCode: fromEdbInfo.EdbCode,
|
|
@@ -189,23 +182,13 @@ func (item Ljzzj) Edit(params EditCalculateBatchParams) (err error) {
|
|
|
}
|
|
|
|
|
|
//计算数据
|
|
|
- err = item.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbInfo.EdbCode, "", "")
|
|
|
+ err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbInfo.EdbCode, "", "")
|
|
|
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// RefreshParams 编辑的请求参
|
|
|
-type RefreshParams struct {
|
|
|
- EdbInfoId int
|
|
|
- Source int
|
|
|
- FromEdbInfo *EdbInfo
|
|
|
- EdbCode string
|
|
|
- StartDate string
|
|
|
- EndDate string
|
|
|
-}
|
|
|
-
|
|
|
-// Refresh 刷新全部累计值转月数据
|
|
|
-func (item Ljzzj) Refresh(params RefreshParams) (err error) {
|
|
|
+// Refresh 刷新
|
|
|
+func (obj Ljzzj) Refresh(params RefreshParams) (err error) {
|
|
|
o := orm.NewOrm()
|
|
|
to, err := o.Begin()
|
|
|
if err != nil {
|
|
@@ -213,20 +196,30 @@ func (item Ljzzj) Refresh(params RefreshParams) (err error) {
|
|
|
}
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- fmt.Println("RefreshAllCalculateLjzzj,Err:" + err.Error())
|
|
|
_ = to.Rollback()
|
|
|
+ fmt.Println(reflect.TypeOf(obj).Name(), ";Refresh,Err:"+err.Error())
|
|
|
} else {
|
|
|
_ = to.Commit()
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
// 计算数据
|
|
|
- err = item.refresh(to, params.EdbInfoId, params.Source, params.FromEdbInfo, params.EdbCode, params.StartDate, params.EndDate)
|
|
|
+ err = obj.refresh(to, params.EdbInfoId, params.Source, params.FromEdbInfo, params.EdbCode, params.StartDate, params.EndDate)
|
|
|
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func (item Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
|
|
|
+// GetSource 获取来源编码id
|
|
|
+func (obj Ljzzj) GetSource() int {
|
|
|
+ return utils.DATA_SOURCE_CALCULATE_LJZZJ
|
|
|
+}
|
|
|
+
|
|
|
+// GetSourceName 获取来源名称
|
|
|
+func (obj Ljzzj) GetSourceName() string {
|
|
|
+ return utils.DATA_SOURCE_NAME_CALCULATE_LJZZJ
|
|
|
+}
|
|
|
+
|
|
|
+func (obj Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
|
|
|
dataTableName := GetEdbDataTableName(source)
|
|
|
edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
//计算数据
|
|
@@ -326,7 +319,7 @@ func (item Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *Ed
|
|
|
b := decimal.NewFromFloat(2.0)
|
|
|
val, _ = a.Div(b).Float64()
|
|
|
|
|
|
- tmpSql, newAdd, tmpErr := item.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
+ tmpSql, newAdd, tmpErr := obj.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
if !isAdd {
|
|
|
isAdd = newAdd
|
|
|
}
|
|
@@ -355,7 +348,7 @@ func (item Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *Ed
|
|
|
}
|
|
|
}
|
|
|
if date != "" {
|
|
|
- tmpSql, newAdd, tmpErr := item.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
+ tmpSql, newAdd, tmpErr := obj.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
if !isAdd {
|
|
|
isAdd = newAdd
|
|
|
}
|
|
@@ -377,7 +370,7 @@ func (item Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *Ed
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func (item Ljzzj) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to orm.TxOrmer) (newSql string, isAdd bool, err error) {
|
|
|
+func (obj Ljzzj) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to orm.TxOrmer) (newSql string, isAdd bool, err error) {
|
|
|
newSql = addSql
|
|
|
saveValue := utils.SubFloatToString(val, 4)
|
|
|
//判断数据是否存在
|