forked from gzzfw/backEnd/gz-dyh

dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -96,6 +96,20 @@
    }
    /**
     * 批量更新对象
     * @param entity 对象
     * @param caseIdList
     */
    public void updateCaseInfoList(CaseInfo entity, List<String> caseIdList){
        try{
            mapper.updateCaseInfoList(entity, caseIdList);
        }catch (Exception e){
            log.error("[CaseInfoService.updateCaseInfoList]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseInfoService.updateCaseInfoList", e);
        }
    }
    /**
    * 条件更新对象
    * @param entity 对象
    * @param terms 条件
@@ -213,6 +227,11 @@
                caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
                caseInfo.setCreateTime(nowDate);
                caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                //默认添加省市
                caseInfo.setQueProv("19");
                caseInfo.setQueProvName("广东省");
                caseInfo.setQueCity("1601");
                caseInfo.setQueCityName("广州市");
                // 删除草稿案件
                if(1 == registerSaveDTO.getIsDraft() ){
                    draftInfoService.removeDraftInfo(registerSaveDTO.getId());
@@ -229,7 +248,7 @@
                // 判断是否自行受理
                if(1 == registerSaveDTO.getIsSelfAccept()){
                    // 自行受理流程
                    caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
                     return caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
                }else {
                    // 自动调度流程
                    caseTaskService.webStartFlowLFDJ(caseInfo);
@@ -527,42 +546,47 @@
     * @return String 纠纷编号
     */
    public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId){
        try {
            // 获取当前登录用户
            PaUserDTO loginUser = custClient.paclientGetUser(userId);
            if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){
                registerSaveDTO.setCustId(loginUser.getCustId());
            }
        // 获取当前登录用户
        PaUserDTO loginUser = custClient.paclientGetUser(userId);
        if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){
            registerSaveDTO.setCustId(loginUser.getCustId());
        }
            Date nowDate = DateUtils.getNowDate();
            registerSaveDTO.setUpdateTime(nowDate);
        Date nowDate = DateUtils.getNowDate();
        registerSaveDTO.setUpdateTime(nowDate);
            CaseInfo caseInfo = new CaseInfo();
            CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
            BeanUtils.copyProperties(registerSaveDTO, caseInfo);
            if(ObjectUtils.isEmpty(caseInfo.getId())){
                caseInfo.setId(utilsClient.getNewTimeCaseId());
            }
        CaseInfo caseInfo = new CaseInfo();
        CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
        BeanUtils.copyProperties(registerSaveDTO, caseInfo);
        if(ObjectUtils.isEmpty(caseInfo.getId())){
            caseInfo.setId(utilsClient.getNewTimeCaseId());
        }
//            caseInfo.setInputUnitId(loginUser.getUnitId());
//            caseInfo.setInputUnitName(loginUser.getUnitName());
            caseInfo.setInputUserId(loginUser.getId());
            caseInfo.setInputUserName(loginUser.getTrueName());
            caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
            caseInfo.setCreateTime(nowDate);
            caseInfo.setUpdateTime(nowDate);
            caseInfo.setVisitTime(nowDate);
            caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            //坐标转换
            if(ObjectUtils.isNotEmpty(caseInfo.getLat()) && ObjectUtils.isNotEmpty(caseInfo.getLng())){
                PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(caseInfo.getLng()), Double.valueOf(caseInfo.getLat()));
                caseInfo.setLat(pointXY.getLat()+"");
                caseInfo.setLng(pointXY.getLon()+"");
            }
            //todo case_title生成
            caseInfo.setCaseRef(utilsClient.createCaseRef());
        caseInfo.setInputUserId(loginUser.getId());
        caseInfo.setInputUserName(loginUser.getTrueName());
        caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
        //默认添加省市
        caseInfo.setQueProv("19");
        caseInfo.setQueProvName("广东省");
        caseInfo.setQueCity("1601");
        caseInfo.setQueCityName("广州市");
            // 为了演示先兼容小程序没属地问题,写死属地
            if (ObjectUtils.isEmpty(caseInfo.getQueProv())) {
        caseInfo.setCreateTime(nowDate);
        caseInfo.setUpdateTime(nowDate);
        caseInfo.setVisitTime(nowDate);
        caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
        //坐标转换
        if(ObjectUtils.isNotEmpty(caseInfo.getLat()) && ObjectUtils.isNotEmpty(caseInfo.getLng())){
            PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(caseInfo.getLng()), Double.valueOf(caseInfo.getLat()));
            caseInfo.setLat(pointXY.getLat()+"");
            caseInfo.setLng(pointXY.getLon()+"");
        }
        //todo case_title生成
        caseInfo.setCaseRef(utilsClient.createCaseRef());
        // 为了演示先兼容小程序没属地问题,写死属地
        if (ObjectUtils.isEmpty(caseInfo.getQueProv())) {
//                caseInfo.setQueProv("19");
//                caseInfo.setQueProvName("广东");
//                caseInfo.setQueCity("1601");
@@ -572,62 +596,58 @@
//                caseInfo.setQueRoad("62857");
//                caseInfo.setQueRoadName("新市街道");
                // 根据经纬度查询问题属地
                QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat());
                caseInfo.setQueProv(queAddrBaseDTO.getQueProv());
                caseInfo.setQueProvName(queAddrBaseDTO.getQueProvName());
                caseInfo.setQueCity(queAddrBaseDTO.getQueCity());
                caseInfo.setQueCityName(queAddrBaseDTO.getQueCityName());
                caseInfo.setQueArea(queAddrBaseDTO.getQueArea());
                caseInfo.setQueAreaName(queAddrBaseDTO.getQueAreaName());
                caseInfo.setQueRoad(queAddrBaseDTO.getQueRoad());
                caseInfo.setQueRoadName(queAddrBaseDTO.getQueRoadName());
            }
            caseInfoUnfold.setId(caseInfo.getId());
            caseInfoUnfold.setCreateTime(nowDate);
            caseInfoUnfold.setUpdateTime(nowDate);
            // 根据经纬度查询问题属地
            QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat());
            caseInfo.setQueProv(queAddrBaseDTO.getQueProv());
            caseInfo.setQueProvName(queAddrBaseDTO.getQueProvName());
            caseInfo.setQueCity(queAddrBaseDTO.getQueCity());
            caseInfo.setQueCityName(queAddrBaseDTO.getQueCityName());
            caseInfo.setQueArea(queAddrBaseDTO.getQueArea());
            caseInfo.setQueAreaName(queAddrBaseDTO.getQueAreaName());
            caseInfo.setQueRoad(queAddrBaseDTO.getQueRoad());
            caseInfo.setQueRoadName(queAddrBaseDTO.getQueRoadName());
        }
        caseInfoUnfold.setId(caseInfo.getId());
        caseInfoUnfold.setCreateTime(nowDate);
        caseInfoUnfold.setUpdateTime(nowDate);
            StringBuffer plaintiffs = new StringBuffer();
            StringBuffer defendants = new StringBuffer();
            StringBuffer pagents = new StringBuffer();
            StringBuffer dagents = new StringBuffer();
            // 常规登记-保存当事人
            int peopleNum = this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
            caseInfo.setVisitPeopleNum(peopleNum);
            caseInfo.setPlaintiffs(plaintiffs.toString());
            caseInfo.setPagents(pagents.toString());
            caseInfo.setDefendants(defendants.toString());
            caseInfo.setDagents(dagents.toString());
        StringBuffer plaintiffs = new StringBuffer();
        StringBuffer defendants = new StringBuffer();
        StringBuffer pagents = new StringBuffer();
        StringBuffer dagents = new StringBuffer();
        // 常规登记-保存当事人
        int peopleNum = this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
        caseInfo.setVisitPeopleNum(peopleNum);
        caseInfo.setPlaintiffs(plaintiffs.toString());
        caseInfo.setPagents(pagents.toString());
        caseInfo.setDefendants(defendants.toString());
        caseInfo.setDagents(dagents.toString());
            //todo case_title生成
        //todo case_title生成
