From ffb18ccfe6750f4a65bce6e02e7f6edb54a5d76f Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期六, 24 九月 2022 23:45:38 +0800
Subject: [PATCH] [修改] 三说代码事件流程代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |  207 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 196 insertions(+), 11 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..24a63b3 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,14 +1,19 @@
 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.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.sanshuo.*;
+import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.CopyUtil;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.Snowflake;
@@ -27,6 +32,8 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+
+import static java.util.Objects.nonNull;
 
 /**
  * Description 三说会堂事件表业务层实现类
@@ -57,6 +64,15 @@
     @Resource
     private ComSanShuoIndustryCenterService comSanShuoIndustryCenterService;
 
+    @Resource
+    private ComEventMapper comEventMapper;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private CommediateTypeService commediateTypeService;
+
     @Override
     public R pageByComEvent(ComEvent comEvent, Page pagination) {
         IPage<ComEvent> list = baseMapper.pageByComEvent(comEvent, pagination);
@@ -67,6 +83,9 @@
             List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent1.getId()));
             List<ComEventRequestImageVO> comEventRequestImageVO = CopyUtil.deepCopyListObject(resourceList, ComEventRequestImageVO.class);
             comEvent1.setImages(comEventRequestImageVO);
+            comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl());
+            ComMediateType category = commediateTypeService.getById(comEvent1.getEventCategory());
+            comEvent1.setEventCategoryName(category.getName());
         });
         return R.ok(list);
     }
@@ -87,10 +106,14 @@
         if (comEvent.getRequestUserCommunity() != null) {
             ComActDO community = comActDAO.selectById(comEvent.getRequestUserCommunity());
             comEvent.setCurrentOrgName(community.getName());
+            comEvent.setCurrentOrgId(community.getCommunityId().toString());
+            comEvent.setCurrentProcessType(2);
         }
-        if (comEvent.getCenterId() != null) {
+        if (!StringUtils.isEmpty(comEvent.getCenterId())) {
             ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCenterId());
             comEvent.setCurrentOrgName(center.getName());
+            comEvent.setCurrentOrgId(center.getId().toString());
+            comEvent.setCurrentProcessType(1);
         }
         comEvent.setUserEventStatus(2);
         comEvent.setEventProcessStatus(SanShuoEventStatusEnum.UNDO.getCode());
@@ -107,12 +130,12 @@
         if (!flag) {
             return R.fail(ReturnMsgConstants.DATA_EXIST);
         }
-        saveEventImageList(comEvent.getImages(), comEvent.getId());
+        saveEventImageList(comEvent.getImages(), comEvent.getId(),null,1);
         return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public Boolean saveEventImageList(List<ComEventRequestImageVO> images, Long id) {
+    public Boolean saveEventImageList(List<ComEventRequestImageVO> images, Long id,Long transferId,Integer status) {
         List<ComEventResource> comEventResourceList = new ArrayList<>();
         if (!StringUtils.isEmpty(images)) {
             List<ComEventRequestImageVO> imagesList = images;
@@ -120,7 +143,8 @@
                 ComEventResource comEventResource = new ComEventResource();
                 comEventResource.setId(Snowflake.getId());
                 comEventResource.setRefId(id);
-                comEventResource.setStatus(1);
+                comEventResource.setTransferId(transferId);
+                comEventResource.setStatus(status);
                 comEventResource.setType(1);
                 comEventResource.setResourceName(comEventRequestImageVO.getName());
                 comEventResource.setResourceSize(comEventRequestImageVO.getSize());
@@ -135,9 +159,9 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R updateComEvent(ComEvent comEvent) {
-        if (checkExist(comEvent.getOrderSn(), null)) {
+/*        if (checkExist(comEvent.getOrderSn(), comEvent.getId())) {
             return R.fail(ReturnMsgConstants.DATA_EXIST);
-        }
+        }*/
         int flag = baseMapper.updateById(comEvent);
         return flag > 0 ? R.ok(comEvent, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
     }
