forked from gzzfw/backEnd/gz-dyh

xusd
2024-09-10 c098e33d7e9428aa3c902600af4b833eee0088f4
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -22,6 +22,7 @@
import cn.huge.module.draft.service.CasedraftInfoService;
import cn.huge.module.mediate.dto.WechatBindCaseDTO;
import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
@@ -74,6 +75,9 @@
    @Autowired
    private SysClientImpl sysClient;
    @Autowired
    private CaseTaskService caseTaskService;
    /**
    * 更新对象
@@ -194,8 +198,10 @@
            caseInfo.setDagents(dagents.toString());
            caseInfo.setCaseRef(utilsClient.createCaseRef());
            caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
            caseInfo.setCaseDes(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
            //todo case_title生成、经纬度转换、来访形式
            caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
            caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex());
            caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_1.getDes());
            //todo case_title生成、经纬度转换
            if(0 == registerSaveDTO.getOperateType()){
                caseInfo.setInputUnitId(loginUser.getUnitId());
                caseInfo.setInputUnitName(loginUser.getUnitName());
@@ -204,26 +210,27 @@
                caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
                caseInfo.setCreateTime(nowDate);
                caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
                caseInfoUnfold.setId(utilsClient.getNewTimeId());
                caseInfoUnfold.setCaseId(caseInfo.getId());
                caseInfoUnfold.setCreateTime(nowDate);
                caseInfoUnfold.setUpdateTime(nowDate);
                // 删除草稿案件
                if(1 == registerSaveDTO.getIsDraft() ){
                    draftInfoService.removeDraftInfo(registerSaveDTO.getId());
                }
                //判断是否自行受理
                if(1 == registerSaveDTO.getIsSelfAccept()){
                    //todo 流程接口修改status、status_name、process、process_name
                    caseInfoUnfold.setMediateUnitId(loginUser.getUnitId());
                    caseInfoUnfold.setMediateUnitName(loginUser.getUnitName());
                }
                // 新增纠纷信息
                this.save(caseInfo);
                // 新增纠纷信息扩展表
                CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
                caseInfoUnfold.setId(caseInfo.getId());
                caseInfoUnfold.setCreateTime(nowDate);
                caseInfoUnfold.setUpdateTime(nowDate);
                caseInfoUnfoldService.save(caseInfoUnfold);
                // 启动工作流
                // 判断是否自行受理
                if(1 == registerSaveDTO.getIsSelfAccept()){
                    // 自行受理流程
                    caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
                }else {
                    // 自动调度流程
                    caseTaskService.webStartFlowLFDJ(caseInfo);
                }
            }else if(1 == registerSaveDTO.getOperateType()){
                this.updateById(caseInfo);
            }
@@ -268,13 +275,13 @@
                //绑定当事人小程序
                this.setPartyUserId(casePerson);
                //添加申请方和被申请方人名组合
                if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casePerson.getPerType())){
                if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
                    //申请方
                    if (StringUtils.isNotEmpty(plaintiffs.toString())) {
                        plaintiffs.append(BaseConsts.COMMA);
                    }
                    plaintiffs.append(casePerson.getTrueName());
                }else if(CaseBaseConstsEnum.PERSON_TYPE_2.equals(casePerson.getPerType())){
                }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
                    //被申请方
                    if (StringUtils.isNotEmpty(defendants.toString())) {
                        defendants.append(BaseConsts.COMMA);
@@ -302,12 +309,12 @@
                caseAgent.setUpdateTime(now);
                //绑定当事人小程序
                this.setPartyUserId(caseAgent);
                if(CaseBaseConstsEnum.PERSON_TYPE_3.equals(caseAgent.getPerType())) {
                if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())) {
                    if (StringUtils.isNotEmpty(pagents.toString())) {
                        pagents.append(BaseConsts.COMMA);
                    }
                    pagents.append(caseAgent.getTrueName());
                }else if(CaseBaseConstsEnum.PERSON_TYPE_4.equals(caseAgent.getPerType())) {
                }else if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) {
                    if (StringUtils.isNotEmpty(dagents.toString())) {
                        dagents.append(BaseConsts.COMMA);
                    }
@@ -530,7 +537,6 @@
            StringBuffer defendants = new StringBuffer();
            StringBuffer pagents = new StringBuffer();
            StringBuffer dagents = new StringBuffer();
            int peopleNum = 0;
            CaseInfo caseInfo = new CaseInfo();
            CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
@@ -545,24 +551,39 @@
            caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
            caseInfo.setCreateTime(nowDate);
            caseInfo.setUpdateTime(nowDate);
            caseInfo.setVisitTime(nowDate);
            caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            //todo case_ref生成、case_title生成
            // 为了演示先兼容小程序没属地问题,写死属地
            if (caseInfo.getQueProvName() == null) {
                caseInfo.setQueProv("19");
                caseInfo.setQueProvName("广东");
                caseInfo.setQueCity("1601");
                caseInfo.setQueCityName("广州市");
                caseInfo.setQueArea("50258");
                caseInfo.setQueAreaName("白云区");
                caseInfo.setQueRoad("62857");
                caseInfo.setQueRoadName("新市街道");
            caseInfoUnfold.setId(utilsClient.getNewTimeId());
            caseInfoUnfold.setCaseId(caseInfo.getId());
            }
            caseInfoUnfold.setId(caseInfo.getId());
            caseInfoUnfold.setCreateTime(nowDate);
            caseInfoUnfold.setUpdateTime(nowDate);
            // 常规登记-保存当事人
            peopleNum += this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
            caseInfo.setPeopleNum(peopleNum);
            this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
            caseInfo.setPlaintiffs(plaintiffs.toString());
            caseInfo.setPagents(pagents.toString());
            caseInfo.setDefendants(defendants.toString());
            caseInfo.setDagents(dagents.toString());
            //todo 流程接口修改status、status_name、process、process_name
            caseInfo.setInfoProcess(1);
            caseInfo.setInfoProcessName("待受理");
            caseInfo.setProcess(1);
            caseInfo.setProcessName("来访登记");
            this.saveOrUpdate(caseInfo);
            // 启动工作流-自动调度流程
            caseTaskService.webStartFlowLFDJ(caseInfo);
            return registerSaveDTO.getId();
        }catch (Exception e){
            log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e);
@@ -582,25 +603,17 @@
    private int saveCasePersonWechat(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents,
                               StringBuffer defendants, StringBuffer dagents,PaUserDTO loginUser){
        int peopleNum = 0;
        List<String> newPersonIdList = new ArrayList<>();
        List<String> newAgentIdList = new ArrayList<>();
        // 保存申请人
        List<CasePerson> personList = registerSaveDTO.getPersonList();
        if (CollectionUtils.isNotEmpty(personList)) {
            for (CasePerson casePerson : personList) {
                if(ObjectUtils.isEmpty(casePerson.getId())){
                    casePerson.setId(utilsClient.getNewTimeCaseId());
                }
                newPersonIdList.add(casePerson.getId());
                casePerson.setId(utilsClient.getNewTimeCaseId());
                casePerson.setCaseId(registerSaveDTO.getId());
//                casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
//                casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes());
                casePerson.setPartyUserId(loginUser.getId());
                casePerson.setCustId(registerSaveDTO.getCustId());
                casePerson.setCreateTime(registerSaveDTO.getUpdateTime());
                casePerson.setUpdateTime(registerSaveDTO.getUpdateTime());
                //todo 绑定当事人小程序
                personService.saveOrUpdate(casePerson);
                //添加申请方和被申请方人名组合
@@ -624,18 +637,13 @@
            List<CaseAgent> agentList = registerSaveDTO.getAgentList();
            if (CollectionUtils.isNotEmpty(agentList)) {
                for(CaseAgent caseAgent: agentList){
                    newAgentIdList.add(caseAgent.getId());
                    if(ObjectUtils.isEmpty(caseAgent.getId())){
                        caseAgent.setId(utilsClient.getNewTimeCaseId());
                    }
                    caseAgent.setId(utilsClient.getNewTimeCaseId());
                    caseAgent.setPartyUserId(loginUser.getId());
                    caseAgent.setCaseId(registerSaveDTO.getId());
                    caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType()));
                    caseAgent.setCustId(registerSaveDTO.getCustId());
                    caseAgent.setCreateTime(registerSaveDTO.getUpdateTime());
                    caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime());
                    agentService.saveOrUpdate(caseAgent);
                    if (StringUtils.isNotEmpty(pagents.toString())) {
@@ -645,33 +653,6 @@
                }
                //todo 绑定当事人小程序
            }
        }
        // 删除冗余的申请人
        if (CollectionUtils.isNotEmpty(newPersonIdList)) {
            List<String> oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId());
            for (String oldPersonId : oldPersonIdList) {
                if (!newPersonIdList.contains(oldPersonId)) {
                    personService.removeById(oldPersonId);
                }
            }
        }else{
            QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>();
            casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId());
            personService.remove(casePersonQueryWrapper);
        }
        //删除冗余的代理人
        if(CollectionUtils.isNotEmpty(newAgentIdList)){
            List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId());
            for(String oldAgentId: oldAgentIdList){
                if(!newAgentIdList.contains(oldAgentId)){
                    agentService.removeById(oldAgentId);
                }
            }
        }else{
            QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
            caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId());
            agentService.remove(caseAgentQueryWrapper);
        }
        return peopleNum;
@@ -702,15 +683,19 @@
     * @param terms 条件
     * @return Page
     */
    public Page<CaseInfoWechatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){
        List<CaseInfoWechatDTO> list = new ArrayList<>();
    public Page<CaseInfoWeChatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){
        PaUserDTO loginUser = custClient.paclientGetUser(userId);
        List<CaseInfoWeChatDTO> list = new ArrayList<>();
        String personType = terms.get("personType")+"";
        if(ObjectUtils.isEmpty(personType)){
            throw new RuntimeException("请选择人员类型");
        }
        if(ObjectUtils.isEmpty(loginUser.getIdcard())){
            return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
        }
        QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>();
        personWrapper.select("case_id");
        personWrapper.eq("party_user_id", userId);
        personWrapper.eq("certi_no", loginUser.getIdcard());
        if("1".equals(personType)){
            personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
        }else {
@@ -718,29 +703,27 @@
        }
        List<CasePerson> casePersonList = personService.list(personWrapper);
        if(ObjectUtils.isEmpty(casePersonList)){
            return new PageImpl<CaseInfoWechatDTO>(list, page, 0);
            return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
        }
        List<String> ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList());
        terms.put("idList",ids);
        terms.put("ids",ids);
        long total = mapper.countTerms(terms);
        List<CaseInfo> content = mapper.pageTerms(page, terms);
        if(ObjectUtils.isNotEmpty(content)){
            for(CaseInfo caseInfo: content){
                CaseInfoWechatDTO caseInfoWeChatDTO = new CaseInfoWechatDTO();
                CaseInfoWeChatDTO caseInfoWeChatDTO = new CaseInfoWeChatDTO();
                BeanUtils.copyProperties(caseInfo, caseInfoWeChatDTO);
                if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(1) || caseInfo.getProcess().equals(2)){
                    caseInfoWeChatDTO.setProcessStatus(1);
                    caseInfoWeChatDTO.setProcessStatusName("待受理");
                }else if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(3) || caseInfo.getProcess().equals(4)){
                    caseInfoWeChatDTO.setProcessStatus(2);
                    caseInfoWeChatDTO.setProcessStatusName("办理中");
                }else if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(5) || caseInfo.getProcess().equals(6)){
                    caseInfoWeChatDTO.setProcessStatus(3);
                    caseInfoWeChatDTO.setProcessStatusName("已结案");
                }else{
                    caseInfoWeChatDTO.setProcessStatus(4);
                    caseInfoWeChatDTO.setProcessStatusName("不予受理");
                caseInfoWeChatDTO.setProcessStatus(caseInfo.getInfoProcess());
                caseInfoWeChatDTO.setProcessStatusName(caseInfo.getInfoProcessName());
                //扩展信息
                CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseInfo.getId());
                if(ObjectUtils.isNotEmpty(caseInfoUnfold)){
                    caseInfoWeChatDTO.setMediResult(caseInfoUnfold.getMediResult());
                    caseInfoWeChatDTO.setMediResultName(caseInfoUnfold.getMediResultName());
                    caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateDeptId());
                    caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateDeptName());
                }
                QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
                personWrapper1.eq("case_id", caseInfo.getId());
                List<CasePerson> casePersonList1 = personService.list(personWrapper1);
@@ -762,7 +745,7 @@
                list.add(caseInfoWeChatDTO);
            }
        }
        return new PageImpl<CaseInfoWechatDTO>(list, page, total);
        return new PageImpl<CaseInfoWeChatDTO>(list, page, total);
    }
    /**