张天森
2022-10-19 e93e68bfe605817d19b8f55a3f19c6c3049281d0
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -28,6 +28,7 @@
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.ComSanshuoExpertDao;
import com.panzhihua.service_community.dao.ComStreetDAO;
import com.panzhihua.service_community.entity.*;
import com.panzhihua.service_community.model.dos.ComActDO;
@@ -35,8 +36,10 @@
import com.panzhihua.service_community.service.*;
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.util.*;
@@ -82,11 +85,12 @@
    @Resource
    private CommediateTypeService commediateTypeService;
    @Resource
    private ComSanshuoExpertDao comSanshuoExpertDao;
    @Override
    public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
        log.info("=================当前登陆的用户信息,用户类型"+loginUserInfoVO.getType()+"社区id"+loginUserInfoVO.getCommunityId());
        log.info("=====================当前的userType1:="+comEvent.getUserType());
        Boolean isExpertCheck=false;
        Long expertId=null;
        Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
@@ -131,12 +135,10 @@
        }
        if (nonNull(loginUserInfoVO.getAccount())){
            if (loginUserInfoVO.getAccount().equals("admin")){
                comEvent.setUserType(null);
                comEvent.setUserType(9);
            }
        }
        IPage<ComEvent> list=null;
        log.info("=====================当前的userType2:="+comEvent.getUserType());
        log.info("=====================是否专家账号查看"+isExpertCheck);
        //是否为专家查看自己发布的事件
        if (isExpertCheck && comEvent.getUserType()!=1){
            if (nonNull(comEventMapper.listEventIds(expertId))){
@@ -185,7 +187,7 @@
    public void accountMenu(ComEvent comEvent,Integer userType,LoginUserInfoVO loginUserInfoVO,Boolean isStreet){
        //四个账号级别
        Boolean isAdmin=false;
        if (isNull(userType)){
        if (userType.equals(9)){
            isAdmin=true;
        }
        comEvent.setDelete(1);
@@ -491,7 +493,9 @@
                    //失败后转交三说会堂
                    comEvent.setSolve(0);
                    comEvent.setDistribution(0);
                    comEvent.setConciliation(0);
                    //comEvent.setConciliation(0);
                    comEvent.setEventProcessStatus(2);
                    comEvent.setArchive(0);
                    //comEvent.setChangeExpert(0);
                }
                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
@@ -798,15 +802,17 @@
        comEventDetailVO.setImages(comEventRequestImageVO);
        map.put("specter", specter);
        map.put("eventDetail", comEventDetailVO);
        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::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);
                archiveLog.add(comEventTransferRecord);
            }
        });
        map.put("archiveLog", archiveLog);
        //迭代器迭代删除归档记录
        Iterator<ComEventTransferRecord> iterator = transferRecord.iterator();
        while (iterator.hasNext()){
@@ -860,7 +866,7 @@
        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{
@@ -892,18 +898,19 @@
                comEvent.setUserType(5);
                comEvent.setCommunityIds(cids);
         }
        if (isExpertCheck && comEvent.getUserType()!=1){
            if (nonNull(comEventMapper.listEventIds(expertId))){
        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") && loginUserInfoVO.getStreetId().equals(Constants.ADMIN_STREET_ID)){
                comEvent.setUserType(null);
            if (loginUserInfoVO.getAccount().equals("admin")){
                comEvent.setUserType(9);
            }
        }
        log.info("当前userType===="+comEvent.getUserType());
        List<ComEventCalculateVO> calculateList = baseMapper.calculate(comEvent);
        ComEventCalculateVO comEventCalculateVO =new ComEventCalculateVO();
        comEventCalculateVO.setStatus("0");
@@ -963,6 +970,8 @@
                vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2));
            }
        }
        vo.setExpert(comSanshuoExpertDao.selectExpertCount(indexDataDTO));
        //查询当前级别下的专家
        //折线图X轴
        List<Date> dates = pastTwelveMoth();
        vo.setX(getYAndM(dates));
@@ -981,13 +990,13 @@
    @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();
            for (EventRateVO eventRateVO : eventRateVOS) {
                if (nonNull(eventRateVO)){
                    eventRateVO.setName(typeToName(eventRateVO.getType()));
                    eventRateVO.setName(typeToName(eventRateVO.getCurrentProcessType()));
                    if (nonNull(eventCount) && !eventCount.equals(0)){
                        //计算占比
                        eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
@@ -1029,13 +1038,23 @@
        comEventMapper.updateLog(id,comEvent.getSpecialistId());
    }
    @Override
    public R listStreetScreen() {
        return R.ok(comStreetDAO.selectList(new QueryWrapper<ComStreetDO>().eq("app_id", "wx0cef797390444b75")));
    }
    @Override
    public R listCommunityScreen() {
        return R.ok(comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAppId, "wx0cef797390444b75")));
    }
    public String typeToName(Integer type){
        switch (type){
            case 1:
                return "行业分中心受理";
            case 2:
                return "街道调解站受理";
            case 3:
                return "街道调解站受理";
            case 2:
                return "社区调解站受理";
            case 4:
                return "区三说会堂受理";