feat(meter):加入批量导入户表表计档案功能,待测。
This commit is contained in:
parent
21803bf832
commit
1e2a7fbb75
|
@ -1,6 +1,7 @@
|
|||
package controller
|
||||
|
||||
import (
|
||||
"electricity_bill_calc/excel"
|
||||
"electricity_bill_calc/model"
|
||||
"electricity_bill_calc/response"
|
||||
"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.POST("/park/:pid/meter", security.EnterpriseAuthorize, createSingle04kVMeter)
|
||||
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) {
|
||||
|
@ -221,3 +223,44 @@ func modifySingle04kVMeter(c *gin.Context) {
|
|||
}
|
||||
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