From 76f4b32326c77b6a3b6742ab5d72f0b02320b62f Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Tue, 10 Sep 2024 20:33:10 +0800 Subject: [PATCH] 1、小程序提交,根据经纬度查询问题属地 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 216 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 120 insertions(+), 96 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index fb0aa04..c45dfbe 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java @@ -1,18 +1,12 @@ 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.module.cases.domain.dto.CaseInfoDTO; +import cn.huge.base.common.utils.*; +import cn.huge.module.cases.domain.dto.*; -import cn.huge.module.cases.domain.dto.CaseInfoWeChatDTO; -import cn.huge.module.cases.domain.dto.CasePersonWechatDTO; -import cn.huge.module.cases.domain.dto.RegisterSaveDTO; import cn.huge.module.cases.domain.po.CaseAgent; import cn.huge.module.cases.domain.po.CaseInfoUnfold; import cn.huge.module.cases.domain.po.CasePerson; -import cn.huge.module.client.api.SysClient; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; @@ -24,12 +18,13 @@ import cn.huge.module.mediate.constant.CaseBaseConstsEnum; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.draft.service.CasedraftInfoService; +import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum; import cn.huge.module.mediate.dto.WechatBindCaseDTO; import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; -import cn.huge.module.sys.dto.FileTypeInfoBaseDTO; +import cn.huge.module.sys.dto.QueAddrBaseDTO; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -80,6 +75,9 @@ @Autowired private SysClientImpl sysClient; + + @Autowired + private CaseTaskService caseTaskService; /** * 更新对象 @@ -200,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()); @@ -210,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); } @@ -274,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); @@ -308,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); } @@ -536,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(); @@ -551,24 +551,52 @@ 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(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"); + caseInfo.setQueCityName("广州市"); + caseInfo.setQueArea("50258"); + caseInfo.setQueAreaName("白云区"); + caseInfo.setQueRoad("62857"); + caseInfo.setQueRoadName("新市街道"); - caseInfoUnfold.setId(utilsClient.getNewTimeId()); - caseInfoUnfold.setCaseId(caseInfo.getId()); + // 根据经纬度查询问题属地 +// 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); // 常规登记-保存当事人 - 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 - this.saveOrUpdate(caseInfo); + + // 启动工作流-自动调度流程 + caseTaskService.webStartFlowLFDJ(caseInfo); return registerSaveDTO.getId(); }catch (Exception e){ log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e); @@ -588,25 +616,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); //添加申请方和被申请方人名组合 @@ -630,18 +650,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())) { @@ -651,33 +666,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; @@ -703,20 +691,24 @@ } /** - * 按条件分页查询 + * 按条件分页查询-小程序查询 * @param page 分页对象 * @param terms 条件 * @return Page */ - public Page<CaseInfoWeChatDTO> pageQueryWechat(String userId,PageRequest page, Map<String, Object> terms){ + 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 { @@ -727,26 +719,24 @@ 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(); 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); @@ -770,4 +760,38 @@ } return new PageImpl<CaseInfoWeChatDTO>(list, page, total); } + + /** + * 按条件分页查询-综合查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<CasePageDTO> pageQueryAll(PageRequest page, Map<String, Object> terms){ + long total = mapper.countTermsAll(terms); + List<CasePageDTO> content = mapper.pageTermsAll(page, terms); + if(ObjectUtils.isNotEmpty(content)){ + for (CasePageDTO casePageDTO : content) { + QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); + personWrapper1.eq("case_id", casePageDTO.getId()); + List<CasePerson> casePersonList1 = personService.list(personWrapper1); + //申请人集合 + List<CasePersonWeDTO> plaintiffList = new ArrayList<>(); + //被申请人集合 + List<CasePersonWeDTO> defendantList = new ArrayList<>(); + for (CasePerson casePerson : casePersonList1) { + CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO(); + BeanUtils.copyProperties(casePerson, casePersonWechatDTO); + if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ + plaintiffList.add(casePersonWechatDTO); + }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ + defendantList.add(casePersonWechatDTO); + } + } + casePageDTO.setDefendantList(defendantList); + casePageDTO.setPlaintiffList(plaintiffList); + } + } + return new PageImpl<CasePageDTO>(content, page, total); + } } -- Gitblit v1.8.0