From 6f4ed9dbb428374e5513fbf88aae1377fd423a51 Mon Sep 17 00:00:00 2001 From: zhouxiantao <1026371446@qq.com> Date: Sat, 14 Sep 2024 15:19:52 +0800 Subject: [PATCH] 综合查询 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 262 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 194 insertions(+), 68 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 a10be52..448b8ac 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,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; @@ -16,12 +14,14 @@ import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.constant.BaseConsts; import cn.huge.module.cust.dto.PaUserDTO; -import cn.huge.module.mediate.constant.CaseBaseConsts; -import cn.huge.module.mediate.constant.CaseBaseConstsEnum; +import cn.huge.module.mediate.constant.*; 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.QueAddrBaseDTO; +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; @@ -78,6 +78,10 @@ @Autowired private CaseTaskService caseTaskService; + @Autowired + private CaseEvaluateService caseEvaluateService; + + /** * 更新对象 * @param entity 对象 @@ -88,6 +92,20 @@ }catch (Exception e){ log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoService.updateCaseInfo", e); + } + } + + /** + * 批量更新对象 + * @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); } } @@ -197,8 +215,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 +292,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 +326,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); } @@ -521,60 +541,132 @@ * @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); - StringBuffer plaintiffs = new StringBuffer(); - StringBuffer defendants = new StringBuffer(); - StringBuffer pagents = new StringBuffer(); - StringBuffer dagents = new StringBuffer(); - int peopleNum = 0; + 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); - caseInfo.setProcess(1); - caseInfo.setProcessName("来访登记"); - //todo case_ref生成、case_title生成 - - caseInfoUnfold.setId(caseInfo.getId()); - caseInfoUnfold.setCreateTime(nowDate); - caseInfoUnfold.setUpdateTime(nowDate); - - // 常规登记-保存当事人 - peopleNum += this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser); - caseInfo.setPeopleNum(peopleNum); - caseInfo.setPlaintiffs(plaintiffs.toString()); - caseInfo.setPagents(pagents.toString()); - caseInfo.setDefendants(defendants.toString()); - caseInfo.setDagents(dagents.toString()); - this.saveOrUpdate(caseInfo); - - // 启动工作流-自动调度流程 - caseTaskService.webStartFlowLFDJ(caseInfo); - return registerSaveDTO.getId(); - }catch (Exception e){ - log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e); - throw new ServiceException("CaseInfoService.caseRegisterWechat", e); + 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()); + + // 为了演示先兼容小程序没属地问题,写死属地 + 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("新市街道"); + + // 根据经纬度查询问题属地 + 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()); + + //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.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(); + } + + /** + * 生成调解案件标题 + * @param plaintiffs 申请人 + * @param defendants 被申请人 + * @param caseTypeName 纠纷类型 + * @return String + */ + public String createCaseTitle(String plaintiffs, String defendants, String caseTypeName){ + StringBuffer caseTitle = new StringBuffer(); + if (plaintiffs.indexOf(BaseConsts.COMMA) != -1){ + caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]).append("等"); + }else { + caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]); + } + if (StringUtils.isNotEmpty(defendants)) { + caseTitle.append("和"); + if (defendants.indexOf(BaseConsts.COMMA) != -1) { + caseTitle.append(defendants.split(BaseConsts.COMMA)[0]).append("等"); + } else { + caseTitle.append(defendants.split(BaseConsts.COMMA)[0]); + } + } + caseTitle.append("的"); + if (StringUtils.isNotEmpty(caseTypeName)){ + caseTitle.append(caseTypeName); + } + caseTitle.append("案件"); + return caseTitle.toString(); } /** @@ -603,13 +695,13 @@ personService.saveOrUpdate(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); @@ -631,16 +723,22 @@ caseAgent.setCreateTime(registerSaveDTO.getUpdateTime()); caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime()); agentService.saveOrUpdate(caseAgent); - - if (StringUtils.isNotEmpty(pagents.toString())) { - pagents.append(BaseConsts.COMMA); + 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.getIndex().equals(caseAgent.getPerType())){ + if (StringUtils.isNotEmpty(dagents.toString())) { + dagents.append(BaseConsts.COMMA); + } + dagents.append(caseAgent.getTrueName()); } - pagents.append(caseAgent.getTrueName()); + } //todo 绑定当事人小程序 } } - return peopleNum; } @@ -670,14 +768,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 +799,18 @@ 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()); + caseInfoWeChatDTO.setAgreeType(caseInfoUnfold.getAgreeType()); + caseInfoWeChatDTO.setAgreeTypeName(caseInfoUnfold.getAgreeTypeName()); + caseInfoWeChatDTO.setAgreeContent(caseInfoUnfold.getAgreeContent()); + } + QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); personWrapper1.eq("case_id", caseInfo.getId()); List<CasePerson> casePersonList1 = personService.list(personWrapper1); @@ -715,6 +829,18 @@ } caseInfoWeChatDTO.setDefendantList(defendantList); caseInfoWeChatDTO.setPlaintiffList(plaintiffList); + //评价信息 + Map<String, Object> evaluateTerms = new HashMap<>(); + evaluateTerms.put("caseId", caseInfo.getId()); + evaluateTerms.put("deleteStatus", BaseConsts.DELETE_STATUS_0); + evaluateTerms.put("evaluateUserId", loginUser.getId()); + long evaluateCount = caseEvaluateService.countTerms(evaluateTerms); + if(evaluateCount > 0){ + caseInfoWeChatDTO.setIsEvaluate("1"); + }else{ + caseInfoWeChatDTO.setIsEvaluate("0"); + } + list.add(caseInfoWeChatDTO); } } -- Gitblit v1.8.0