From 7792d0662255677d9405cad3c20c20c97d34be1e Mon Sep 17 00:00:00 2001 From: wanggongfeng <1305282856@qq.com> Date: Thu, 20 Oct 2022 11:11:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E7=BB=9F=E8=AE=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/item/form/ScreenTotalFormDTO.java | 5 ++ .../result/CategoryAnalysisPieResultDTO.java | 1 + .../esua/epdc/modules/item/dao/ItemDao.java | 3 +- .../item/service/impl/ItemServiceImpl.java | 54 ++++++++++++++++++- .../main/resources/mapper/item/ItemDao.xml | 33 ++++++++++-- 5 files changed, 89 insertions(+), 7 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java index fe5b319e9..cbc84742a 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java @@ -40,6 +40,11 @@ public class ScreenTotalFormDTO implements Serializable { */ private String yearMonth; + /** + * 是否查询其他数据(0:否;1:是) + */ + private String isElse; + /** * 时间数组 */ diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java index 3e0294bec..6c87fb9aa 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java @@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto.item.result; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java index e944a2eaa..ccce9b84f 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java @@ -503,7 +503,8 @@ public interface ItemDao extends BaseDao { * @param formDTO * @return */ - List categoryAnalysis(ScreenTotalFormDTO formDTO); + List categoryAnalysisFirst(ScreenTotalFormDTO formDTO); + List categoryAnalysisSecond(ScreenTotalFormDTO formDTO); /** * 满意度统计 diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java index 7a5544165..e99c0e137 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java @@ -3937,10 +3937,60 @@ public class ItemServiceImpl extends BaseServiceImpl implem @Override public List categoryAnalysis(ScreenTotalFormDTO formDTO) { + // 返回值 + List resultList = new ArrayList(); + + if("0".equals(formDTO.getIsElse())){ + // 城市综合 + // 定义初始【城市综合】5大类 + List cityCompre = new ArrayList<>(); + cityCompre.add("城市综合-交通运输"); + cityCompre.add("城市综合-城市管理"); + cityCompre.add("城市综合-城管执法"); + cityCompre.add("城市综合-环境保护"); + cityCompre.add("城市综合-居民生活"); + // 获取分类全部数据 + List list = baseDao.categoryAnalysisSecond(formDTO); + // 其他总数 + Integer elseValue = 0; + for(CategoryAnalysisPieResultDTO dto : list){ + if(cityCompre.contains(dto.getName())){ + resultList.add(dto); + }else{ + elseValue += Integer.parseInt(dto.getValue()); + } + + } + // 定义【其他】 + CategoryAnalysisPieResultDTO elseCategory = new CategoryAnalysisPieResultDTO(); + elseCategory.setCode("其他"); + elseCategory.setName("其他"); + elseCategory.setValue(elseValue.toString()); + resultList.add(elseCategory); + + }else{ + // 其他 + // 总数 + Integer total = 0; + List list = baseDao.categoryAnalysisFirst(formDTO); + for(CategoryAnalysisPieResultDTO dto1 : list){ + total += Integer.parseInt(dto1.getValue()); + } + for(CategoryAnalysisPieResultDTO dto2 : list){ + if(!"城市综合".equals(dto2.getName())){ - List list = baseDao.categoryAnalysis(formDTO); + BigDecimal value = BigDecimal.valueOf(Integer.parseInt(dto2.getValue())); + BigDecimal totalBig = BigDecimal.valueOf(total); + BigDecimal proportion = value .divide(totalBig,2, RoundingMode.HALF_UP); + dto2.setProportion(proportion + "%"); + resultList.add(dto2); - return list; + } + } + + } + + return resultList; } @Override diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml index 193165d63..65358d298 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml @@ -2364,7 +2364,7 @@ order by i.created_time DESC - +