feat(meter):加入批量导入户表表计档案功能,待测。
This commit is contained in:
parent
21803bf832
commit
1e2a7fbb75
|
@ -1,6 +1,7 @@
|
||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"electricity_bill_calc/excel"
|
||||||
"electricity_bill_calc/model"
|
"electricity_bill_calc/model"
|
||||||
"electricity_bill_calc/response"
|
"electricity_bill_calc/response"
|
||||||
"electricity_bill_calc/security"
|
"electricity_bill_calc/security"
|
||||||
|
@ -31,6 +32,7 @@ func InitializeMeter04kVController(router *gin.Engine) {
|
||||||
Meter04kVController.Router.GET("/park/:pid/meter/:code", security.EnterpriseAuthorize, fetch04kVMeterDetail)
|
Meter04kVController.Router.GET("/park/:pid/meter/:code", security.EnterpriseAuthorize, fetch04kVMeterDetail)
|
||||||
Meter04kVController.Router.POST("/park/:pid/meter", security.EnterpriseAuthorize, createSingle04kVMeter)
|
Meter04kVController.Router.POST("/park/:pid/meter", security.EnterpriseAuthorize, createSingle04kVMeter)
|
||||||
Meter04kVController.Router.PUT("/park/:pid/meter/:code", security.EnterpriseAuthorize, modifySingle04kVMeter)
|
Meter04kVController.Router.PUT("/park/:pid/meter/:code", security.EnterpriseAuthorize, modifySingle04kVMeter)
|
||||||
|
Meter04kVController.Router.POST("/park/:pid/meter/batch", security.EnterpriseAuthorize, batchImport04kVMeterArchive)
|
||||||
}
|
}
|
||||||
|
|
||||||
func download04kvMeterArchiveTemplate(c *gin.Context) {
|
func download04kvMeterArchiveTemplate(c *gin.Context) {
|
||||||
|
@ -221,3 +223,44 @@ func modifySingle04kVMeter(c *gin.Context) {
|
||||||
}
|
}
|
||||||
result.Updated("指定0.4kV表计信息已经更新。")
|
result.Updated("指定0.4kV表计信息已经更新。")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func batchImport04kVMeterArchive(c *gin.Context) {
|
||||||
|
result := response.NewResult(c)
|
||||||
|
requestParkId := c.Param("pid")
|
||||||
|
userSession, err := _retreiveSession(c)
|
||||||
|
if err != nil {
|
||||||
|
result.Unauthorized(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
sure, err := service.ParkService.EnsurePark(userSession.Uid, requestParkId)
|
||||||
|
if err != nil {
|
||||||
|
result.Error(http.StatusInternalServerError, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !sure {
|
||||||
|
result.Unauthorized("不能访问不属于自己的园区。")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
uploadedFile, err := c.FormFile("data")
|
||||||
|
if err != nil {
|
||||||
|
result.NotAccept("没有接收到上传的档案文件。")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
archiveFile, err := uploadedFile.Open()
|
||||||
|
if err != nil {
|
||||||
|
result.Error(http.StatusInternalServerError, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
analyzer, err := excel.NewMeterArchiveExcelAnalyzer(archiveFile)
|
||||||
|
if err != nil {
|
||||||
|
result.Error(http.StatusInternalServerError, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
records, errs := analyzer.Analysis(*new(model.Meter04KV))
|
||||||
|
if len(errs) > 0 {
|
||||||
|
result.Json(http.StatusNotAcceptable, "上传的表计档案文件存在错误。", gin.H{"errors": errs})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Printf("[controller|debug] records: %+v", records)
|
||||||
|
result.Failure(http.StatusNotAcceptable, "调试中")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user