forked from gzzfw/backEnd/gz-dyh

zhouxiantao
2024-09-10 2c9b2b31b726ac6764c76ea0b887665374a9088e
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -1,9 +1,7 @@
package cn.huge.module.cases.service;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.base.common.utils.*;
import cn.huge.module.cases.domain.dto.*;
import cn.huge.module.cases.domain.po.CaseAgent;
@@ -22,6 +20,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;
@@ -197,8 +196,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());
@@ -272,13 +273,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);
@@ -306,12 +307,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);
                    }
@@ -534,7 +535,6 @@
            StringBuffer defendants = new StringBuffer();
            StringBuffer pagents = new StringBuffer();
            StringBuffer dagents = new StringBuffer();
            int peopleNum = 0;
            CaseInfo caseInfo = new CaseInfo();
            CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
@@ -551,21 +551,39 @@
            caseInfo.setUpdateTime(nowDate);
            caseInfo.setVisitTime(nowDate);
            caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseInfo.setProcess(1);
            caseInfo.setProcessName("来访登记");
            //坐标转换
            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_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(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());
            caseInfo.setInfoProcess(1);
            caseInfo.setInfoProcessName("待受理");
            caseInfo.setProcess(1);
            caseInfo.setProcessName("来访登记");
            this.saveOrUpdate(caseInfo);
            // 启动工作流-自动调度流程
@@ -670,14 +688,18 @@
     * @return Page
     */
    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 {
@@ -697,6 +719,15 @@
                BeanUtils.copyProperties(caseInfo, caseInfoWeChatDTO);
                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);