From f2c0d536edeafa31bc6358ee7de827bbba330e7b Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期三, 12 十月 2022 19:08:26 +0800
Subject: [PATCH] 三说会堂事件流程处理
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java | 190 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 157 insertions(+), 33 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 d8a84d3..83c6730 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
@@ -2,7 +2,9 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.generator.SnowflakeGenerator;
import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,6 +20,7 @@
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.api.ComSanShuoEventTransferRecordController;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComEventMapper;
import com.panzhihua.service_community.dao.ComStreetDAO;
@@ -76,17 +79,51 @@
@Override
public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
+ log.info("=================当前登陆的用户信息,用户类型"+loginUserInfoVO.getType()+"社区id"+loginUserInfoVO.getCommunityId());
+ Boolean isExpertCheck=false;
+ Long expertId=null;
if (nonNull(comEvent.getUserType())){
if (comEvent.getUserType().equals(1)){
+ //个人账号权限
comEvent.setRequestUserId(loginUserInfoVO.getUserId());
- }else if (comEvent.getUserType().equals(2)){
- ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
+ }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(13)){
+ ComSanshuoExpert expert=new ComSanshuoExpert();
+ //专家账号权限(小程序和后台)
+ if (nonNull(loginUserInfoVO.getPhone())){
+ expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
+ }else{
+ //账号获取
+ expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
+ }
+ comEvent.setUserType(2);
if (nonNull(expert)){
comEvent.setSpecialistId(expert.getId());
+ isExpertCheck=true;
+ expertId=expert.getId();
}
+ }else if (loginUserInfoVO.getType().equals(12)){
+ //行业分中心权限
+ comEvent.setUserType(3);
+ //获取行业分中心id
+ ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
+ if (nonNull(center)){
+ comEvent.setCenterId(center.getId().toString());
+ }
+ }else if (loginUserInfoVO.getType().equals(3)){
+ //社区后台权限
+ comEvent.setUserType(4);
+ comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
}
}
- IPage<ComEvent> list = baseMapper.pageByComEvent(comEvent, pagination);
+ IPage<ComEvent> list=null;
+ log.info("=====================当前的userType"+comEvent.getUserType());
+ log.info("=====================是否专家账号查看"+isExpertCheck);
+ if (isExpertCheck){
+ list = comEventMapper.pageByComEventExpert(comEventMapper.listEventIds(expertId), comEvent, pagination);
+ }else{
+ list = baseMapper.pageByComEvent(comEvent, pagination);
+ }
+
if (list.getRecords().size() < 1) {
return R.ok(Collections.emptyList());
}
@@ -94,12 +131,17 @@
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);
-// if (nonNull(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl())){
-// comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl());
-// }
+ if (nonNull(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl())){
+ comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl());
+ }
ComMediateType category = commediateTypeService.getById(comEvent1.getEventCategory());
comEvent1.setEventCategoryName(category.getName());
- comEvent1.setExpertAvatar(comSanShuoExpertService.getById(comEvent1.getSpecialistId()).getAvatar());
+ //当前账号能否操作此条记录,根据事件流转记录是否有归档的记录决定当前用户能否对添加归档记录
+ ComEventTransferRecord archiveRecord = comEventTransferRecordService.getOne(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, comEvent1.getId()).eq(ComEventTransferRecord::getFromUserId, loginUserInfoVO.getUserId()).eq(ComEventTransferRecord::getEventStatus, 7));
+ comEvent1.setIsArchive(1);
+ if(nonNull(archiveRecord)){
+ comEvent1.setIsArchive(0);
+ }
});
return R.ok(list);
}
@@ -118,18 +160,22 @@
public R insertComEvent(ComEvent comEvent) {
ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId());
if (comEvent.getRequestUserCommunity() != null) {
+ //创建时处理级别都是专家
ComActDO community = comActDAO.selectById(comEvent.getRequestUserCommunity());
comEvent.setCurrentOrgName(community.getName());
comEvent.setCurrentOrgId(community.getCommunityId().toString());
- comEvent.setCurrentProcessType(2);
+ comEvent.setCurrentProcessType(5);
}
if (!StringUtils.isEmpty(comEvent.getCenterId())) {
+ //创建时处理级别都是专家
ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCenterId());
comEvent.setCurrentOrgName(center.getName());
comEvent.setCurrentOrgId(center.getId().toString());
- comEvent.setCurrentProcessType(1);
+ comEvent.setCurrentProcessType(5);
}
comEvent.setUserEventStatus(2);
+ //设置为未上报
+ comEvent.setReportLevel(0);
comEvent.setEventProcessStatus(SanShuoEventStatusEnum.UNDO.getCode());
comEvent.setSpecialistName(expert.getName());
comEvent.setOrderSn(DateUtils.getDateFormatString(new Date(), "yyyyMMddHHmmss") + RandomUtils.nextLong(1, 10000));
@@ -141,9 +187,12 @@
comEvent.setUpdateBy(comEvent.getRequestUserId());
comEvent.setUpdateAt(new Date());
boolean flag = save(comEvent);
+ //添加一条对应记录
+ comEventMapper.insertEventAndExpertRecord(comEvent.getId(),expert.getId(),0);
if (!flag) {
return R.fail(ReturnMsgConstants.DATA_EXIST);
}
+ //提交不视为一次流转记录,不保存图片
saveEventImageList(comEvent.getImages(), comEvent.getId(),null,1);
return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
}
@@ -198,35 +247,81 @@
@Override
@Transactional(rollbackFor = Exception.class)
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());
+ ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
if(comEventConciliationVO.getEventSucceed().equals(2)){
comEvent.setEventProcessStatus(6);
}
comEvent.setCurrentEventProcessResult(comEventConciliationVO.getCurrentEventProcessResult());
//如果当前请求,需要上报上级进行处理
if (comEventConciliationVO.getReportSuperior()) {
- if (comEvent.getCurrentProcessType() == 2) {
- //查询街道的账号
- comEvent.setCurrentProcessType(3);
- ComActDO comActDO = comActDAO.selectById(comEvent.getCurrentOrgId());
- comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
- } else {
- //查询街道的上级区域账号
- comEvent.setCurrentProcessType(4);
- try {
- ComStreetDO street = comStreetDAO.selectById(comEvent.getCurrentOrgId());
- comEvent.setCurrentOrgId(street.getAreaCode().toString());
- } catch (Exception e) {
- e.printStackTrace();
+ //判断当前的处理级别
+ if (comEvent.getCurrentProcessType() == 5) {
+ //获取专家账号级别决定上报的级别
+ ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId());
+ if (expert.getLevel().equals(4)){
+ //上报到社区
+ //查询社区账号,由专家转交到社区
+ comEvent.setCurrentProcessType(2);
+ ComActDO comActDO = comActDAO.selectById(expert.getCommunityId());
+ comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("专家上报到社区");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(Long.parseLong(comEvent.getCurrentOrgId()));
+ comEventTransferRecord.setReportLevel(4);
+ comEvent.setReportLevel(4);
+ }else if (expert.getLevel().equals(2)){
+ //上报到行业分中心
+ comEvent.setCurrentProcessType(1);
+ comEvent.setCurrentOrgId(expert.getIndustryCenterId().toString());
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("专家上报到行业分中心");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(expert.getIndustryCenterId());
+ comEventTransferRecord.setReportLevel(3);
+ comEvent.setReportLevel(3);
}
+ }else if (comEvent.getCurrentProcessType() == 1){
+ //行业分中心上报到区三说会堂
+ comEvent.setCurrentProcessType(4);
+ comEvent.setCurrentOrgId("99999");
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("行业分中心上报到区三说会堂");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(99999L);
+ comEventTransferRecord.setReportLevel(5);
+ comEvent.setReportLevel(5);
+ }else if(comEvent.getCurrentProcessType() == 2){
+ //社区上报到街道
+ comEvent.setCurrentProcessType(3);
+ //获取街道id
+ ComActDO comActDO = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getCommunityId, comEvent.getRequestUserCommunity()).eq(ComActDO::getAppId, "wx0cef797390444b75"));
+ comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("社区报到街道");
+ comEventTransferRecord.setFromId(comEvent.getRequestUserCommunity());
+ comEventTransferRecord.setToId(comActDO.getStreetId());
+ comEventTransferRecord.setReportLevel(2);
+ comEvent.setReportLevel(2);
+ }else if(comEvent.getCurrentProcessType() == 3){
+ //街道上报到区三说会堂
+ comEvent.setCurrentProcessType(4);
+ comEvent.setCurrentOrgId("99999");
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("街道上报到区三说会堂");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(99999L);
+ comEventTransferRecord.setReportLevel(1);
+ comEvent.setReportLevel(1);
+ }else {
+ //已是最高上报级别,无法上报
}
}
int flag = baseMapper.updateById(comEvent);
- ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
comEventTransferRecord.setEventId(comEvent.getId());
comEventTransferRecord.setSave(true);
comEventTransferRecord.setProcessResult(comEvent.getCurrentEventProcessResult());
@@ -242,11 +337,21 @@
comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
- saveEventImageList(comEvent.getImages(),comEvent.getId(),comEventTransferRecord.getId(),4);
+ //雪花id失效,使用eventId随机生成
+ comEventTransferRecord.setId(Snowflake.getId());
+ //saveEventImageList(comEvent.getImages(),comEvent.getId(),comEventTransferRecord.getId(),4);
+ saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId(),comEventTransferRecord.getId(),4);
comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
}
+ /**
+ * 创建上报记录
+ * */
+ public void createTransferLog(ComEventTransferRecord record) {
+ record.setId(Snowflake.getId());
+ comEventTransferRecordService.insertComEventTransferRecord(record);
+ }
@Override
@Transactional(rollbackFor = Exception.class)
@@ -280,12 +385,23 @@
comEventDetailVO.setImages(comEventRequestImageVO);
map.put("specter", specter);
map.put("eventDetail", comEventDetailVO);
- List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id));
+ List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id).orderByAsc(ComEventTransferRecord::getCreateAt));
transferRecord.forEach(comEventTransferRecord -> {
- List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent.getId()));
+ List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent.getId()).notIn(ComEventResource::getStatus,(1)).eq(ComEventResource::getTransferId, comEventTransferRecord.getId()));
List<ComEventRequestImageVO> ImageVO = CopyUtil.deepCopyListObject(list, ComEventRequestImageVO.class);
comEventTransferRecord.setImages(ImageVO);
+ if (comEventTransferRecord.getEventStatus().equals(7)){
+ map.put("archiveLog", comEventTransferRecord);
+ }
});
+ //迭代器迭代删除归档记录
+ Iterator<ComEventTransferRecord> iterator = transferRecord.iterator();
+ while (iterator.hasNext()){
+ ComEventTransferRecord comEventTransferRecord = iterator.next();
+ if (comEventTransferRecord.getEventStatus().equals(7)){
+ iterator.remove();
+ }
+ }
map.put("transferLog", transferRecord);
List<ComEventResource> resource = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
.eq(ComEventResource::getStatus, 5));
@@ -318,6 +434,8 @@
comEvent.setSpecialistName(specter.getName());
comEvent.setEventProcessStatus(SanShuoEventStatusEnum.ACCEPT.getCode());
int flag = baseMapper.updateById(comEvent);
+ //添加一条对应记录
+ comEventMapper.insertEventAndExpertRecord(id, specialistId,1);
return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
}
@@ -336,11 +454,12 @@
@Transactional(rollbackFor = Exception.class)
public R archiveRequest(ComEventArchiveVO comEventArchiveVO, LoginUserInfoVO sysUser) {
ComEvent comEvent = baseMapper.selectById(comEventArchiveVO.getId());
- if (comEvent.getEventSucceed() == 2) {
- comEvent.setEventProcessStatus(7);
- } else {
- comEvent.setEventProcessStatus(6);
- }
+ //不再设置已归档状态
+// if (comEvent.getEventSucceed() == 2) {
+// comEvent.setEventProcessStatus(7);
+// } else {
+// comEvent.setEventProcessStatus(6);
+// }
comEvent.setResult(comEventArchiveVO.getResult());
baseMapper.updateById(comEvent);
ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
@@ -358,10 +477,15 @@
comEventTransferRecord.setSpecialistLevel(comEvent.getSpecialistLevel());
comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
- comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
+ comEventTransferRecord.setFromUserId(sysUser.getUserId());
+ //归档操作统一设置为7
+ comEventTransferRecord.setEventStatus(7);
+ comEventTransferRecord.setId(Snowflake.getId());
+ saveEventImageList(comEventArchiveVO.getImages(), comEvent.getId(), comEventTransferRecord.getId(), 5);
return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
}
+
/**
* 大屏事件统计
* @param indexDataDTO 查询入参
--
Gitblit v1.7.1