fix(excel):修复NullDecimal类型内容的导入。
This commit is contained in:
parent
6d28740a51
commit
dce83d7e49
@ -106,6 +106,7 @@ func uploadEndUserRegisterTemplate(c *gin.Context) {
|
|||||||
result.Error(http.StatusInternalServerError, err.Error())
|
result.Error(http.StatusInternalServerError, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if meterType == 0 {
|
if meterType == 0 {
|
||||||
errs := service.EndUserService.BatchImportNonPVRegister(requestReportId, archiveFile)
|
errs := service.EndUserService.BatchImportNonPVRegister(requestReportId, archiveFile)
|
||||||
if errs.Len() > 0 {
|
if errs.Len() > 0 {
|
||||||
|
@ -166,7 +166,9 @@ func (a *ExcelAnalyzer[T]) Analysis(bean T) ([]T, []ExcelAnalysisError) {
|
|||||||
errs = append(errs, ExcelAnalysisError{Row: rowIndex + 1, Col: recognizer.MatchIndex + 1, Err: AnalysisError{Err: fmt.Errorf("单元格内容应为纯数字内容。%w", err)}})
|
errs = append(errs, ExcelAnalysisError{Row: rowIndex + 1, Col: recognizer.MatchIndex + 1, Err: AnalysisError{Err: fmt.Errorf("单元格内容应为纯数字内容。%w", err)}})
|
||||||
actualField.Set(reflect.ValueOf((nullValue)))
|
actualField.Set(reflect.ValueOf((nullValue)))
|
||||||
} else {
|
} else {
|
||||||
actualField.Set(reflect.ValueOf(decimalValue))
|
value := decimal.NewNullDecimal(decimalValue)
|
||||||
|
value.Valid = true
|
||||||
|
actualField.Set(reflect.ValueOf(value))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "int64", "int":
|
case "int64", "int":
|
||||||
|
@ -222,9 +222,11 @@ func (es _EndUserService) BatchImportNonPVRegister(reportId string, file io.Read
|
|||||||
elem.CurrentPeriodCritical = decimal.Zero
|
elem.CurrentPeriodCritical = decimal.Zero
|
||||||
elem.CurrentPeriodPeak = decimal.Zero
|
elem.CurrentPeriodPeak = decimal.Zero
|
||||||
elem.CurrentPeriodValley = decimal.Zero
|
elem.CurrentPeriodValley = decimal.Zero
|
||||||
|
elem.CurrentPeriodFlat = elem.CurrentPeriodOverall.Sub(elem.CurrentPeriodCritical).Sub(elem.CurrentPeriodPeak).Sub(elem.CurrentPeriodValley)
|
||||||
elem.AdjustCritical = decimal.Zero
|
elem.AdjustCritical = decimal.Zero
|
||||||
elem.AdjustPeak = decimal.Zero
|
elem.AdjustPeak = decimal.Zero
|
||||||
elem.AdjustValley = decimal.Zero
|
elem.AdjustValley = decimal.Zero
|
||||||
|
elem.AdjustFlat = elem.AdjustOverall.Sub(elem.AdjustCritical).Sub(elem.AdjustPeak).Sub(elem.AdjustValley)
|
||||||
err := es.UpdateEndUserRegisterRecord(tx, elem)
|
err := es.UpdateEndUserRegisterRecord(tx, elem)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
||||||
@ -278,7 +280,7 @@ func (es _EndUserService) BatchImportPVRegister(reportId string, file io.Reader)
|
|||||||
},
|
},
|
||||||
make(map[string]model.EndUserDetail, 0),
|
make(map[string]model.EndUserDetail, 0),
|
||||||
)
|
)
|
||||||
analyzer, err := excel.NewEndUserNonPVExcelAnalyzer(file)
|
analyzer, err := excel.NewEndUserPVExcelAnalyzer(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
||||||
return errs
|
return errs
|
||||||
@ -290,6 +292,7 @@ func (es _EndUserService) BatchImportPVRegister(reportId string, file io.Reader)
|
|||||||
}
|
}
|
||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := global.DBConn.NewSession()
|
tx := global.DBConn.NewSession()
|
||||||
if err = tx.Begin(); err != nil {
|
if err = tx.Begin(); err != nil {
|
||||||
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
||||||
@ -316,9 +319,11 @@ func (es _EndUserService) BatchImportPVRegister(reportId string, file io.Reader)
|
|||||||
elem.CurrentPeriodCritical = im.CurrentPeriodCritical.Decimal
|
elem.CurrentPeriodCritical = im.CurrentPeriodCritical.Decimal
|
||||||
elem.CurrentPeriodPeak = im.CurrentPeriodPeak.Decimal
|
elem.CurrentPeriodPeak = im.CurrentPeriodPeak.Decimal
|
||||||
elem.CurrentPeriodValley = im.CurrentPeriodValley.Decimal
|
elem.CurrentPeriodValley = im.CurrentPeriodValley.Decimal
|
||||||
|
elem.CurrentPeriodFlat = elem.CurrentPeriodOverall.Sub(elem.CurrentPeriodCritical).Sub(elem.CurrentPeriodPeak).Sub(elem.CurrentPeriodValley)
|
||||||
elem.AdjustCritical = im.AdjustCritical.Decimal
|
elem.AdjustCritical = im.AdjustCritical.Decimal
|
||||||
elem.AdjustPeak = im.AdjustPeak.Decimal
|
elem.AdjustPeak = im.AdjustPeak.Decimal
|
||||||
elem.AdjustValley = im.AdjustValley.Decimal
|
elem.AdjustValley = im.AdjustValley.Decimal
|
||||||
|
elem.AdjustFlat = elem.AdjustOverall.Sub(elem.AdjustCritical).Sub(elem.AdjustPeak).Sub(elem.AdjustValley)
|
||||||
err := es.UpdateEndUserRegisterRecord(tx, elem)
|
err := es.UpdateEndUserRegisterRecord(tx, elem)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
errs.AddError(es.newVirtualExcelAnalysisError(err))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user