diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java index 7a50f4afb0..d3c8d8bf1c 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java @@ -13,5 +13,9 @@ public interface ProjectConstant { * 根据Token获取组织信息失败 */ String GET_AGENCYID = "根据Token获取组织信息失败"; + /** + * 参数异常 + */ + String TYPE_EXCEPTION = "必要参数为空或参数格式错误"; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryInfoResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryInfoResultDTO.java index e371fce1f5..b2b5c7d39b 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryInfoResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryInfoResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.project.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** * @Author sun @@ -26,6 +28,8 @@ public class ProjectSummaryInfoResultDTO implements Serializable { /** * 类型对应百分比(10% 10.1% 10.01%小数点后两位) */ + @JsonIgnore + private BigDecimal ratioInt; private String ratio; } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryResultDTO.java index 0223644b78..220780be29 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectSummaryResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.project.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** * @Author sun @@ -36,15 +38,19 @@ public class ProjectSummaryResultDTO implements Serializable { /** * 处理中占比 */ - private String pendingRatio; + @JsonIgnore + private BigDecimal pendingRatioInt; + private String pendingRatio; /** * 已结案总数 */ - private Integer closedTotal; + private Integer closedTotal; /** * 已结案占比 */ - private String closedRatio; + @JsonIgnore + private BigDecimal closedRatioInt; + private String closedRatio; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/controller/ProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/controller/ProjectController.java index e0a1e26fb3..5a96496ef6 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/controller/ProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/controller/ProjectController.java @@ -1,10 +1,12 @@ package com.epmet.module.project.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.module.project.service.ProjectService; +import com.epmet.project.constant.ProjectConstant; import com.epmet.project.dto.form.ProjectIncrTrendFormDTO; import com.epmet.project.dto.result.*; import org.springframework.beans.factory.annotation.Autowired; @@ -70,7 +72,10 @@ public class ProjectController { @PostMapping("incrtrend") public Result> incrTrend(@LoginUser TokenDto tokenDto, @RequestBody ProjectIncrTrendFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, ProjectIncrTrendFormDTO.ProjectIncr.class); - return new Result>().ok(projectService.getProjectIncrTrend(tokenDto,formDTO)); + if (!ProjectConstant.DATE.equals(formDTO.getType()) && !ProjectConstant.MONTH.equals(formDTO.getType())) { + throw new RenException(ProjectConstant.TYPE_EXCEPTION); + } + return new Result>().ok(projectService.getProjectIncrTrend(tokenDto, formDTO)); } } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/service/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/service/impl/ProjectServiceImpl.java index 502f613d1c..988f587d30 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/service/impl/ProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/module/project/service/impl/ProjectServiceImpl.java @@ -43,8 +43,8 @@ public class ProjectServiceImpl implements ProjectService { //2:根据agencyId查询项目统计数据 ProjectSummaryResultDTO resultDTO = projectDao.selectProjectSummary(agencyId); if (null != resultDTO) { - resultDTO.setPendingRatio(resultDTO.getPendingRatio() + "%"); - resultDTO.setClosedRatio(resultDTO.getClosedRatio() + "%"); + resultDTO.setPendingRatio(resultDTO.getPendingRatioInt().stripTrailingZeros().toString() + "%"); + resultDTO.setClosedRatio(resultDTO.getClosedRatioInt().stripTrailingZeros().toString() + "%"); } return resultDTO; } @@ -63,7 +63,7 @@ public class ProjectServiceImpl implements ProjectService { resultList = projectDao.selectSummaryInfo(agencyId); if (null != resultList && resultList.size() > NumConstant.ZERO) { resultList.forEach(sum -> { - sum.setRatio(sum.getRatio() + "%"); + sum.setRatio(sum.getRatioInt().stripTrailingZeros().toString() + "%"); }); } return resultList; @@ -120,7 +120,7 @@ public class ProjectServiceImpl implements ProjectService { String agencyId = getLoginUserDetails(tokenDto); //2:查询机关过去九十天日统计数据(sql降序取前九十条) - if (ProjectConstant.DATE.equals(formDTO.getType())){ + if (ProjectConstant.DATE.equals(formDTO.getType())) { resultList = projectDao.selectIncrTrendDaily(agencyId); } @@ -129,7 +129,7 @@ public class ProjectServiceImpl implements ProjectService { resultList = projectDao.selectIncrTrendMonthly(agencyId); } - return null; + return resultList; } /** diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml index ac9ecd9ad6..12cd3897fb 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml @@ -10,9 +10,10 @@ project_total AS "projectTotal", DATE_FORMAT(date_id, '%Y.%m.%d') AS "dateName", pending_total AS "pendingTotal", - CAST(pending_ratio AS DECIMAL (9, 2)) AS "pendingRatio", + /*CAST(pending_ratio AS DECIMAL (9, 2)) AS "pendingRatioInt",*/ + pending_ratio AS "pendingRatioInt", closed_total AS "closedTotal", - CAST(closed_ratio AS DECIMAL(9, 2)) AS "closedRatio" + closed_ratio AS "closedRatioInt" FROM fact_agency_project_daily WHERE @@ -27,7 +28,7 @@ SELECT "处理中" AS "name", pending_total AS "value", - CAST(PENDING_RATIO AS DECIMAL (9, 2)) AS "ratio" + pending_ratio AS "ratioInt" FROM fact_agency_project_daily WHERE @@ -42,7 +43,7 @@ SELECT "已结案" AS "name", closed_total AS "value", - CAST(closed_ratio AS DECIMAL(9, 2)) AS "ratio" + closed_ratio AS "ratioInt" FROM fact_agency_project_daily WHERE @@ -159,9 +160,10 @@ SELECT * FROM( ( SELECT - DATE_FORMAT(DATE_ID, "%Y/%m/%d") AS "date", - PENDING_INCR AS "value", - "处理中" AS "type" + DATE_FORMAT(date_id, "%Y/%m/%d") AS "date", + pending_incr AS "value", + "处理中" AS "type", + date_id FROM fact_agency_project_daily WHERE @@ -174,9 +176,10 @@ UNION ALL ( SELECT - DATE_FORMAT(DATE_ID, "%Y/%m/%d") AS "date", - CLOSED_INCR AS "value", - "已结案" AS "type" + DATE_FORMAT(date_id, "%Y/%m/%d") AS "date", + closed_incr AS "value", + "已结案" AS "type", + date_id FROM fact_agency_project_daily WHERE