From 5b2e107325dd5abf8989245465c94928d999bc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Tue, 23 Aug 2022 13:26:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(report):=E5=A2=9E=E5=8A=A0=E6=8E=A8?= =?UTF-8?q?=E8=BF=9B=E6=8A=A5=E8=A1=A8=E6=8A=84=E8=A1=A8=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E5=92=8C=E5=8F=91=E5=B8=83=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/report.go | 40 ++++++++++++++++++++++++++++++++++++++++ service/report.go | 20 ++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/controller/report.go b/controller/report.go index 38a27c6..5bed3c7 100644 --- a/controller/report.go +++ b/controller/report.go @@ -32,6 +32,8 @@ func InitializeReportController(router *gin.Engine) { router.PUT("/report/:rid/maintenance/:mid", security.EnterpriseAuthorize, modifyWillDilutedFee) router.DELETE("/report/:rid/maintenance/:mid", security.EnterpriseAuthorize, deleteTemporaryWillDilutedFee) router.PUT("/report/:rid/step/diluted/fees", security.EnterpriseAuthorize, progressReportWillDilutedFee) + router.PUT("/report/:rid/step/meter/register", security.EnterpriseAuthorize, progressEndUserRegister) + router.POST("/report/:rid/publish", security.EnterpriseAuthorize, publishReport) } func ensureReportBelongs(c *gin.Context, result *response.Result, requestReportId string) bool { @@ -358,3 +360,41 @@ func progressReportWillDilutedFee(c *gin.Context) { } result.Success("待摊薄费用编辑步骤已经完成。") } + +func progressEndUserRegister(c *gin.Context) { + result := response.NewResult(c) + requestReportId := c.Param("rid") + if !ensureReportBelongs(c, result, requestReportId) { + return + } + report, err := service.ReportService.RetreiveReportIndex(requestReportId) + if err != nil { + result.NotFound(err.Error()) + return + } + err = service.ReportService.ProgressReportRegisterEndUser(*report) + if err != nil { + result.Error(http.StatusInternalServerError, err.Error()) + return + } + result.Success("终端用户抄表编辑步骤已经完成。") +} + +func publishReport(c *gin.Context) { + result := response.NewResult(c) + requestReportId := c.Param("rid") + if !ensureReportBelongs(c, result, requestReportId) { + return + } + report, err := service.ReportService.RetreiveReportIndex(requestReportId) + if err != nil { + result.NotFound(err.Error()) + return + } + err = service.ReportService.PublishReport(*report) + if err != nil { + result.Error(http.StatusInternalServerError, err.Error()) + return + } + result.Success("指定的公示报表已经发布。") +} diff --git a/service/report.go b/service/report.go index d771402..a77ba67 100644 --- a/service/report.go +++ b/service/report.go @@ -343,6 +343,18 @@ func (_ReportService) ProgressReportWillDilutedFee(report model.Report) (err err return } +func (_ReportService) ProgressReportRegisterEndUser(report model.Report) (err error) { + report.StepState.Submeter = true + _, err = global.DBConn.ID(report.Id).Cols("step_state").Update(report) + return +} + +func (_ReportService) ProgressReportCalculate(report model.Report) (err error) { + report.StepState.Calculate = true + _, err = global.DBConn.ID(report.Id).Cols("step_state").Update(report) + return +} + func (_ReportService) RetreiveParkEndUserMeterType(reportId string) (int, error) { var types = make([]int, 0) err := global.DBConn. @@ -359,3 +371,11 @@ func (_ReportService) RetreiveParkEndUserMeterType(reportId string) (int, error) } return types[0], nil } + +func (_ReportService) PublishReport(report model.Report) (err error) { + report.Published = true + report.PublishedAt = lo.ToPtr(time.Now()) + report.StepState.Publish = true + _, err = global.DBConn.ID(report.Id).Cols("step_state", "published", "published_at").Update(report) + return +}