From b0a34952a61975657bd3a2386fe38047c4e03723 Mon Sep 17 00:00:00 2001 From: zhouxiantao <1026371446@qq.com> Date: Fri, 27 Sep 2024 09:24:56 +0800 Subject: [PATCH] 小程序催办 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonBO.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseUrgingWechatController.java | 34 ++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAgent.java | 11 +++ dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/controller/wechat/SyregionWechatController.java | 14 ++-- dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java | 13 ++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/RegisterSaveDTO.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CasePerson.java | 6 ++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 22 +++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseUrgingService.java | 40 +++++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAgentBO.java | 2 10 files changed, 133 insertions(+), 13 deletions(-) diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java index f9fa79c..0df7ea2 100644 --- a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/DateUtils.java @@ -971,6 +971,19 @@ } return year+"年"+month+"月"+day+"日"; } + + /** + * 获取两个时间的小时差 + * */ + public static Integer getDifferHour(Date time1,Date time2){ + if(ObjectUtils.isNotEmpty(time1) && ObjectUtils.isNotEmpty(time2)){ + long housrs = 1000 * 60 * 60; + long differ = time1.getTime() - time2.getTime(); + long housr = differ / housrs; + return Integer.valueOf(String.valueOf(housr)); + } + return 0; + } } /** * -------------------_ooOoo_------------------- diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseUrgingWechatController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseUrgingWechatController.java index 3a4ffb7..f8430e6 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseUrgingWechatController.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseUrgingWechatController.java @@ -194,12 +194,42 @@ @PostMapping("/saveCaseUrging") public Object saveCaseUrging(@CurrentUser String userId, @RequestBody CaseUrging caseUrging) { try { - service.saveCaseUrgingWechat(userId,caseUrging); - return ReturnSucUtils.getRepInfo(); + return ReturnSucUtils.getRepInfo(service.saveCaseUrgingWechat(userId, caseUrging)); } catch (Exception e) { log.error("Controller接口[CaseUrgingWechatController.saveCaseUrging]请求异常:"+e, e); return ReturnFailUtils.getRepInfo(); } } + /** + * 根据编号查询单个 + * @url {ctx}/api/wechat/caseUrging/countByCaseId + * @param caseId 主键编号 + * @return Object + */ + @GetMapping("/countByCaseId") + public Object countByCaseId(@RequestParam(value = "caseId") String caseId) { + try { + return ReturnSucUtils.getRepInfo(service.countByCaseId(caseId)); + } catch (Exception e) { + log.error("Controller接口[CaseUrgingWechatController.countByCaseId]请求异常:"+e, e); + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 根据编号查询单个 + * @url {ctx}/api/wechat/caseUrging/listByCaseId + * @param caseId 主键编号 + * @return Object + */ + @GetMapping("/listByCaseId") + public Object listByCaseId(@RequestParam(value = "caseId") String caseId) { + try { + return ReturnSucUtils.getRepInfo(service.listByCaseId(caseId)); + } catch (Exception e) { + log.error("Controller接口[CaseUrgingWechatController.listByCaseId]请求异常:"+e, e); + return ReturnFailUtils.getRepInfo(); + } + } } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAgentBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAgentBO.java index 3810681..05f2310 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAgentBO.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CaseAgentBO.java @@ -1,6 +1,7 @@ package cn.huge.module.cases.domain.bo; import cn.huge.module.cases.domain.po.CaseAgent; +import lombok.Data; /** * @title: 纠纷代理人信息表业务扩展类 @@ -12,6 +13,5 @@ * @see cn.huge.module.cases.domain.po.CaseAgent */ public class CaseAgentBO extends CaseAgent { - } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonBO.java index 1d1f430..2ed1a72 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonBO.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonBO.java @@ -1,6 +1,7 @@ package cn.huge.module.cases.domain.bo; import cn.huge.module.cases.domain.po.CasePerson; +import lombok.Data; /** * @title: 纠纷当事人信息表业务扩展类 @@ -12,6 +13,5 @@ * @see cn.huge.module.cases.domain.po.CasePerson */ public class CasePersonBO extends CasePerson { - } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/RegisterSaveDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/RegisterSaveDTO.java index c74f4ed..2369471 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/RegisterSaveDTO.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/RegisterSaveDTO.java @@ -1,5 +1,7 @@ package cn.huge.module.cases.domain.dto; +import cn.huge.module.cases.domain.bo.CaseAgentBO; +import cn.huge.module.cases.domain.bo.CasePersonBO; import cn.huge.module.cases.domain.po.CaseAgent; import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.cases.domain.po.CasePerson; diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAgent.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAgent.java index 8e178d8..c77e601 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAgent.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseAgent.java @@ -359,4 +359,15 @@ @TableField(exist = false) private List<FileTypeInfoBaseDTO> fileInfoList; + /** + * 用于小程序新增关联代理人 + */ + @TableField(exist = false) + private String agentCode; + + /** + * 代理对象姓名 + */ + @TableField(exist = false) + private String agentPersonName; } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CasePerson.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CasePerson.java index 863302a..01d8e3b 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CasePerson.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CasePerson.java @@ -364,4 +364,10 @@ */ @TableField(exist = false) private List<FileTypeInfoBaseDTO> fileInfoList; + + /** + * 用于小程序新增关联代理人 + */ + @TableField(exist = false) + private String agentCode; } 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 953dec4..0c2908c 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 @@ -2,6 +2,8 @@ import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.*; +import cn.huge.module.cases.domain.bo.CaseAgentBO; +import cn.huge.module.cases.domain.bo.CasePersonBO; import cn.huge.module.cases.domain.dto.*; import cn.huge.module.cases.domain.dto.CaseAreaDTO; @@ -678,6 +680,9 @@ // 临时加上一级纠纷类型 caseInfo.setCaseTypeFirst("24_01-2"); caseInfo.setCaseTypeFirstName("劳动社保"); + //小程序是否查看 + caseInfo.setPartyShow(1); + this.saveOrUpdate(caseInfo); caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold); @@ -732,9 +737,12 @@ int peopleNum = 0; // 保存申请人 List<CasePerson> personList = registerSaveDTO.getPersonList(); + Map<String,String> personIdMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { - casePerson.setId(utilsClient.getNewTimeCaseId()); + String newTimeCaseId = utilsClient.getNewTimeCaseId(); + personIdMap.put(casePerson.getAgentCode(), newTimeCaseId); + casePerson.setId(newTimeCaseId); casePerson.setCaseId(registerSaveDTO.getId()); casePerson.setPartyUserId(loginUser.getId()); casePerson.setCustId(registerSaveDTO.getCustId()); @@ -765,6 +773,7 @@ if (CollectionUtils.isNotEmpty(agentList)) { for (CaseAgent caseAgent : agentList) { caseAgent.setId(utilsClient.getNewTimeCaseId()); + caseAgent.setPersonId(personIdMap.get(caseAgent.getAgentCode())); caseAgent.setPartyUserId(loginUser.getId()); caseAgent.setCaseId(registerSaveDTO.getId()); caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType())); @@ -800,11 +809,22 @@ QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>(); casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); List<CasePerson> personList = personService.list(casePersonQueryWrapper); + Map<String,String> personNameMap = new HashMap<>(); + if(ObjectUtils.isNotEmpty(personList)){ + for (CasePerson casePerson : personList) { + personNameMap.put(casePerson.getId(),casePerson.getTrueName()); + } + } registerSaveDTO.setPersonList(personList); QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); List<CaseAgent> agentList = agentService.list(caseAgentQueryWrapper); + if(ObjectUtils.isNotEmpty(agentList)){ + for (CaseAgent caseAgent : agentList) { + caseAgent.setAgentPersonName(personNameMap.get(caseAgent.getPersonId())); + } + } registerSaveDTO.setAgentList(agentList); return registerSaveDTO; diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseUrgingService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseUrgingService.java index 973c63c..bc54b3a 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseUrgingService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseUrgingService.java @@ -3,11 +3,13 @@ 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.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseUrgingMapper; import cn.huge.module.cases.domain.po.CaseUrging; import cn.huge.module.cust.dto.PaUserDTO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -139,8 +141,22 @@ * 新增或更新对象 * @param caseUrging 实体对象 */ - public void saveCaseUrgingWechat(String userId,CaseUrging caseUrging){ + public String saveCaseUrgingWechat(String userId,CaseUrging caseUrging){ try{ + //查询是否已经有催办 + QueryWrapper<CaseUrging> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("case_id", caseUrging.getCaseId()); + queryWrapper.orderByDesc("create_time"); + queryWrapper.last("limit 1"); + CaseUrging caseUrgingOld = mapper.selectOne(queryWrapper); + if(ObjectUtils.isNotEmpty(caseUrgingOld)){ + //计算创建时间和当前时间是否超过24小时 + Integer differHour = DateUtils.getDifferHour(new Date(), caseUrgingOld.getCreateTime()); + if(differHour < 24){ + return "催办间隔时间不能小于24小时"; + } + } + // 获取当前登录用户 PaUserDTO loginUser = custClient.paclientGetUser(userId); Date nowDate = DateUtils.getNowDate(); @@ -159,6 +175,28 @@ log.error("[CaseUrgingService.saveCaseUrging]调用失败,异常信息:"+e, e); throw new ServiceException("CaseUrgingService.saveCaseUrging", e); } + return null; + } + + public Integer countByCaseId(String caseId){ + Integer count = 0; + QueryWrapper<CaseUrging> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("case_id", caseId); + queryWrapper.isNotNull("reply_user_id"); + Integer number = mapper.selectCount(queryWrapper); + if(ObjectUtils.isNotEmpty(number)){ + count = number; + } + return count; + } + + public List<CaseUrging> listByCaseId(String caseId){ + QueryWrapper<CaseUrging> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("case_id", caseId); + queryWrapper.isNotNull("reply_user_id"); + queryWrapper.orderByDesc("reply_time"); + List<CaseUrging> caseUrgings = mapper.selectList(queryWrapper); + return caseUrgings; } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/controller/wechat/SyregionWechatController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/controller/wechat/SyregionWechatController.java index 498a1b7..b7b0228 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/controller/wechat/SyregionWechatController.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/controller/wechat/SyregionWechatController.java @@ -1,9 +1,7 @@ package cn.huge.module.kind.controller.wechat; import cn.huge.base.common.constant.GzAreaEnum; -import cn.huge.base.common.utils.ObjectUtils; -import cn.huge.base.common.utils.ReturnFailUtils; -import cn.huge.base.common.utils.ReturnSucUtils; +import cn.huge.base.common.utils.*; import cn.huge.module.kind.domain.po.SyRegion; import cn.huge.module.kind.service.SyRegionService; import cn.huge.module.sys.dto.QueAddrBaseDTO; @@ -48,7 +46,9 @@ @GetMapping("/checkRegisterArea") public Object checkRegisterArea(@RequestParam(value = "lng") String lng, @RequestParam(value = "lat") String lat) { try { - BaiduMapAddrDTO baiduMapAddrDTO = BaiduMapUtils.getAddrByLngLat(lng, lat, BaiduMapUtils.coordtype_bd09ll); + //经纬度转换 + PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(lng), Double.valueOf(lat)); + BaiduMapAddrDTO baiduMapAddrDTO = BaiduMapUtils.getAddrByLngLat(String.valueOf(pointXY.getLon()), String.valueOf(pointXY.getLat()), BaiduMapUtils.coordtype_bd09ll); QueryWrapper<SyRegion> syRegionQueryWrapper = new QueryWrapper<>(); // 查询区 syRegionQueryWrapper.clear(); @@ -56,12 +56,12 @@ SyRegion district = service.getOne(syRegionQueryWrapper); if (ObjectUtils.isNotEmpty(district)) { if (GzAreaEnum.GZAREAEnum_7.getIndex().equals(district.getId())) { - return ReturnSucUtils.getRepInfo(); + return ReturnSucUtils.getRepInfo(true); } else { - return ReturnSucUtils.getRepInfo(200, "反映诉求服务目前仅支持纠纷发生地为白云区内的申请。", null); + return ReturnSucUtils.getRepInfo("反映诉求服务目前仅支持纠纷发生地为白云区内的申请。", false); } }else { - return ReturnSucUtils.getRepInfo(200, "反映诉求服务目前仅支持纠纷发生地为白云区内的申请。", null); + return ReturnSucUtils.getRepInfo("反映诉求服务目前仅支持纠纷发生地为白云区内的申请。", false); } } catch (Exception e) { return ReturnFailUtils.getRepInfo(); -- Gitblit v1.8.0