| | |
| | | import cn.huge.base.common.utils.*; |
| | | import cn.huge.module.cases.domain.dto.*; |
| | | |
| | | import cn.huge.module.cases.domain.dto.CaseAreaDTO; |
| | | 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 com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.stereotype.Service; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.data.domain.Page; |
| | |
| | | import org.springframework.data.domain.PageRequest; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.nio.file.Files; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author wangwh |
| | | * @version 1.0.0 |
| | | * @title: 纠纷信息主表业务逻辑处理 |
| | | * @Description 纠纷信息主表业务逻辑处理 |
| | | * @company hugeinfo |
| | | * @author wangwh |
| | | * @Time 2024-08-27 10:00:57 |
| | | * @version 1.0.0 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public class CaseInfoService extends ServiceImpl<CaseInfoMapper, CaseInfo>{ |
| | | public class CaseInfoService extends ServiceImpl<CaseInfoMapper, CaseInfo> { |
| | | |
| | | @Autowired |
| | | private CaseInfoMapper mapper; |
| | |
| | | |
| | | |
| | | /** |
| | | * 更新对象 |
| | | * @param entity 对象 |
| | | */ |
| | | public void updateCaseInfo(CaseInfo entity){ |
| | | try{ |
| | | * 更新对象 |
| | | * |
| | | * @param entity 对象 |
| | | */ |
| | | public void updateCaseInfo(CaseInfo entity) { |
| | | try { |
| | | mapper.updateCaseInfo(entity); |
| | | }catch (Exception e){ |
| | | log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:"+e, e); |
| | | } catch (Exception e) { |
| | | log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:" + e, e); |
| | | throw new ServiceException("CaseInfoService.updateCaseInfo", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 条件更新对象 |
| | | * @param entity 对象 |
| | | * @param terms 条件 |
| | | */ |
| | | public void updateCaseInfoTerms(CaseInfo entity, Map<String, Object> terms){ |
| | | try{ |
| | | * 批量更新对象 |
| | | * |
| | | * @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 条件 |
| | | */ |
| | | public void updateCaseInfoTerms(CaseInfo entity, Map<String, Object> terms) { |
| | | try { |
| | | mapper.updateCaseInfoTerms(entity, terms); |
| | | }catch (Exception e){ |
| | | log.error("[CaseInfoService.updateCaseInfoTerms]调用失败,异常信息:"+e, e); |
| | | } catch (Exception e) { |
| | | log.error("[CaseInfoService.updateCaseInfoTerms]调用失败,异常信息:" + e, e); |
| | | throw new ServiceException("CaseInfoService.updateCaseInfoTerms", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据编号物理删除 |
| | | * @param id 查询条件集合 |
| | | */ |
| | | public void deleteCaseInfo(String id){ |
| | | try{ |
| | | * 根据编号物理删除 |
| | | * |
| | | * @param id 查询条件集合 |
| | | */ |
| | | public void deleteCaseInfo(String id) { |
| | | try { |
| | | mapper.deleteCaseInfo(id); |
| | | }catch (Exception e){ |
| | | log.error("[CaseInfoService.deleteCaseInfo]调用失败,异常信息:"+e, e); |
| | | } catch (Exception e) { |
| | | log.error("[CaseInfoService.deleteCaseInfo]调用失败,异常信息:" + e, e); |
| | | throw new ServiceException("CaseInfoService.deleteCaseInfo", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 按条件查询 |
| | | * @param terms 条件 |
| | | * @return List |
| | | */ |
| | | public List<CaseInfo> listTerms(Map<String, Object> terms){ |
| | | * 按条件查询 |
| | | * |
| | | * @param terms 条件 |
| | | * @return List |
| | | */ |
| | | public List<CaseInfo> listTerms(Map<String, Object> terms) { |
| | | return mapper.listTerms(terms); |
| | | } |
| | | |
| | | /** |
| | | * 按条件统计 |
| | | * @param terms 条件 |
| | | * @return long |
| | | */ |
| | | public long countTerms(Map<String, Object> terms){ |
| | | * 按条件统计 |
| | | * |
| | | * @param terms 条件 |
| | | * @return long |
| | | */ |
| | | public long countTerms(Map<String, Object> terms) { |
| | | return mapper.countTerms(terms); |
| | | } |
| | | |
| | | /** |
| | | * 按条件分页查询 |
| | | * @param page 分页对象 |
| | | * @param terms 条件 |
| | | * @return Page |
| | | */ |
| | | public Page<CaseInfo> pageQuery(PageRequest page, Map<String, Object> terms){ |
| | | * 按条件分页查询 |
| | | * |
| | | * @param page 分页对象 |
| | | * @param terms 条件 |
| | | * @return Page |
| | | */ |
| | | public Page<CaseInfo> pageQuery(PageRequest page, Map<String, Object> terms) { |
| | | long total = mapper.countTerms(terms); |
| | | List<CaseInfo> content = mapper.pageTerms(page, terms); |
| | | return new PageImpl<CaseInfo>(content, page, total); |
| | | } |
| | | |
| | | /** |
| | | * 新增或更新对象 |
| | | * @param caseInfo 实体对象 |
| | | */ |
| | | public void saveCaseInfo(CaseInfo caseInfo){ |
| | | try{ |
| | | * 按条件分页查询 |
| | | * |
| | | * @param page 分页对象 |
| | | * @param terms 条件 |
| | | * @return Page |
| | | */ |
| | | public Page<CaseRegisterDTO> pageQueryRegister(PageRequest page, Map<String, Object> terms) { |
| | | long total = mapper.countTermsCaseRegister(terms); |
| | | List<CaseRegisterDTO> content = mapper.pageTermsCaseRegister(page, terms); |
| | | return new PageImpl<CaseRegisterDTO>(content, page, total); |
| | | } |
| | | |
| | | /** |
| | | * 新增或更新对象 |
| | | * |
| | | * @param caseInfo 实体对象 |
| | | */ |
| | | public void saveCaseInfo(CaseInfo caseInfo) { |
| | | try { |
| | | Date nowDate = DateUtils.getNowDate(); |
| | | // 判断是否新增 |
| | | if (IdUtils.checkNewId(caseInfo.getId())){ |
| | | if (IdUtils.checkNewId(caseInfo.getId())) { |
| | | caseInfo.setId(utilsClient.getNewTimeId()); |
| | | caseInfo.setCreateTime(nowDate); |
| | | } |
| | | caseInfo.setUpdateTime(nowDate); |
| | | this.saveOrUpdate(caseInfo); |
| | | }catch (Exception e){ |
| | | log.error("[CaseInfoService.saveCaseInfo]调用失败,异常信息:"+e, e); |
| | | } catch (Exception e) { |
| | | log.error("[CaseInfoService.saveCaseInfo]调用失败,异常信息:" + e, e); |
| | | throw new ServiceException("CaseInfoService.saveCaseInfo", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * PC端-纠纷登记-保存纠纷信息-正常案件 |
| | | * |
| | | * @param registerSaveDTO 纠纷信息 |
| | | * @param userId 用户编号 |
| | | * @param userId 用户编号 |
| | | * @return String 纠纷编号 |
| | | */ |
| | | public String caseRegister(RegisterSaveDTO registerSaveDTO, String userId){ |
| | | public String caseRegister(RegisterSaveDTO registerSaveDTO, String userId) { |
| | | try { |
| | | // 获取当前登录用户 |
| | | CtUserDTO loginUser = custClient.clientGetUserAll(userId); |
| | |
| | | caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex()); |
| | | caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_1.getDes()); |
| | | //todo case_title生成、经纬度转换 |
| | | if(0 == registerSaveDTO.getOperateType()){ |
| | | if (0 == registerSaveDTO.getOperateType()) { |
| | | caseInfo.setInputUnitId(loginUser.getUnitId()); |
| | | caseInfo.setInputUnitName(loginUser.getUnitName()); |
| | | caseInfo.setInputUserId(loginUser.getId()); |
| | |
| | | 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() ){ |
| | | if (1 == registerSaveDTO.getIsDraft()) { |
| | | draftInfoService.removeDraftInfo(registerSaveDTO.getId()); |
| | | } |
| | | // 新增纠纷信息 |
| | |
| | | caseInfoUnfoldService.save(caseInfoUnfold); |
| | | // 启动工作流 |
| | | // 判断是否自行受理 |
| | | if(1 == registerSaveDTO.getIsSelfAccept()){ |
| | | if (1 == registerSaveDTO.getIsSelfAccept()) { |
| | | // 自行受理流程 |
| | | caseTaskService.webStartFlowZXSL(caseInfo, loginUser); |
| | | }else { |
| | | return caseTaskService.webStartFlowZXSL(caseInfo, loginUser); |
| | | } else { |
| | | // 自动调度流程 |
| | | caseTaskService.webStartFlowLFDJ(caseInfo); |
| | | } |
| | | }else if(1 == registerSaveDTO.getOperateType()){ |
| | | } else if (1 == registerSaveDTO.getOperateType()) { |
| | | this.updateById(caseInfo); |
| | | } |
| | | return registerSaveDTO.getId(); |
| | | }catch (Exception e){ |
| | | log.error("service方法[CaseInfoService.caseRegister]调用异常:"+e, e); |
| | | } catch (Exception e) { |
| | | log.error("service方法[CaseInfoService.caseRegister]调用异常:" + e, e); |
| | | throw new ServiceException("CaseInfoService.caseRegister", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * pc端-常规登记-保存正式案件-保存人员信息 |
| | | * |
| | | * @param registerSaveDTO 纠纷信息 |
| | | * @param plaintiffs 申请人 |
| | | * @param pagents 申请人代理人 |
| | | * @param defendants 被申请人 |
| | | * @param dagents 被申请人代理人 |
| | | * @param plaintiffs 申请人 |
| | | * @param pagents 申请人代理人 |
| | | * @param defendants 被申请人 |
| | | * @param dagents 被申请人代理人 |
| | | * @return int |
| | | */ |
| | | private void saveCasePerson(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, |
| | | StringBuffer defendants, StringBuffer dagents){ |
| | | StringBuffer defendants, StringBuffer dagents) { |
| | | |
| | | Date now = DateUtils.getNowDate(); |
| | | |
| | |
| | | List<String> newPersonIdList = new ArrayList<>(); |
| | | List<String> newAgentIdList = new ArrayList<>(); |
| | | |
| | | if(CollectionUtils.isNotEmpty(personList)){ |
| | | for(CasePerson casePerson: personList){ |
| | | if (CollectionUtils.isNotEmpty(personList)) { |
| | | for (CasePerson casePerson : personList) { |
| | | newPersonIdList.add(casePerson.getId()); |
| | | casePerson.setCaseId(registerSaveDTO.getId()); |
| | | casePerson.setCustId(registerSaveDTO.getCustId()); |
| | |
| | | //绑定当事人小程序 |
| | | this.setPartyUserId(casePerson); |
| | | //添加申请方和被申请方人名组合 |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().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.getIndex().equals(casePerson.getPerType())){ |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) { |
| | | //被申请方 |
| | | if (StringUtils.isNotEmpty(defendants.toString())) { |
| | | defendants.append(BaseConsts.COMMA); |
| | |
| | | } |
| | | |
| | | //判断是否为更新(用原有的Id对比性的Id) |
| | | if(oldPersonIds.contains(casePerson.getId())){ |
| | | if (oldPersonIds.contains(casePerson.getId())) { |
| | | personService.updateById(casePerson); |
| | | }else{ |
| | | } else { |
| | | casePerson.setCreateTime(now); |
| | | personService.save(casePerson); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | if(CollectionUtils.isNotEmpty(agentList)) { |
| | | if (CollectionUtils.isNotEmpty(agentList)) { |
| | | for (CaseAgent caseAgent : agentList) { |
| | | newAgentIdList.add(caseAgent.getId()); |
| | | caseAgent.setCaseId(registerSaveDTO.getId()); |
| | |
| | | caseAgent.setUpdateTime(now); |
| | | //绑定当事人小程序 |
| | | this.setPartyUserId(caseAgent); |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().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.getIndex().equals(caseAgent.getPerType())) { |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) { |
| | | if (StringUtils.isNotEmpty(dagents.toString())) { |
| | | dagents.append(BaseConsts.COMMA); |
| | | } |
| | |
| | | } |
| | | |
| | | //判断是否为更新(用原有的Id对比性的Id) |
| | | if(oldAgentIds.contains(caseAgent.getId())){ |
| | | if (oldAgentIds.contains(caseAgent.getId())) { |
| | | agentService.updateById(caseAgent); |
| | | }else{ |
| | | } else { |
| | | caseAgent.setCreateTime(now); |
| | | agentService.save(caseAgent); |
| | | } |
| | |
| | | for (String oldPersonId : oldPersonIdList) { |
| | | if (!newPersonIdList.contains(oldPersonId)) { |
| | | personService.removeById(oldPersonId); |
| | | }else{ |
| | | } else { |
| | | |
| | | } |
| | | } |
| | | }else{ |
| | | } else { |
| | | QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>(); |
| | | casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); |
| | | personService.remove(casePersonQueryWrapper); |
| | | } |
| | | //删除冗余的代理人 |
| | | if(CollectionUtils.isNotEmpty(newAgentIdList)){ |
| | | for(String oldAgentId: oldAgentIdList){ |
| | | if(!newAgentIdList.contains(oldAgentId)){ |
| | | if (CollectionUtils.isNotEmpty(newAgentIdList)) { |
| | | for (String oldAgentId : oldAgentIdList) { |
| | | if (!newAgentIdList.contains(oldAgentId)) { |
| | | agentService.removeById(oldAgentId); |
| | | } |
| | | } |
| | | }else{ |
| | | } else { |
| | | QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); |
| | | caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); |
| | | agentService.remove(caseAgentQueryWrapper); |
| | |
| | | |
| | | /** |
| | | * PC端-查询纠纷信息 |
| | | * |
| | | * @param caseId 纠纷编号 |
| | | * @return CaseInfo 纠纷信息 |
| | | */ |
| | | public CaseInfoDTO getCaseInfo(String caseId){ |
| | | public CaseInfoDTO getCaseInfo(String caseId) { |
| | | CaseInfo caseInfo = mapper.selectById(caseId); |
| | | CaseInfoDTO caseInfoDTO = new CaseInfoDTO(); |
| | | if (ObjectUtils.isNotEmpty(caseInfo)) { |
| | |
| | | idList.addAll(casePersonList.stream().map(CasePerson::getId).collect(Collectors.toList())); |
| | | idList.addAll(caseAgentList.stream().map(CaseAgent::getId).collect(Collectors.toList())); |
| | | String ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','")); |
| | | ids = "'"+ ids + "'"; |
| | | ids = "'" + ids + "'"; |
| | | Map<String, Object> term = new HashMap<>(); |
| | | term.put("mainId", caseId); |
| | | term.put("ownerIds", ids); |
| | | //查询所有附件 |
| | | List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term); |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(caseId.equals(fileInfo.getOwnerId())){ |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (caseId.equals(fileInfo.getOwnerId())) { |
| | | caseInfoDTO.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | for(CasePerson casePerson: casePersonList){ |
| | | for (CasePerson casePerson : casePersonList) { |
| | | //把附件根据编号放入 |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(casePerson.getId().equals(fileInfo.getOwnerId())){ |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (casePerson.getId().equals(fileInfo.getOwnerId())) { |
| | | casePerson.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | } |
| | | for(CaseAgent caseAgent: caseAgentList){ |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(caseAgent.getId().equals(fileInfo.getOwnerId())){ |
| | | for (CaseAgent caseAgent : caseAgentList) { |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (caseAgent.getId().equals(fileInfo.getOwnerId())) { |
| | | caseAgent.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * PC端-查询纠纷信息 |
| | | * |
| | | * @param caseId 纠纷编号 |
| | | * @return CaseInfo 纠纷信息 |
| | | */ |
| | | public CaseInfoDTO getCaseArchivesInfo(String caseId){ |
| | | public CaseInfoDTO getCaseArchivesInfo(String caseId) { |
| | | CaseInfo caseInfo = mapper.selectById(caseId); |
| | | CaseInfoDTO caseInfoDTO = new CaseInfoDTO(); |
| | | if (ObjectUtils.isNotEmpty(caseInfo)) { |
| | |
| | | idList.addAll(casePersonList.stream().map(CasePerson::getId).collect(Collectors.toList())); |
| | | idList.addAll(caseAgentList.stream().map(CaseAgent::getId).collect(Collectors.toList())); |
| | | String ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','")); |
| | | ids = "'"+ ids + "'"; |
| | | ids = "'" + ids + "'"; |
| | | Map<String, Object> term = new HashMap<>(); |
| | | term.put("mainId", caseId); |
| | | term.put("ownerIds", ids); |
| | | //查询所有附件 |
| | | List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term); |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(caseId.equals(fileInfo.getOwnerId())){ |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (caseId.equals(fileInfo.getOwnerId())) { |
| | | caseInfoDTO.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | for(CasePerson casePerson: casePersonList){ |
| | | for (CasePerson casePerson : casePersonList) { |
| | | //把附件根据编号放入 |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(casePerson.getId().equals(fileInfo.getOwnerId())){ |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (casePerson.getId().equals(fileInfo.getOwnerId())) { |
| | | casePerson.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | } |
| | | for(CaseAgent caseAgent: caseAgentList){ |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(caseAgent.getId().equals(fileInfo.getOwnerId())){ |
| | | for (CaseAgent caseAgent : caseAgentList) { |
| | | for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) { |
| | | if (caseAgent.getId().equals(fileInfo.getOwnerId())) { |
| | | caseAgent.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 绑定当事人小程序 |
| | | * |
| | | * @param casePerson 当事人信息 |
| | | */ |
| | | public void setPartyUserId(CasePerson casePerson) { |
| | |
| | | |
| | | /** |
| | | * 绑定当事人小程序 |
| | | * |
| | | * @param caseAgent 代理人人信息 |
| | | */ |
| | | public void setPartyUserId(CaseAgent caseAgent){ |
| | | public void setPartyUserId(CaseAgent caseAgent) { |
| | | if (StringUtils.isEmpty(caseAgent.getPartyUserId())) { |
| | | if (CaseBaseConstsEnum.CARD_TYPE_1.getIndex().equals(caseAgent.getCertiType())) { |
| | | if (StringUtils.isNotEmpty(caseAgent.getCertiNo())) { |
| | |
| | | |
| | | /** |
| | | * PC端-纠纷登记-保存纠纷信息-正常案件 |
| | | * |
| | | * @param registerSaveDTO 纠纷信息 |
| | | * @param userId 用户编号 |
| | | * @param userId 用户编号 |
| | | * @return String 纠纷编号 |
| | | */ |
| | | public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId){ |
| | | try { |
| | | // 获取当前登录用户 |
| | | PaUserDTO loginUser = custClient.paclientGetUser(userId); |
| | | if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){ |
| | | registerSaveDTO.setCustId(loginUser.getCustId()); |
| | | } |
| | | public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId) { |
| | | // 获取当前登录用户 |
| | | 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()); |
| | | |
| | | // 为了演示先兼容小程序没属地问题,写死属地 |
| | | // caseInfo.setQueProv("19"); |
| | | // caseInfo.setQueProvName("广东"); |
| | | // caseInfo.setQueCity("1601"); |
| | |
| | | // caseInfo.setQueAreaName("白云区"); |
| | | // caseInfo.setQueRoad("62857"); |
| | | // caseInfo.setQueRoadName("新市街道"); |
| | | // 根据经纬度查询问题属地 |
| | | QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat()); |
| | | log.info("xsdqueAddrBaseDTO:{}", queAddrBaseDTO); |
| | | 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()); |
| | | log.info("xsdcaseInfo:{}", caseInfo); |
| | | 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(); |
| | | } |
| | | |
| | | /** |
| | | * 生成调解案件标题 |
| | | * @param plaintiffs 申请人 |
| | | * @param defendants 被申请人 |
| | | * |
| | | * @param plaintiffs 申请人 |
| | | * @param defendants 被申请人 |
| | | * @param caseTypeName 纠纷类型 |
| | | * @return String |
| | | */ |
| | | public String createCaseTitle(String plaintiffs, String defendants, String caseTypeName){ |
| | | public String createCaseTitle(String plaintiffs, String defendants, String caseTypeName) { |
| | | StringBuffer caseTitle = new StringBuffer(); |
| | | if (plaintiffs.indexOf(BaseConsts.COMMA) != -1){ |
| | | if (plaintiffs.indexOf(BaseConsts.COMMA) != -1) { |
| | | caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]).append("等"); |
| | | }else { |
| | | } else { |
| | | caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]); |
| | | } |
| | | if (StringUtils.isNotEmpty(defendants)) { |
| | |
| | | } |
| | | } |
| | | caseTitle.append("的"); |
| | | if (StringUtils.isNotEmpty(caseTypeName)){ |
| | | if (StringUtils.isNotEmpty(caseTypeName)) { |
| | | caseTitle.append(caseTypeName); |
| | | } |
| | | caseTitle.append("案件"); |
| | |
| | | |
| | | /** |
| | | * pc端-常规登记-保存正式案件-保存人员信息 |
| | | * |
| | | * @param registerSaveDTO 纠纷信息 |
| | | * @param plaintiffs 申请人 |
| | | * @param pagents 申请人代理人 |
| | | * @param defendants 被申请人 |
| | | * @param dagents 被申请人代理人 |
| | | * @param plaintiffs 申请人 |
| | | * @param pagents 申请人代理人 |
| | | * @param defendants 被申请人 |
| | | * @param dagents 被申请人代理人 |
| | | * @return int |
| | | */ |
| | | private int saveCasePersonWechat(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, |
| | | StringBuffer defendants, StringBuffer dagents,PaUserDTO loginUser){ |
| | | StringBuffer defendants, StringBuffer dagents, PaUserDTO loginUser) { |
| | | int peopleNum = 0; |
| | | // 保存申请人 |
| | | List<CasePerson> personList = registerSaveDTO.getPersonList(); |
| | |
| | | personService.saveOrUpdate(casePerson); |
| | | |
| | | //添加申请方和被申请方人名组合 |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().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.getIndex().equals(casePerson.getPerType())){ |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) { |
| | | //被申请方 |
| | | if (StringUtils.isNotEmpty(defendants.toString())) { |
| | | defendants.append(BaseConsts.COMMA); |
| | |
| | | //保存代理人 |
| | | List<CaseAgent> agentList = registerSaveDTO.getAgentList(); |
| | | if (CollectionUtils.isNotEmpty(agentList)) { |
| | | for(CaseAgent caseAgent: agentList){ |
| | | for (CaseAgent caseAgent : agentList) { |
| | | caseAgent.setId(utilsClient.getNewTimeCaseId()); |
| | | caseAgent.setPartyUserId(loginUser.getId()); |
| | | caseAgent.setCaseId(registerSaveDTO.getId()); |
| | |
| | | caseAgent.setCreateTime(registerSaveDTO.getUpdateTime()); |
| | | caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime()); |
| | | agentService.saveOrUpdate(caseAgent); |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().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.getIndex().equals(caseAgent.getPerType())){ |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) { |
| | | if (StringUtils.isNotEmpty(dagents.toString())) { |
| | | dagents.append(BaseConsts.COMMA); |
| | | } |
| | |
| | | return peopleNum; |
| | | } |
| | | |
| | | public RegisterSaveDTO getCaseInfoWechat(String id){ |
| | | public RegisterSaveDTO getCaseInfoWechat(String id) { |
| | | RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO(); |
| | | CaseInfo caseInfo = this.getById(id); |
| | | if(ObjectUtils.isNotEmpty(caseInfo)){ |
| | | if (ObjectUtils.isNotEmpty(caseInfo)) { |
| | | BeanUtils.copyProperties(caseInfo, registerSaveDTO); |
| | | } |
| | | QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>(); |
| | | casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); |
| | | List<CasePerson> personList = personService.list(casePersonQueryWrapper); |
| | | List<CasePerson> personList = personService.list(casePersonQueryWrapper); |
| | | registerSaveDTO.setPersonList(personList); |
| | | |
| | | QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); |
| | |
| | | |
| | | /** |
| | | * 按条件分页查询-小程序查询 |
| | | * @param page 分页对象 |
| | | * |
| | | * @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)){ |
| | | String personType = terms.get("personType") + ""; |
| | | if (ObjectUtils.isEmpty(personType)) { |
| | | throw new RuntimeException("请选择人员类型"); |
| | | } |
| | | if(ObjectUtils.isEmpty(loginUser.getIdcard())){ |
| | | if (ObjectUtils.isEmpty(loginUser.getIdcard())) { |
| | | return new PageImpl<CaseInfoWeChatDTO>(list, page, 0); |
| | | } |
| | | QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>(); |
| | | personWrapper.select("case_id"); |
| | | personWrapper.eq("certi_no", loginUser.getIdcard()); |
| | | if("1".equals(personType)){ |
| | | personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); |
| | | }else { |
| | | personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_2.getIndex()); |
| | | if ("1".equals(personType)) { |
| | | personWrapper.eq("per_type", CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); |
| | | } else { |
| | | personWrapper.eq("per_type", CaseBaseConstsEnum.PERSON_TYPE_2.getIndex()); |
| | | } |
| | | List<CasePerson> casePersonList = personService.list(personWrapper); |
| | | if(ObjectUtils.isEmpty(casePersonList)){ |
| | | if (ObjectUtils.isEmpty(casePersonList)) { |
| | | return new PageImpl<CaseInfoWeChatDTO>(list, page, 0); |
| | | } |
| | | List<String> ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList()); |
| | | terms.put("ids",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){ |
| | | if (ObjectUtils.isNotEmpty(content)) { |
| | | for (CaseInfo caseInfo : content) { |
| | | CaseInfoWeChatDTO caseInfoWeChatDTO = new CaseInfoWeChatDTO(); |
| | | BeanUtils.copyProperties(caseInfo, caseInfoWeChatDTO); |
| | | caseInfoWeChatDTO.setProcessStatus(caseInfo.getInfoProcess()); |
| | | caseInfoWeChatDTO.setProcessStatusName(caseInfo.getInfoProcessName()); |
| | | //扩展信息 |
| | | CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseInfo.getId()); |
| | | if(ObjectUtils.isNotEmpty(caseInfoUnfold)){ |
| | | 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<>(); |
| | |
| | | for (CasePerson casePerson : casePersonList1) { |
| | | CasePersonWechatDTO casePersonWechatDTO = new CasePersonWechatDTO(); |
| | | BeanUtils.copyProperties(casePerson, casePersonWechatDTO); |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ |
| | | if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) { |
| | | plaintiffList.add(casePersonWechatDTO); |
| | | }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) { |
| | | defendantList.add(casePersonWechatDTO); |
| | | } |
| | | } |
| | |
| | | evaluateTerms.put("deleteStatus", BaseConsts.DELETE_STATUS_0); |
| | | evaluateTerms.put("evaluateUserId", loginUser.getId()); |
| | | long evaluateCount = caseEvaluateService.countTerms(evaluateTerms); |
| | | if(evaluateCount > 0){ |
| | | if (evaluateCount > 0) { |
| | | caseInfoWeChatDTO.setIsEvaluate("1"); |
| | | }else{ |
| | | } else { |
| | | caseInfoWeChatDTO.setIsEvaluate("0"); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 按条件分页查询-综合查询 |
| | | * @param page 分页对象 |
| | | * |
| | | * @param page 分页对象 |
| | | * @param terms 条件 |
| | | * @return Page |
| | | */ |
| | | public Page<CasePageDTO> pageQueryAll(PageRequest page, Map<String, Object> terms){ |
| | | 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)){ |
| | | if (ObjectUtils.isNotEmpty(content)) { |
| | | for (CasePageDTO casePageDTO : content) { |
| | | QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); |
| | | personWrapper1.eq("case_id", casePageDTO.getId()); |
| | |
| | | for (CasePerson casePerson : casePersonList1) { |
| | | CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO(); |
| | | BeanUtils.copyProperties(casePerson, casePersonWechatDTO); |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ |
| | | if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) { |
| | | plaintiffList.add(casePersonWechatDTO); |
| | | }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ |
| | | } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) { |
| | | defendantList.add(casePersonWechatDTO); |
| | | } |
| | | } |
| | |
| | | } |
| | | return new PageImpl<CasePageDTO>(content, page, total); |
| | | } |
| | | |
| | | public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException { |
| | | //基础数据统计 |
| | | CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms); |
| | | Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum())+ dellNull(caseStatisticsBaseDTO.getResolveingNum()); |
| | | caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum()*100, baseTotalNum,1)); |
| | | caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum()*100, baseTotalNum,1)); |
| | | caseStatisticsBaseDTO.setResolveingRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveingNum()*100, baseTotalNum,1)); |
| | | Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum(); |
| | | caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum()*100, levelTotalNum,1)); |
| | | caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum()*100, levelTotalNum,1)); |
| | | caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum()*100, levelTotalNum,1)); |
| | | //区域数据统计 |
| | | terms.put("isArea","1"); |
| | | List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms); |
| | | if(ObjectUtils.isEmpty(caseStatisticsAreaDTOS)){ |
| | | caseStatisticsAreaDTOS = new ArrayList<>(); |
| | | } |
| | | CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO(); |
| | | allArea.setAreaName("本级"); |
| | | allArea.setAreaCode("1"); |
| | | List<String> areaCodeList = new ArrayList<>(); |
| | | for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { |
| | | allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum())); |
| | | allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum())); |
| | | allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum())); |
| | | allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum())); |
| | | areaCodeList.add(caseStatisticsAreaDTO.getAreaCode()); |
| | | } |
| | | caseStatisticsAreaDTOS.add(allArea); |
| | | List<CaseAreaDTO> queArea = listAreaByType(terms.get("areaType"), terms.get("queArea")); |
| | | log.info("listAreaByType {}",JSON.toJSONString(queArea)); |
| | | for (CaseAreaDTO caseAreaDTO : queArea) { |
| | | if(!areaCodeList.contains(caseAreaDTO.getAreaCode())){ |
| | | CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO(); |
| | | areaChild.setAreaCode(caseAreaDTO.getAreaCode()); |
| | | areaChild.setAreaName(caseAreaDTO.getAreaName()); |
| | | areaChild.setCaseNum(0); |
| | | areaChild.setResolveNum(0); |
| | | areaChild.setUnResolveNum(0); |
| | | areaChild.setResolveingNum(0); |
| | | caseStatisticsAreaDTOS.add(areaChild); |
| | | } |
| | | } |
| | | |
| | | if(ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)){ |
| | | sortArea(caseStatisticsAreaDTOS); |
| | | } |
| | | caseStatisticsBaseDTO.setAreaList(caseStatisticsAreaDTOS); |
| | | terms.remove("isArea"); |
| | | //纠纷类型统计 |
| | | List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms); |
| | | if(ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)){ |
| | | sortType(caseStatisticsTypeDTOS); |
| | | } |
| | | Integer typeTotalNum = 0; |
| | | Integer otherCaseNum = 0; |
| | | int i = 1; |
| | | List<CaseStatisticsTypeDTO> typeList = new ArrayList<>(); |
| | | for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { |
| | | typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); |
| | | if(i > 5){ |
| | | otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); |
| | | }else{ |
| | | typeList.add(caseStatisticsTypeDTO); |
| | | } |
| | | i++; |
| | | } |
| | | for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { |
| | | caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1)); |
| | | } |
| | | CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); |
| | | caseStatisticsTypeDTO.setCaseTypeName("其他"); |
| | | caseStatisticsTypeDTO.setCaseNum(otherCaseNum); |
| | | caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1)); |
| | | typeList.add(caseStatisticsTypeDTO); |
| | | caseStatisticsBaseDTO.setTypeList(typeList); |
| | | //事项来源 |
| | | terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_1.getIndex()); |
| | | CaseStatisticsSourceDTO oneSource = mapper.statisticsSource(terms); |
| | | oneSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes()); |
| | | terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_2.getIndex()); |
| | | CaseStatisticsSourceDTO twoSource = mapper.statisticsSource(terms); |
| | | twoSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes()); |
| | | |
| | | Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(oneSource.getCaseNum()); |
| | | oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum()*100, sourceTotalNum,1)); |
| | | oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum()*100, oneSource.getCaseNum(),1)); |
| | | twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum()*100, sourceTotalNum,1)); |
| | | twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum()*100, twoSource.getCaseNum(),1)); |
| | | |
| | | CaseStatisticsSourceDTO threeSource = new CaseStatisticsSourceDTO(); |
| | | threeSource.setCanalName("自行排查"); |
| | | threeSource.setResolveRate("0"); |
| | | threeSource.setCaseRate("0"); |
| | | CaseStatisticsSourceDTO fourSource = new CaseStatisticsSourceDTO(); |
| | | fourSource.setCanalName("协同推送"); |
| | | fourSource.setResolveRate("0"); |
| | | fourSource.setCaseRate("0"); |
| | | caseStatisticsBaseDTO.setOneSource(oneSource); |
| | | caseStatisticsBaseDTO.setTwoSource(twoSource); |
| | | caseStatisticsBaseDTO.setThreeSource(threeSource); |
| | | caseStatisticsBaseDTO.setFourSource(fourSource); |
| | | |
| | | //案件集合 |
| | | Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time"); |
| | | PageRequest pageRequest = PageRequest.of(0, 5, sort); |
| | | Page<CasePageDTO> casePageDTOS = pageQueryAll(pageRequest, terms); |
| | | if(ObjectUtils.isNotEmpty(casePageDTOS.getContent())){ |
| | | caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent()); |
| | | }else{ |
| | | caseStatisticsBaseDTO.setCaseList(new ArrayList<>()); |
| | | } |
| | | return caseStatisticsBaseDTO; |
| | | } |
| | | |
| | | public List<CaseStatisticsTypeDTO> sortType(List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS){ |
| | | caseStatisticsTypeDTOS.sort((o1, o2)->{ |
| | | Integer totalScore1 = o1.getCaseNum(); |
| | | Integer totalScore2 = o2.getCaseNum(); |
| | | if(totalScore1 < totalScore2) { |
| | | return 1; |
| | | }else if (totalScore1.equals(totalScore2)){ |
| | | return 0; |
| | | }else{ |
| | | return -1; |
| | | } |
| | | }); |
| | | return caseStatisticsTypeDTOS; |
| | | } |
| | | |
| | | public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS){ |
| | | caseStatisticsAreaDTOS.sort((o1, o2)->{ |
| | | Integer totalScore1 = Integer.valueOf(o1.getAreaCode()); |
| | | Integer totalScore2 = Integer.valueOf(o2.getAreaCode()); |
| | | if(totalScore1 > totalScore2) { |
| | | return 1; |
| | | }else if (totalScore1.equals(totalScore2)){ |
| | | return 0; |
| | | }else{ |
| | | return -1; |
| | | } |
| | | }); |
| | | return caseStatisticsAreaDTOS; |
| | | } |
| | | |
| | | public Integer dellNull(Integer number){ |
| | | if(ObjectUtils.isEmpty(number)){ |
| | | return 0; |
| | | } |
| | | return number; |
| | | } |
| | | |
| | | /** |
| | | * 根据json文件获取区域信息 |
| | | * */ |
| | | public CaseAreaDTO getArea() throws IOException { |
| | | Class<?> clazz = CaseAreaDTO.class; |
| | | String path = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | File file = new File(path+ "cn"+File.separator+"huge"+File.separator+"module"+File.separator+"cases"+File.separator+"domain"+File.separator+"json"+File.separator+"Area.json"); |
| | | CaseAreaDTO obj = mapper.readValue(file, CaseAreaDTO.class); |
| | | return obj; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据不同的等级获取不同区域子集合 |
| | | * @param areaType 1-市级 2-区 |
| | | * */ |
| | | public List<CaseAreaDTO> listAreaByType(Object areaType,Object areaCode) throws IOException { |
| | | log.info("listAreaByType {},{}",areaType,areaCode); |
| | | CaseAreaDTO area = getArea(); |
| | | log.info("listAreaByType area {}",JSON.toJSONString(area)); |
| | | if(ObjectUtils.isEmpty(areaType) || areaType.equals("") || areaType.equals("1")){ |
| | | return area.getChildren(); |
| | | } |
| | | if(areaType.equals("2")){ |
| | | List<CaseAreaDTO> children = area.getChildren(); |
| | | for (CaseAreaDTO child : children) { |
| | | if(child.getAreaCode().equals(areaCode)){ |
| | | return child.getChildren(); |
| | | } |
| | | } |
| | | } |
| | | return new ArrayList<>(); |
| | | } |
| | | } |