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