//            caseInfo.setCaseTitle(this.createCaseTitle(plaintiffs.toString(), defendants.toString(), caseInfo.getCaseTypeName()));
            caseInfo.setInfoProcess(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getIndex());
            caseInfo.setInfoProcessName(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getDes());
            caseInfo.setProcess(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getIndex());
            caseInfo.setProcessName(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getDes());
            caseInfo.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
            caseInfo.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
            caseInfo.setCaseLevel(3);
            caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
            caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
        caseInfo.setInfoProcess(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getIndex());
        caseInfo.setInfoProcessName(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getDes());
        caseInfo.setProcess(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getIndex());
        caseInfo.setProcessName(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getDes());
        caseInfo.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
        caseInfo.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
        caseInfo.setCaseLevel(3);
        caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
        caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
            caseInfo.setCaseRef(utilsClient.createCaseRef());
            caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_2.getIndex());
            caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_2.getDes());
            // 临时加上一级纠纷类型
            caseInfo.setCaseTypeFirst("24_01-2");
            caseInfo.setCaseTypeFirstName("劳动社保");
            this.saveOrUpdate(caseInfo);
        caseInfo.setCaseRef(utilsClient.createCaseRef());
        caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_2.getIndex());
        caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_2.getDes());
        // 临时加上一级纠纷类型
        caseInfo.setCaseTypeFirst("24_01-2");
        caseInfo.setCaseTypeFirstName("劳动社保");
        this.saveOrUpdate(caseInfo);
            caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold);
            // 启动工作流-自动调度流程
            caseTaskService.webStartFlowLFDJ(caseInfo);
            return registerSaveDTO.getId();
        }catch (Exception e){
            log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e);
            throw new ServiceException("CaseInfoService.caseRegisterWechat", e);
        }
        caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold);
        // 启动工作流-自动调度流程
        caseTaskService.webStartFlowLFDJ(caseInfo);
        return registerSaveDTO.getId();
    }
    /**
@@ -795,8 +815,11 @@
                if(ObjectUtils.isNotEmpty(caseInfoUnfold)){
                    caseInfoWeChatDTO.setMediResult(caseInfoUnfold.getMediResult());
                    caseInfoWeChatDTO.setMediResultName(caseInfoUnfold.getMediResultName());
                    caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateDeptId());
                    caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateDeptName());
                    caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateUnitId());
                    caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateUnitName());
                    caseInfoWeChatDTO.setAgreeType(caseInfoUnfold.getAgreeType());
                    caseInfoWeChatDTO.setAgreeTypeName(caseInfoUnfold.getAgreeTypeName());
                    caseInfoWeChatDTO.setAgreeContent(caseInfoUnfold.getAgreeContent());
                }
                QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();