diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/form/EventCategoryFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/form/EventCategoryFormDTO.java index f9cd88c5e5..4907c3cf08 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/form/EventCategoryFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/form/EventCategoryFormDTO.java @@ -30,7 +30,11 @@ public class EventCategoryFormDTO implements Serializable { * 组织类型 组织:agency,网格:grid */ private String orgType; - + private String areaCode; + /** + * 组织级别 + */ + private String orgLevel; @NotBlank(message = "结束时间不能为空",groups = {EventCategoryForm.class,CategoryEventExportForm.class}) private String endTime; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/result/OrgEventScoreResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/result/OrgEventScoreResultDTO.java new file mode 100644 index 0000000000..f7b2a334ba --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/result/OrgEventScoreResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.evaluationindex.result;/** + * @author ZhaoQiFeng + * @date 2022/12/14 + * @apiNote + */ + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/12/14 13:39 + */ +@Data +public class OrgEventScoreResultDTO implements Serializable { + private static final long serialVersionUID = 2570384890580378137L; + private String orgName; + /** + * 上报事件数 + */ + private String projectCount; + /** + * 上报事件总分 + */ + private String projectScore; + /** + * 例行工作数 + */ + private String workCount; + /** + * 例行工作总分 + */ + private String workScore; + /** + * 网格员数量 + */ + private String memberCount; + /** + * 考核得分 + */ + private String aveScore; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/PingYinEventController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/PingYinEventController.java index 8ec1f0089b..b42855202d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/PingYinEventController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/PingYinEventController.java @@ -1,6 +1,6 @@ package com.epmet.dataaggre.controller; -import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; @@ -19,6 +19,7 @@ import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryFormDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryListFormDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventCategoryListResultDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventScoreTotalResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.result.OrgEventScoreResultDTO; import com.epmet.dataaggre.service.evaluationindex.PingYinEventService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -141,8 +142,8 @@ public class PingYinEventController { //分类统计 List categoryList = pingYinEventService.getEventCategorySoreExport(tokenDto, formDTO); //设置输出流和模板信息 - excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).build(); - WriteSheet writeSheet = EasyExcel.writerSheet(0) + excelWriter = EasyExcelFactory.write(outputStream).withTemplate(inputStream).build(); + WriteSheet writeSheet = EasyExcelFactory.writerSheet(0) .registerWriteHandler(new CustomMergeStrategy(categoryList.stream().map(EventCategoryResultDTO::getEventType).collect(Collectors.toList()), 0)) .registerWriteHandler(new CustomMergeStrategy(categoryList.stream().map(EventCategoryResultDTO::getParentCategoryName).collect(Collectors.toList()), 1)) .build(); @@ -150,6 +151,11 @@ public class PingYinEventController { FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); excelWriter.fill(categoryList, fillConfig, writeSheet); excelWriter.fill(scoreTotal, writeSheet); + + List orgScoreList = pingYinEventService.getOrgEventScoreList(formDTO); + WriteSheet writeSheet1 = EasyExcelFactory.writerSheet(1).build(); + excelWriter.fill(orgScoreList, fillConfig, writeSheet1); + excelWriter.fill(scoreTotal, writeSheet1); } catch (EpmetException e) { response.reset(); response.setCharacterEncoding("UTF-8"); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/PingYinEventDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/PingYinEventDao.java index 66f9962f37..f0b44c9d89 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/PingYinEventDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/PingYinEventDao.java @@ -21,6 +21,7 @@ import com.epmet.dataaggre.dto.evaluationindex.EventCategoryResultDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryFormDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryListFormDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventCategoryListResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.result.OrgEventScoreResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -139,4 +140,18 @@ public interface PingYinEventDao { * @Date 2022/12/9 13:41 */ List selectWorkCategoryForExport(); + + /** + * 下级得分 + * + * @Param formDTO + * @Return {@link List< OrgEventScoreResultDTO>} + * @Author zhaoqifeng + * @Date 2022/12/15 9:31 + */ + List selectOrgEventScoreList(EventCategoryFormDTO formDTO); + + List selectGridEventScoreList(EventCategoryFormDTO formDTO); + + String getAreaCode(@Param("agencyId")String agencyId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/PingYinEventService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/PingYinEventService.java index 1e4bb50c07..35f22c00c4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/PingYinEventService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/PingYinEventService.java @@ -7,6 +7,7 @@ import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryFormDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryListFormDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventCategoryListResultDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventScoreTotalResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.result.OrgEventScoreResultDTO; import java.util.List; @@ -56,4 +57,14 @@ public interface PingYinEventService { * @Date 2022/12/9 9:55 */ List getEventCategorySoreExport (TokenDto tokenDto, EventCategoryFormDTO formDTO); + + /** + * 下级得分 + * + * @Param formDTO + * @Return {@link List< OrgEventScoreResultDTO>} + * @Author zhaoqifeng + * @Date 2022/12/15 11:05 + */ + List getOrgEventScoreList(EventCategoryFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/PingYinEventServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/PingYinEventServiceImpl.java index 2ac0e78511..e605d5e291 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/PingYinEventServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/PingYinEventServiceImpl.java @@ -11,12 +11,14 @@ import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.EventConstant; +import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.evaluationindex.PingYinEventDao; import com.epmet.dataaggre.dto.evaluationindex.EventCategoryResultDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryFormDTO; import com.epmet.dataaggre.dto.evaluationindex.form.EventCategoryListFormDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventCategoryListResultDTO; import com.epmet.dataaggre.dto.evaluationindex.result.EventScoreTotalResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.result.OrgEventScoreResultDTO; import com.epmet.dataaggre.service.evaluationindex.PingYinEventService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -29,6 +31,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -151,7 +154,6 @@ public class PingYinEventServiceImpl implements PingYinEventService { */ @Override public EventScoreTotalResultDTO getEventScoreTotal(EventCategoryFormDTO formDTO) { - formDTO.setCustomerId("6f203e30de1a65aab7e69c058826cd80"); EventScoreTotalResultDTO result = new EventScoreTotalResultDTO(); Long projectScore = pingYinEventDao.getProjectTotalScore(formDTO); Long workScore = pingYinEventDao.getWorkTotalScore(formDTO); @@ -191,7 +193,6 @@ public class PingYinEventServiceImpl implements PingYinEventService { formDTO.setOrgType("agency"); } formDTO.setCustomerId(tokenDto.getCustomerId()); - formDTO.setCustomerId("6f203e30de1a65aab7e69c058826cd80"); //获取项目分类 List projectCategoryList = pingYinEventDao.selectProjectCategoryForExport(formDTO.getCustomerId()); //获取项目赋值得分统计 @@ -220,4 +221,42 @@ public class PingYinEventServiceImpl implements PingYinEventService { result.addAll(workCategoryList); return result; } + + /** + * 下级得分 + * + * @param formDTO + * @Param formDTO + * @Return {@link List< OrgEventScoreResultDTO >} + * @Author zhaoqifeng + * @Date 2022/12/15 11:05 + */ + @Override + public List getOrgEventScoreList(EventCategoryFormDTO formDTO) { + if (OrgConstant.GRID.equals((formDTO.getOrgLevel()))) { + return Collections.emptyList(); + } + List result; + //获取areacode + if (StringUtils.isBlank(formDTO.getAreaCode())) { + formDTO.setAreaCode(pingYinEventDao.getAreaCode(formDTO.getOrgId())); + } + if (OrgConstant.COMMUNITY.equals(formDTO.getOrgLevel())) { + result = pingYinEventDao.selectGridEventScoreList(formDTO); + } else { + result = pingYinEventDao.selectOrgEventScoreList(formDTO); + } + result.forEach(item -> { + item.setAveScore("0.00"); + if (!NumConstant.ZERO_STR.equals(item.getMemberCount())) { + BigDecimal projectScore = new BigDecimal(item.getProjectScore()); + BigDecimal workScore = new BigDecimal(item.getWorkScore()); + BigDecimal total = projectScore.add(workScore); + BigDecimal count = new BigDecimal(item.getMemberCount()); + BigDecimal ave = total.divide(count, NumConstant.TWO, RoundingMode.HALF_UP); + item.setAveScore(ave.toString()); + } + }); + return result; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/PingYinEventDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/PingYinEventDao.xml index 54c52e5095..2fc6e9e53d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/PingYinEventDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/PingYinEventDao.xml @@ -287,7 +287,7 @@ + + + +