forked from gzzfw/backEnd/gz-dyh

zhouxiantao
2024-10-09 3a73d5c21bb96dde33c97a6d4d50f4632678b329
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -2,6 +2,9 @@
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.*;
import cn.huge.module.cases.domain.bo.CaseAgentBO;
import cn.huge.module.cases.domain.bo.CasePersonBO;
import cn.huge.module.cases.domain.bo.CasePersonCountBO;
import cn.huge.module.cases.domain.dto.*;
import cn.huge.module.cases.domain.dto.CaseAreaDTO;
@@ -243,6 +246,13 @@
            caseInfo.setCaseRef(utilsClient.createCaseRef());
            caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex());
            caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_1.getDes());
            //默认小程序可见
            if(ObjectUtils.isNotEmpty(caseInfo.getCanal())){
                if(CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){
                    caseInfo.setPartyShow(1);
                }
            }
            //todo case_title生成、经纬度转换
            if (0 == registerSaveDTO.getOperateType()) {
                caseInfo.setInputUnitId(loginUser.getUnitId());
@@ -597,6 +607,7 @@
        caseInfo.setInputUserId(loginUser.getId());
        caseInfo.setInputUserName(loginUser.getTrueName());
        caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
        caseInfo.setPartyShow(1);
        if(ObjectUtils.isEmpty(registerSaveDTO.getPeopleNum())){
            caseInfo.setPeopleNum(0);
        }
@@ -678,6 +689,9 @@
        // 临时加上一级纠纷类型
        caseInfo.setCaseTypeFirst("24_01-2");
        caseInfo.setCaseTypeFirstName("劳动社保");
        //小程序是否查看
        caseInfo.setPartyShow(1);
        this.saveOrUpdate(caseInfo);
        caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold);
@@ -732,9 +746,12 @@
        int peopleNum = 0;
        // 保存申请人
        List<CasePerson> personList = registerSaveDTO.getPersonList();
        Map<String,String> personIdMap = new HashMap<>();
        if (CollectionUtils.isNotEmpty(personList)) {
            for (CasePerson casePerson : personList) {
                casePerson.setId(utilsClient.getNewTimeCaseId());
                String newTimeCaseId = utilsClient.getNewTimeCaseId();
                personIdMap.put(casePerson.getAgentCode(), newTimeCaseId);
                casePerson.setId(newTimeCaseId);
                casePerson.setCaseId(registerSaveDTO.getId());
                casePerson.setPartyUserId(loginUser.getId());
                casePerson.setCustId(registerSaveDTO.getCustId());
@@ -765,6 +782,7 @@
            if (CollectionUtils.isNotEmpty(agentList)) {
                for (CaseAgent caseAgent : agentList) {
                    caseAgent.setId(utilsClient.getNewTimeCaseId());
                    caseAgent.setPersonId(personIdMap.get(caseAgent.getAgentCode()));
                    caseAgent.setPartyUserId(loginUser.getId());
                    caseAgent.setCaseId(registerSaveDTO.getId());
                    caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType()));
@@ -800,11 +818,22 @@
        QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>();
        casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId());
        List<CasePerson> personList = personService.list(casePersonQueryWrapper);
        Map<String,String> personNameMap = new HashMap<>();
        if(ObjectUtils.isNotEmpty(personList)){
            for (CasePerson casePerson : personList) {
                personNameMap.put(casePerson.getId(),casePerson.getTrueName());
            }
        }
        registerSaveDTO.setPersonList(personList);
        QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
        caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId());
        List<CaseAgent> agentList = agentService.list(caseAgentQueryWrapper);
        if(ObjectUtils.isNotEmpty(agentList)){
            for (CaseAgent caseAgent : agentList) {
                caseAgent.setAgentPersonName(personNameMap.get(caseAgent.getPersonId()));
            }
        }
        registerSaveDTO.setAgentList(agentList);
        return registerSaveDTO;
