From d6aabd981bf80cd57c09819f42b1c4e79f1904f9 Mon Sep 17 00:00:00 2001 From: manailin <261030956@qq.com> Date: 星期三, 21 九月 2022 10:13:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/sanshuohuitang_dev' into sanshuohuitang_dev --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java index 577cbdb..64cb835 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java @@ -1,11 +1,16 @@ package com.panzhihua.service_community.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.constants.ReturnMsgConstants; import com.panzhihua.common.enums.SanShuoEventStatusEnum; +import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO; +import com.panzhihua.common.model.dtos.user.IndexDataDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.sanshuo.*; @@ -21,12 +26,16 @@ import com.panzhihua.service_community.model.dos.ComStreetDO; import com.panzhihua.service_community.service.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang3.RandomUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; + +import static java.util.Objects.nonNull; /** * Description 三说会堂事件表业务层实现类 @@ -56,6 +65,9 @@ @Resource private ComSanShuoIndustryCenterService comSanShuoIndustryCenterService; + + @Resource + private ComEventMapper comEventMapper; @Override public R pageByComEvent(ComEvent comEvent, Page pagination) { @@ -286,6 +298,136 @@ return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord); } + /** + * 大屏事件统计 + * @param indexDataDTO 查询入参 + * */ + @Override + public R indexData(IndexDateDTO indexDataDTO) { + IndexDateVO vo = comEventMapper.dateAnalysis(indexDataDTO,DateUtil.beginOfMonth(new Date()),DateUtil.endOfMonth(new Date())); + //计算率 + if (nonNull(vo.getSuccess()) && !vo.getSuccess().equals(0)){ + if (nonNull(vo.getAccepted()) && !vo.getAccepted().equals(0)){ + //计算成功率 + vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2)); + } + } + //折线图X轴 + List<Date> dates = pastTwelveMoth(); + vo.setX(getYAndM(dates)); + //新增 + List<Integer> Y1=new ArrayList<>(); + List<Integer> Y2=new ArrayList<>(); + for (Date date : dates) { + Y1.add(comEventMapper.dateAnalysisY(date,DateUtil.endOfMonth(date),indexDataDTO)); + Y2.add(comEventMapper.dateAnalysisYTwo(date,DateUtil.endOfMonth(date),indexDataDTO)); + } + vo.setY1(Y1); + vo.setY2(Y2); + return R.ok(vo); + } + + @Override + public R eventIndexData(Integer type) { + //获取事件总数 + Integer eventCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().notIn("event_process_status", (7), (8))); + if (type.equals(1)){ + //受理级别占比 + List<EventRateVO> eventRateVOS = comEventMapper.eventRate(); + for (EventRateVO eventRateVO : eventRateVOS) { + if (nonNull(eventRateVO)){ + eventRateVO.setName(typeToName(eventRateVO.getType())); + if (nonNull(eventCount) && !eventCount.equals(0)){ + //计算占比 + eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2)); + } + } + } + return R.ok(eventRateVOS); + }else if (type.equals(2)){ + //专家级别 + List<EventRateVO> eventRateVOS = comEventMapper.expertRate(); + for (EventRateVO eventRateVO : eventRateVOS) { + if (nonNull(eventRateVO)){ + eventRateVO.setName(typeToNameExpert(eventRateVO.getType())); + if (nonNull(eventCount) && !eventCount.equals(0)){ + //计算占比 + eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2)); + } + } + } + return R.ok(eventRateVOS); + }else{ + //事件类型占比 + List<EventRateVO> eventRateVOS = comEventMapper.mediateTypeRate(); + for (EventRateVO eventRateVO : eventRateVOS) { + if (nonNull(eventRateVO)){ + if (nonNull(eventCount) && !eventCount.equals(0)){ + //计算占比 + eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2)); + } + } + } + return R.ok(eventRateVOS); + } + } + public String typeToName(Integer type){ + switch (type){ + case 1: + return "行业分中心受理"; + case 2: + return "街道调解站受理"; + case 3: + return "社区调解站受理"; + case 4: + return "区三说会堂受理"; + } + return null; + } + + public String typeToNameExpert(Integer type){ + switch (type){ + case 1: + return "区三说会堂专家"; + case 2: + return "行业分中心专家"; + case 3: + return "街道调解站专家"; + case 4: + return "社区调解站专家"; + } + return null; + } + + /** + * 过去12个月的月份 + * */ + private List<Date> pastTwelveMoth(){ + List<Date> list=new ArrayList<>(); + Date now = new Date(); + for (int i = 0; i < 12; i++) { + //本月 + DateTime dateTime = DateUtil.beginOfMonth(now); + DateUtil.format(dateTime,"yyyy-MM-dd"); + list.add(dateTime); + //减一天进入下一个月 + now=DateUtil.offsetDay(dateTime,-1); + } + return list; + } + + /** + * 截取年,月 + * */ + private List<String> getYAndM(List<Date> dateList){ + List<String> list=new ArrayList<>(); + for (Date date : dateList) { + list.add(DateUtil.format(date,"yyyy-MM").toString()); + } + return list; + } + + private Boolean checkExist(String sn, Long id) { ComEvent comEvent = new ComEvent(); comEvent.setOrderSn(sn); -- Gitblit v1.7.1