@@ -156,12 +180,15 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R conciliationEvent(ComEventConciliationVO comEventConciliationVO) {
-        saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId());
+    public R conciliationEvent(ComEventConciliationVO comEventConciliationVO, LoginUserInfoVO loginUserInfo) {
+        saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId(),null,4);
         ComEvent comEvent = baseMapper.selectById(comEventConciliationVO.getId());
         comEvent.setEventSucceed(comEventConciliationVO.getEventSucceed());
         comEvent.setEventResult(comEventConciliationVO.getEventResult());
         comEvent.setReportSuperior(comEventConciliationVO.getReportSuperior());
+        if(comEventConciliationVO.getEventSucceed() ==2){
+            comEvent.setEventProcessStatus(6);
+        }
         comEvent.setCurrentEventProcessResult(comEventConciliationVO.getCurrentEventProcessResult());
         //如果当前请求,需要上报上级进行处理
         if (comEventConciliationVO.getReportSuperior()) {
@@ -182,6 +209,24 @@
             }
         }
         int flag = baseMapper.updateById(comEvent);
+        ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
+        comEventTransferRecord.setEventId(comEvent.getId());
+        comEventTransferRecord.setSave(true);
+        comEventTransferRecord.setProcessResult(comEvent.getCurrentEventProcessResult());
+        comEventTransferRecord.setProcessResultData(new Date().toString());
+        comEventTransferRecord.setProcessDate(new Date());
+        comEventTransferRecord.setProcessBy(loginUserInfo.getUserId());
+        comEventTransferRecord.setProcessByName(loginUserInfo.getName());
+        comEventTransferRecord.setProcessType(1);
+        comEventTransferRecord.setCreateAt(new Date());
+        comEventTransferRecord.setSpecialistId(comEvent.getSpecialistId());
+        comEventTransferRecord.setSpecialistOrg(comEvent.getCurrentOrgId());
+        comEventTransferRecord.setSpecialistLevel(comEvent.getSpecialistLevel());
+        comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
+        comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
+        comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
+        saveEventImageList(comEvent.getImages(),comEvent.getId(),comEventTransferRecord.getId(),4);
+        comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
         return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
     }
 
@@ -209,12 +254,18 @@
         ComEvent comEvent = baseMapper.selectById(id);
         ComSanshuoExpert specter = comSanShuoExpertService.getById(comEvent.getSpecialistId());
         CopyUtil.copyProperties(comEvent, comEventDetailVO);
-        List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id));
+        List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
+                .eq(ComEventResource::getStatus,1));
         List<ComEventRequestImageVO> comEventRequestImageVO = CopyUtil.deepCopyListObject(resourceList, ComEventRequestImageVO.class);
         comEventDetailVO.setImages(comEventRequestImageVO);
         map.put("specter", specter);
         map.put("eventDetail", comEventDetailVO);
         List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id));
+        transferRecord.forEach(comEventTransferRecord -> {
+            List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getTransferId, comEventTransferRecord.getId()));
+            List<ComEventRequestImageVO> ImageVO = CopyUtil.deepCopyListObject(list, ComEventRequestImageVO.class);
+            comEventTransferRecord.setImages(ImageVO);
+        });
         map.put("transferLog", transferRecord);
         List<ComEventResource> resource = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
                 .eq(ComEventResource::getStatus, 5));
@@ -253,6 +304,10 @@
     @Override
     public R calculate() {
         List<ComEventCalculateVO> calculateList = baseMapper.calculate();
+        ComEventCalculateVO comEventCalculateVO =new ComEventCalculateVO();
+        comEventCalculateVO.setStatus("0");
+        comEventCalculateVO.setSum(baseMapper.selectCount(new QueryWrapper<ComEvent>().lambda()).toString());
+        calculateList.add(comEventCalculateVO);
         return R.ok(calculateList);
     }
 
@@ -261,9 +316,9 @@
     public R archiveRequest(ComEventArchiveVO comEventArchiveVO, LoginUserInfoVO sysUser) {
         ComEvent comEvent = baseMapper.selectById(comEventArchiveVO.getId());
         if (comEvent.getEventSucceed() == 2) {
-            comEvent.setEventProcessStatus(6);
+            comEvent.setEventProcessStatus(7);
         } else {
-            comEvent.setEventProcessStatus(5);
+            comEvent.setEventProcessStatus(6);
         }
         comEvent.setResult(comEventArchiveVO.getResult());
         baseMapper.updateById(comEvent);
@@ -286,6 +341,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