From 16f0ae2b40ab76f122eb248247fd1f204c09a708 Mon Sep 17 00:00:00 2001
From: yanghui <2536613402@qq.com>
Date: 星期四, 01 十二月 2022 09:46:15 +0800
Subject: [PATCH] Merge branch 'local_20221104' into huacheng_test
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java | 871 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 818 insertions(+), 53 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 4034285..c4b7e01 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,38 +1,50 @@
package com.panzhihua.service_community.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.generator.SnowflakeGenerator;
+import cn.hutool.core.util.ArrayUtil;
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;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
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.SanShuoMessageVO;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
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;
import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_community.dao.ComActDAO;
-import com.panzhihua.service_community.dao.ComEventMapper;
-import com.panzhihua.service_community.dao.ComStreetDAO;
+import com.panzhihua.service_community.api.ComSanShuoEventTransferRecordController;
+import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.entity.*;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComStreetDO;
import com.panzhihua.service_community.service.*;
+import com.panzhihua.service_community.util.WXMessageUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
+import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
/**
@@ -73,9 +85,72 @@
@Resource
private CommediateTypeService commediateTypeService;
+ @Resource
+ private ComSanshuoExpertDao comSanshuoExpertDao;
+
+ @Resource
+ private SysUserDao sysUserDao;
+
+
@Override
- public R pageByComEvent(ComEvent comEvent, Page pagination) {
- IPage<ComEvent> list = baseMapper.pageByComEvent(comEvent, pagination);
+ public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
+ Boolean isExpertCheck=false;
+ Long expertId=null;
+ Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
+// comEvent.setAppId(loginUserInfoVO.getAppId());
+ if (nonNull(comEvent.getUserType())){
+ if (comEvent.getUserType().equals(1)){
+ //个人账号权限
+ comEvent.setRequestUserId(loginUserInfoVO.getUserId());
+ }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
+ 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());
+ }else if (isStretAccount){
+ //街道权限,查看街道范围下的所有社区事件
+ //获取街道下属社区id
+ List<Long> cids = comActDAO.selectCommunityByStreetId(loginUserInfoVO.getStreetId());
+ comEvent.setUserType(5);
+ comEvent.setCommunityIds(cids);
+ }
+ }
+ if (nonNull(loginUserInfoVO.getAccount())){
+ if (loginUserInfoVO.getAccount().equals("admin")){
+ comEvent.setUserType(9);
+ }
+ }
+ IPage<ComEvent> list=null;
+ //是否为专家查看自己发布的事件
+ if (isExpertCheck && comEvent.getUserType()!=1){
+ if (nonNull(comEventMapper.listEventIds(expertId))){
+ list = comEventMapper.pageByComEventExpert(comEventMapper.listEventIds(expertId), comEvent, pagination);
+ }
+ }else{
+ list = baseMapper.pageByComEvent(comEvent, pagination);
+ }
if (list.getRecords().size() < 1) {
return R.ok(Collections.emptyList());
}
@@ -83,18 +158,457 @@
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.setHasPerm(hasPermission(comEvent1,loginUserInfoVO ));
+ this.accountMenu(comEvent1,comEvent.getUserType(),loginUserInfoVO,isStretAccount);
+ });
return R.ok(list);
}
+ /**
+ * 当前账号对事件的操作权限
+ * 1有权限 0无权限
+ * 1、用户提交调解申请后,调解专家状态为待受理,可操作受理、查看,专家所在部门状态为待受理,可操作受理(帮专家进行受理处理)、查看、删除,
+ * 所在部门上级部门状态为待受理,仅可查看、删除;ok
+ * 2、专家拒绝受理后,专家看不到该调解申请,所在单位状态变为待分配,可操作分配、调解、查看、删除,所在单位的上级单位状态变为待分配,仅可查看、删除; ok
+ * 3、专家受理后,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作调解、查看、删除,专家做在单位的上级单位状态变为调解中,仅可查看、删除;
+ * 4、专家调解调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+ * 可查看、删除;
+ * 5、专家所在部门调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+ * 可查看、删除;
+ * 6、专家调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为待分配,可操作分配专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+ * 7、专家所在部门调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看、删除,专家所在部门的上级单位状态变为待分配,可分配专家、查看、删除,
+ * 上上级单位状态变为调解中,可查看、删除;
+ * 8、专家调解/专家所在部门调解未完成,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作更换专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+ * 9、专家所在部门分配给专家后,专家状态变为待受理,可操作受理、查看,专家所在部门状态变为待受理,可操作受理(帮专家进行受理处理)、查看、删除,专家所在部门的上级部门状态变为待受理,
+ * 仅可查看、删除;
+ * 10、专家所在部门更换专家,原专家状态已完成,专家所在部门状态不变,专家所在部门的上级单位状态不变;
+ * */
+ public void accountMenu(ComEvent comEvent,Integer userType,LoginUserInfoVO loginUserInfoVO,Boolean isStreet){
+ //四个账号级别
+ Boolean isAdmin=false;
+ if (userType.equals(9)){
+ isAdmin=true;
+ }
+ comEvent.setDelete(1);
+ comEvent.setArchive(1);
+ comEvent.setSolve(1);
+ comEvent.setConciliation(1);
+ comEvent.setDistribution(1);
+ comEvent.setChangeExpert(1);
+ if (userType.equals(2)){
+ //专家后台权限,根据事件的流转信息决定专家对此事件的操作权限
+ //细分到事件的每个状态和流转情况
+ ComSanshuoExpert expert=new ComSanshuoExpert();
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setDelete(0);
+ 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()));
+ }
+ if (!comEvent.getCurrentProcessType().equals(5)){
+ if (comEvent.getSpecialistId().equals(expert.getId()) && comEvent.getEventProcessStatus().equals(3)){
+ //更高级别分配给该专家,可以受理
+ comEvent.setConciliation(0);
+ comEvent.setArchive(0);
+ //comEvent.setSolve(0);
+ return;
+ }
+ //已经上报或者重新分配专家,只能查看
+ comEvent.setConciliation(0);
+ //comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ return;
+ }//未上报,根据状态决定权限
+ if (comEvent.getEventProcessStatus().equals(1)){
+ //待受理和待验证状态,仅有查看和受理权限,可能为用户选择该专家或上级单位分配给该专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ }else if (comEvent.getEventProcessStatus().equals(3)){
+ //重新分配给该专家的事件,可以进行受理
+ // comEvent.setSolve(0);
+ comEvent.setConciliation(0);
+ comEvent.setArchive(0);
+ } else if (comEvent.getEventProcessStatus().equals(6)){
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (userType.equals(4)){
+ //社区后台权限
+ //如果未上报到街道,当前事件权限和专家一样
+ if (comEvent.getCurrentProcessType().equals(5)){
+ //根据事件状态决定权限
+ if (comEvent.getEventProcessStatus().equals(1) ){
+ //待受理和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setDistribution(0);
+ } else if(comEvent.getEventProcessStatus().equals(2)){
+ //待分配和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ if (comEvent.getSpecialistName().equals("待分配")){
+ comEvent.setSolve(0);
+ }
+ }
+ else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setDistribution(0);
+ comEvent.setSolve(0);
+ comEvent.setArchive(0);
+ } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (comEvent.getCurrentProcessType().equals(2)){
+ //上报到社区后,增加分配专家权限
+ if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+ //待受理和待验证状态,可以受理,更换专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setDistribution(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(3)){
+ //分配新专家后
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(1);
+ }else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setSolve(0);
+ comEvent.setArchive(0);
+ comEvent.setDistribution(0);
+ } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+ //上报并且调解失败,此时事件的状态为6,事件结果为调解失败
+ //comEvent.setDistribution(0);
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(2);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ //comEvent.setConciliation(0);
+ comEvent.setArchive(0);
+ }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(2) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ //关闭所有权限
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ comEvent.setConciliation(0);
+ //comEvent.setArchive(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ //关闭所有权限
+ comEvent.setDistribution(0);
+ comEvent.setSolve(0);
+ //comEvent.setArchive(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+
+ }
+ else{
+ //已上报到街道或三说会堂,社区没有分配和受理权限权限
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ //comEvent.setDelete(0);
+ comEvent.setSolve(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (userType.equals(3)){
+ //分配行业分中心操作权限
+ //是否上报到行业分中心
+ if (comEvent.getCurrentProcessType().equals(1)){
+ //已经报到行业分中心
+ if (comEvent.getEventProcessStatus().equals(1) ){
+ //待受理和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ }else if(comEvent.getEventProcessStatus().equals(2)){
+ //待分配和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ if (comEvent.getSpecialistName().equals("待分配")){
+ comEvent.setSolve(0);
+ }
+ }
+ else if (comEvent.getEventProcessStatus().equals(3)){
+ //分配新专家后
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(1);
+ }else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+ //调解完成,可以归档,查看
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(2);
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ //comEvent.setChangeExpert(0);
+ //comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (comEvent.getCurrentProcessType().equals(5)){
+ //根据事件状态决定权限
+ if (comEvent.getEventProcessStatus().equals(1) ){
+ //待受理和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ } else if(comEvent.getEventProcessStatus().equals(2)){
+ //待分配和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ //comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ if (comEvent.getSpecialistName().equals("待分配")){
+ comEvent.setSolve(0);
+ }
+ }
+ else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setDistribution(0);
+ comEvent.setSolve(0);
+ comEvent.setArchive(0);
+ }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(2) && comEvent.getEventSucceed().equals(2)){
+ //调解完成并且成功,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }
+ else{
+ //未上上报到行业分中心,或者已上报到区三说会堂,仅查看
+ //comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+
+ }
+ }else if (userType.equals(5) || isStreet){
+ //街道权限,操作街道下属社区的所有事件
+ //是否上报到街道
+ if (comEvent.getCurrentProcessType().equals(3)){
+ //已上报到街道
+ if (comEvent.getEventProcessStatus().equals(1) ){
+ //待受理和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ //comEvent.setDistribution(0);
+ comEvent.setSolve(0);
+ } else if(comEvent.getEventProcessStatus().equals(2)){
+ //待分配和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ if (comEvent.getSpecialistName().equals("待分配")){
+ comEvent.setSolve(0);
+ }
+ }else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ }else if (comEvent.getEventProcessStatus().equals(3)){
+ //分配新专家后
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(1);
+ }
+ else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+ //设置为待受理
+ comEvent.setEventResult(null);
+ comEvent.setEventProcessStatus(2);
+ //上报到单位,并且调解失败,
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ //comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ //comEvent.setConciliation(0);
+ comEvent.setArchive(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (comEvent.getCurrentProcessType().equals(4)){
+ //未上报到街道,仅查看
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+
+ }else {
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }else if (isAdmin){
+ //区三说会堂账号,最高权限全部开放
+ // 是否上报到三说会堂
+ if (comEvent.getCurrentProcessType().equals(4) || comEvent.getReportHall().equals(1)){
+ //已上报到三说会堂,可以操作
+ if (comEvent.getEventProcessStatus().equals(1)){
+ //待受理和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ }
+ else if(comEvent.getEventProcessStatus().equals(2)){
+ //待分配和待验证状态,可以受理,分配专家
+ //关闭调解和归档
+ comEvent.setArchive(0);
+ comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ if (comEvent.getSpecialistName().equals("待分配")){
+ comEvent.setSolve(0);
+ }
+ }else if (comEvent.getEventProcessStatus().equals(3)){
+ //新分配给专家并且专家还未受理
+ comEvent.setDistribution(0);
+ comEvent.setArchive(0);
+ //comEvent.setConciliation(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setSolve(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(5)){
+ //调解中,可以查看,调解,更换专家,删除
+ comEvent.setDistribution(0);
+ comEvent.setSolve(0);
+ comEvent.setArchive(0);
+ } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+ //失败后转交三说会堂
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ //comEvent.setConciliation(0);
+ comEvent.setEventProcessStatus(2);
+ comEvent.setArchive(0);
+ //comEvent.setChangeExpert(0);
+ }
+ else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+ //调解完成,可以归档,查看
+ comEvent.setConciliation(0);
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ }
+ }else{
+ //未上报到三说会堂,仅查看
+ comEvent.setArchive(0);
+ comEvent.setSolve(0);
+ comEvent.setDistribution(0);
+ comEvent.setChangeExpert(0);
+ comEvent.setConciliation(0);
+ }
+ }
+ }
+
+ /**
+ * 当前账号是否有操作事件权限
+ * */
+ public Integer hasPermission(ComEvent comEvent,LoginUserInfoVO sysUser){
+ String account="";
+ Integer perm=1;
+ if (nonNull(sysUser.getAccount())){
+ account=sysUser.getAccount();
+ }
+ //上报级别是否匹配当前账号级别
+ if (sysUser.getType().equals(12) ){
+ if (!comEvent.getCurrentProcessType().equals(1)){
+ perm=0;
+ }
+ }else if (account.equals("admin")){
+ if (!comEvent.getCurrentProcessType().equals(4)){
+ perm=0;
+ }
+ }else if (isStreetAccount(sysUser)){
+ if (!comEvent.getCurrentProcessType().equals(3)){
+ perm=0;
+ }
+ }
+ return perm;
+ }
+ /**
+ * 是否为综治后台街道账号
+ * */
+ public Boolean isStreetAccount(LoginUserInfoVO sysUser){
+ Boolean flag=false;
+ String[] account={"glpz","qxpjd","tjdjd","dbdjd","yqjd","bcg","hmkjd","dhjd","jsgyy","dzhljd"};
+ if (nonNull(sysUser.getAccount())){
+ if (ArrayUtil.contains(account,sysUser.getAccount() )){
+ flag=true;
+ }
+ }
+ return flag;
+ }
+
@Override
- public List<ComEvent> listByComEvent(ComEvent comEvent) {
- List<ComEvent> list = baseMapper.listByComEvent(comEvent);
+ public List<ComEvent> listByComEvent(ComEvent comEvent,LoginUserInfoVO loginUserInfoVO) {
+ List<ComEvent> list = baseMapper.listByComEvent(comEvent,null);
if (list.size() < 1) {
return Collections.emptyList();
}
@@ -106,18 +620,25 @@
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())) {
+ 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);
+ }
+ if (StringUtils.isNotEmpty(comEvent.getCenterId())){
+ comEvent.setRequestUserCommunity(null);
}
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));
@@ -129,11 +650,39 @@
comEvent.setUpdateBy(comEvent.getRequestUserId());
comEvent.setUpdateAt(new Date());
boolean flag = save(comEvent);
+ //推送消息到专家微信
+ sendMessage(comEvent.getSpecialistId(),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);
+ }
+
+ public void sendMessage(Long expertId,ComEvent comEvent){
+ if (nonNull(comEvent.getRequestUserCommunity()) && comEvent.getRequestUserCommunity().equals(10172)){
+ return;
+ }
+ //获取专家的openId
+ ComSanshuoExpert expert = comSanShuoExpertService.getById(expertId);
+ SysUser sysUser = sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhone, expert.getPhone()).eq(SysUser::getType, 1).eq(SysUser::getAppId,"wx0cef797390444b75" ));
+ SanShuoMessageVO vo=new SanShuoMessageVO();
+ if (isNull(sysUser)){
+ return;
+ }
+ if (isNull(sysUser.getOpenid())){
+ log.info("专家未登陆APP,无法推送");
+ return;
+ }
+ vo.setTouser(sysUser.getOpenid());
+ vo.setThing1(commediateTypeService.getById(comEvent.getEventCategory()).getName());
+ vo.setThing5("您有一个新的调解事件需处理");
+ vo.setThing2(comEvent.getRequestUserName());
+ vo.setTime3(DateUtil.now());
+ WXMessageUtil.sendStatusMessage(vo);
}
@Transactional(rollbackFor = Exception.class)
@@ -164,6 +713,9 @@
/* if (checkExist(comEvent.getOrderSn(), comEvent.getId())) {
return R.fail(ReturnMsgConstants.DATA_EXIST);
}*/
+ //清除专家信息
+ comEvent.setSpecialistId(null);
+ comEvent.setSpecialistName(null);
int flag = baseMapper.updateById(comEvent);
return flag > 0 ? R.ok(comEvent, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
}
@@ -183,35 +735,101 @@
@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());
- if(comEventConciliationVO.getEventSucceed() ==2){
+ 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);
+ comEvent.setSpecialistName("待分配");
+ comEvent.setSpecialistId(99999L);
+ comEvent.setReportCommunity(1);
+ ComActDO comActDO = comActDAO.selectById(expert.getCommunityId());
+ comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("(专家上报到"+comActDO.getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+ //更改当前处理部门
+ comEvent.setCurrentOrgName(comActDO.getName()+"调解站");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(Long.parseLong(comEvent.getCurrentOrgId()));
+ comEventTransferRecord.setReportLevel(4);
+ comEvent.setReportLevel(4);
+ }else if (expert.getLevel().equals(2)){
+ //上报到行业分中心
+ comEvent.setReportCenter(1);
+ comEvent.setCurrentProcessType(1);
+ comEvent.setCurrentOrgId(expert.getIndustryCenterId().toString());
+ comEvent.setSpecialistName("待分配");
+ comEvent.setSpecialistId(99999L);
+ //生成一次流转记录
+ ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCurrentOrgId());
+ comEvent.setCurrentEventProcessResult("(专家上报到"+center.getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+ comEvent.setCurrentOrgName(expert.getUnit());
+ 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.setReportHall(1);
+ comEvent.setCurrentEventProcessResult("(行业分中心上报到区三说会堂中心)"+comEventConciliationVO.getCurrentEventProcessResult());
+ comEvent.setCurrentOrgName("区三说会堂");
+ comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+ comEventTransferRecord.setToId(99999L);
+ comEventTransferRecord.setReportLevel(5);
+ comEvent.setReportLevel(5);
+ }else if(comEvent.getCurrentProcessType() == 2){
+ //社区上报到街道
+ comEvent.setCurrentProcessType(3);
+ //获取街道id
+ comEvent.setReportStreet(1);
+ ComActDO comActDO = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getCommunityId, comEvent.getRequestUserCommunity()).eq(ComActDO::getAppId, "wx0cef797390444b75"));
+ comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("(社区上报到"+comStreetDAO.selectById(comActDO.getStreetId()).getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+ comEvent.setCurrentOrgName(comStreetDAO.selectById(comActDO.getStreetId()).getName()+"调解站");
+ comEventTransferRecord.setFromId(comEvent.getRequestUserCommunity());
+ comEventTransferRecord.setToId(comActDO.getStreetId());
+ comEventTransferRecord.setReportLevel(2);
+ comEvent.setReportLevel(2);
+ }else if(comEvent.getCurrentProcessType() == 3){
+ //街道上报到区三说会堂
+ comEvent.setCurrentProcessType(4);
+ comEvent.setReportHall(1);
+ comEvent.setCurrentOrgId("99999");
+ comEvent.setCurrentOrgName("区三说会堂");
+ //生成一次流转记录
+ comEvent.setCurrentEventProcessResult("(街道上报到区三说会堂中心)"+comEventConciliationVO.getCurrentEventProcessResult());
+ comEventTransferRecord.setFromId(Long.parseLong(comEvent.getCurrentOrgId()));
+ comEventTransferRecord.setReportLevel(1);
+ comEvent.setReportLevel(1);
+ }else {
+ //已是最高上报级别,无法上报
}
}
+
+ //是否为已完成并且不上报
+ if (!comEventConciliationVO.getReportSuperior() && comEventConciliationVO.getEventSucceed().equals(2)){
+ comEvent.setIsEnd(1);
+ }
int flag = baseMapper.updateById(comEvent);
- ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
comEventTransferRecord.setEventId(comEvent.getId());
comEventTransferRecord.setSave(true);
comEventTransferRecord.setProcessResult(comEvent.getCurrentEventProcessResult());
@@ -227,9 +845,20 @@
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
@@ -240,8 +869,9 @@
|| comEvent.getEventProcessStatus() == SanShuoEventStatusEnum.VALID.getCode().intValue()) {
comEvent.setId(id);
comEvent.setUserEventStatus(4);
- comEvent.setEventProcessStatus(SanShuoEventStatusEnum.CANCEL.getCode());
+ comEvent.setEventProcessStatus(9);
comEvent.setRevokeDes("用户手动取消");
+ comEvent.setRevokeDate(new Date());
int flag = baseMapper.updateById(comEvent);
return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
} else {
@@ -256,24 +886,53 @@
ComEvent comEvent = baseMapper.selectById(id);
ComSanshuoExpert specter = comSanShuoExpertService.getById(comEvent.getSpecialistId());
CopyUtil.copyProperties(comEvent, comEventDetailVO);
+ comEventDetailVO.setCategoryName(commediateTypeService.getById(comEventDetailVO.getEventCategory()).getName());
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));
+ List<ComEventTransferRecord> archiveLog=new ArrayList<>();
+ List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id).orderByDesc(ComEventTransferRecord::getCreateAt));
transferRecord.forEach(comEventTransferRecord -> {
- List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getTransferId, comEventTransferRecord.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)){
+ archiveLog.add(comEventTransferRecord);
+ }
});
+ map.put("archiveLog", archiveLog);
+ //迭代器迭代删除归档记录
+ 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));
map.put("archiveImage", resource);
+ map.put("contact", getPhone(comEvent));
return map;
}
+
+ public String getPhone(ComEvent comEvent){
+ if (isNull(comEvent.getRequestUserCommunity())){
+ return comSanShuoIndustryCenterService.getById(comEvent.getCenterId()).getPhone();
+ }else {
+ String contactsPhone = comActDAO.selectById(comEvent.getRequestUserCommunity()).getContactsPhone();
+ if (isNull(contactsPhone)){
+ return null;
+ }
+ return contactsPhone;
+ }
+ }
+
+
@Override
@Transactional(rollbackFor = Exception.class)
@@ -298,17 +957,83 @@
ComSanshuoExpert specter = comSanShuoExpertService.getById(specialistId);
comEvent.setSpecialistAcceptTime(new Date());
comEvent.setSpecialistName(specter.getName());
- comEvent.setEventProcessStatus(SanShuoEventStatusEnum.ACCEPT.getCode());
+ comEvent.setEventProcessStatus(SanShuoEventStatusEnum.VALID.getCode());
int flag = baseMapper.updateById(comEvent);
+ ComEvent comEvent1 = comEventMapper.selectById(id);
+ sendMessage(specialistId,comEvent1 );
+ //添加一条对应记录
+ comEventMapper.insertEventAndExpertRecord(id, specialistId,1);
return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
}
@Override
- public R calculate() {
- List<ComEventCalculateVO> calculateList = baseMapper.calculate();
+ public R calculate(LoginUserInfoVO loginUserInfoVO,Integer level,Long id) {
+ ComEvent comEvent=new ComEvent();
+ Boolean isExpertCheck=false;
+ Long expertId=null;
+ Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
+ if (loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
+ 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());
+ }else if (isStretAccount){
+ //街道权限,查看街道范围下的所有社区事件
+ //获取街道下属社区id
+ List<Long> cids = comActDAO.selectCommunityByStreetId(loginUserInfoVO.getStreetId());
+ comEvent.setUserType(5);
+ comEvent.setCommunityIds(cids);
+ }
+ if (isExpertCheck){
+ if(nonNull(comEventMapper.listEventIds(expertId))){
+ List<Long> eventIds = comEventMapper.listEventIds(expertId);
+ //获取该专家的所有事件
+ comEvent.setEventIds(eventIds);
+ }
+ }
+ if (nonNull(loginUserInfoVO.getAccount())){
+ if (loginUserInfoVO.getAccount().equals("admin")){
+ comEvent.setUserType(9);
+ }
+ }
+ log.info("当前userType===="+comEvent.getUserType());
+ //comEvent.setAppId(loginUserInfoVO.getAppId());
+ R<LoginUserInfoVO> r = userService.detailUser(loginUserInfoVO.getUserId());
+ LoginUserInfoVO user = r.getData();
+ if (nonNull(user.getAppId())){
+ comEvent.setAppId(user.getAppId());
+ }
+ if (nonNull(level) && nonNull(id)){
+ comEvent.setLevel(level);
+ comEvent.setSearchId(id);
+ comEvent.setUserType(null);
+ }
+ List<ComEventCalculateVO> calculateList = baseMapper.calculate(comEvent);
ComEventCalculateVO comEventCalculateVO =new ComEventCalculateVO();
comEventCalculateVO.setStatus("0");
- comEventCalculateVO.setSum(baseMapper.selectCount(new QueryWrapper<ComEvent>().lambda().notIn(ComEvent::getEventProcessStatus,(9))).toString());
+ comEventCalculateVO.setSum(baseMapper.caculateSum(comEvent)+"");
calculateList.add(comEventCalculateVO);
return R.ok(calculateList);
}
@@ -318,11 +1043,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();
@@ -340,9 +1066,14 @@
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);
}
+
/**
* 大屏事件统计
@@ -355,9 +1086,16 @@
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));
+ try {
+ vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2));
+ }catch (NullPointerException e){
+ vo.setSuccessRate(new BigDecimal(0));
+ }
+
}
}
+ vo.setExpert(comSanshuoExpertDao.selectExpertCount(indexDataDTO));
+ //查询当前级别下的专家
//折线图X轴
List<Date> dates = pastTwelveMoth();
vo.setX(getYAndM(dates));
@@ -376,13 +1114,23 @@
@Override
public R eventIndexData(Integer type) {
//获取事件总数
- Integer eventCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().notIn("event_process_status", (7), (8)));
+ Integer eventCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().notIn("event_process_status",(9)));
if (type.equals(1)){
//受理级别占比
List<EventRateVO> eventRateVOS = comEventMapper.eventRate();
+ //获取专家受理的数量
+ Integer expertCount=comEventMapper.expertSolveCountCommunity();
+ //获取行业分中心受理数量
+ Integer centerCount=comEventMapper.expertSolveCountCenter();
for (EventRateVO eventRateVO : eventRateVOS) {
if (nonNull(eventRateVO)){
eventRateVO.setName(typeToName(eventRateVO.getType()));
+// if (eventRateVO.getCurrentProcessType().equals(2)){
+// eventRateVO.setCount(eventRateVO.getCount()+expertCount);
+// }
+// if (eventRateVO.getCurrentProcessType().equals(1)){
+// eventRateVO.setCount(eventRateVO.getCount()+centerCount);
+// }
if (nonNull(eventCount) && !eventCount.equals(0)){
//计算占比
eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
@@ -417,16 +1165,33 @@
return R.ok(eventRateVOS);
}
}
+
+ @Override
+ public void updateEventStransferRecord(Long id) {
+ ComEvent comEvent = comEventMapper.selectById(id);
+ comEventMapper.updateLog(id,comEvent.getSpecialistId());
+ }
+
+ @Override
+ public R listStreetScreen() {
+ return R.ok(comStreetDAO.selectList(new QueryWrapper<ComStreetDO>().eq("app_id", "wx0cef797390444b75").in("name",("大宝鼎街道"),("格里坪镇"),("河门口街道"),("清香坪街道"),("陶家渡街道"),("玉泉街道"))));
+ }
+
+ @Override
+ public R listCommunityScreen() {
+ return R.ok(comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAppId, "wx0cef797390444b75").in(ComActDO::getStreetId,("1552661139563876352"),("1552661132500668416"),("1552661143879815168"),("1552661138704044032"),("1552661135428292608"),("1552661136451702784"))));
+ }
+
public String typeToName(Integer type){
switch (type){
case 1:
return "行业分中心受理";
- case 2:
- return "街道调解站受理";
case 3:
- return "社区调解站受理";
+ return "镇/街道受理案件";
+ case 2:
+ return "村/社区受理案件";
case 4:
- return "区三说会堂受理";
+ return "区三说会堂中心受理";
}
return null;
}
@@ -434,13 +1199,13 @@
public String typeToNameExpert(Integer type){
switch (type){
case 1:
- return "区三说会堂专家";
+ return "区三说会堂中心专家";
case 2:
return "行业分中心专家";
case 3:
- return "街道调解站专家";
+ return "镇/街道调解专家";
case 4:
- return "社区调解站专家";
+ return "村/社区调解专家";
}
return null;
}
--
Gitblit v1.7.1