@@ -952,6 +981,7 @@
        }
        return new PageImpl<CasePageDTO>(content, page, total);
    }
    public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException {
        Object canal = null;
@@ -1163,4 +1193,101 @@
        List<QueAreaDTO> queAreaDTOS = sysClient.listByParentId(parentId);
        return queAreaDTOS;
    }
    public Page<CasePageDTO> pagePerson(PageRequest page, Map<String, Object> terms,String certiNo) {
        QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>();
        personWrapper.select("case_id,certi_no");
        personWrapper.eq("certi_no", certiNo);
        List<CasePerson> personList = personService.list(personWrapper);
        List<String> ids = new ArrayList<>();
        if(ObjectUtils.isNotEmpty(personList)){
            for (CasePerson casePerson : personList) {
                ids.add(casePerson.getCaseId());
            }
        }
        QueryWrapper<CaseAgent> agentWrapper = new QueryWrapper<>();
        agentWrapper.select("case_id,certi_no");
        agentWrapper.in("certi_no", certiNo);
        List<CaseAgent> agentList = agentService.list(agentWrapper);
        if(ObjectUtils.isNotEmpty(agentList)){
            for (CaseAgent caseAgent : agentList) {
                ids.add(caseAgent.getCaseId());
            }
        }
        if(ObjectUtils.isEmpty(ids)){
            return new PageImpl<CasePageDTO>(new ArrayList<>(), page, 0);
        }
        terms.put("ids", ids);
        long total = mapper.countTermsAll(terms);
        List<CasePageDTO> content = mapper.pageTermsAll(page, terms);
        if (ObjectUtils.isNotEmpty(content)) {
            for (CasePageDTO casePageDTO : content) {
                if(ObjectUtils.isNotEmpty(casePageDTO.getQueRoadName())){
                    casePageDTO.setAreaName(casePageDTO.getQueRoadName());
                }else if(ObjectUtils.isNotEmpty(casePageDTO.getAreaName())){
                    casePageDTO.setAreaName(casePageDTO.getAreaName());
                }else if(ObjectUtils.isNotEmpty(casePageDTO.getQueCityName())){
                    casePageDTO.setAreaName(casePageDTO.getQueCityName());
                }
                if(ObjectUtils.isNotEmpty(casePageDTO.getCaseLevel())){
                    switch (casePageDTO.getCaseLevel()){
                        case "1":
                            casePageDTO.setCaseLevel("一级");
                            break;
                        case "2":
                            casePageDTO.setCaseLevel("二级");
                            break;
                        case "3":
                            casePageDTO.setCaseLevel("三级");
                            break;
                    }
                }
            }
        }
        return new PageImpl<CasePageDTO>(content, page, total);
    }
    public CasePersonCountBO countPerson(String certiNo){
        CasePersonCountBO casePersonCountBO = new CasePersonCountBO();
        Integer plaintiffNum = 0;//申请方当事人数
        Integer defendantNum = 0;//被申请方当事人数
        Integer pagentsNum = 0;//申请方代理人数
        Integer dagentsNum = 0;//被申请方代理人数
        List<CasePerson> personList = personService.listByCertiNo(certiNo);
        List<String> ids = new ArrayList<>();
        if(ObjectUtils.isNotEmpty(personList)){
            for (CasePerson casePerson : personList) {
                ids.add(casePerson.getCaseId());
                if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
                    plaintiffNum++;
                }
                if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
                    defendantNum++;
                }
            }
        }
        List<CaseAgent> agentList = agentService.listByCertiNo(certiNo);
        if(ObjectUtils.isNotEmpty(agentList)){
            for (CaseAgent caseAgent : agentList) {
                ids.add(caseAgent.getCaseId());
                if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())){
                    pagentsNum++;
                }
                if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())){
                    dagentsNum++;
                }
            }
        }
        casePersonCountBO.setDagentsNum(dagentsNum);
        casePersonCountBO.setPagentsNum(pagentsNum);
        casePersonCountBO.setDefendantNum(defendantNum);
        casePersonCountBO.setPlaintiffNum(plaintiffNum);
        casePersonCountBO.setTotalNum(ids.size());
        casePersonCountBO.setZzzxNum(ids.size());
        return casePersonCountBO;
    }
}