From e9de6064cc94d6bc63685c5e62046ff810b96dab Mon Sep 17 00:00:00 2001 From: xusd <330628789@qq.com> Date: Sat, 05 Jul 2025 17:17:52 +0800 Subject: [PATCH] Merge branch 'gzdyh_prod' --- dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtAccount.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java | 22 + dyh-service/dyh-sys/src/main/resources/config/application-prod.yml | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java | 34 ++ dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java | 38 ++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml | 10 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 28 + dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java | 10 dyh-service/dyh-mediate/src/main/java/cn/huge/module/ai/service/AiCaseClassService.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java | 3 sql/20250704.sql | 75 +++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 67 ++--- dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/SaveEventFeedBackVo.java | 79 ++++++ dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java | 183 +++++++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java | 101 +++++++ dyh-service/dyh-sys/src/main/resources/config/application-test.yml | 2 dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java | 1 dyh-service/dyh-sys/src/main/resources/config/application.yml | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java | 24 + dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java | 11 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/vo/SaveEventFeedBackVo.java | 74 +++++ 22 files changed, 706 insertions(+), 66 deletions(-) diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java index b88301f..7d57172 100644 --- a/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java @@ -6,6 +6,7 @@ GRID_OBJECT_TYPE_3("13", "待受理矛调工单"), GRID_OBJECT_TYPE_4("14", "待审核矛调工单"), GRID_TODO_TYPE_5("5", "矛盾纠纷"), + GRID_TODO_TYPE_6("6", "专项治理"), /** * 网格通知类型,1:待分派,2:待受理,3:化解中,4:已结案,5:已归档,6:不予受理 diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtAccount.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtAccount.java index c2fb05a..369a37d 100644 --- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtAccount.java +++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/po/CtAccount.java @@ -98,5 +98,7 @@ */ @TableField(value = "update_time") private Date updateTime; + @TableField(value = "pwd_error_count") + private Integer pwdErrorCount; } diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java index fdfaf67..6fd2eb4 100644 --- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java +++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java @@ -29,10 +29,7 @@ import javax.annotation.Resource; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author liyj @@ -201,7 +198,7 @@ public Boolean checkCredential(String cipher, CtAccount ctAccount) { String credentialMd5 = DigestUtils.md5DigestAsHex(cipher.getBytes()); log.info("xsd:{}", credentialMd5); - if (StringUtils.equals(credentialMd5, ctAccount.getCipher())) { + if (StringUtils.equals(cipher, ctAccount.getCipher())) { return true; } else { // SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -235,9 +232,9 @@ // 判断账号是否存在 CtAccount ctAccount = this.getByAccAndType(ctAccountLoginDTO.getAcc(), UserBaseConsts.ACC_TYPE_1); if (ObjectUtils.isNotEmpty(ctAccount)) { + Date nowDate = new Date(); // 判断账号是否被锁定 if (ObjectUtils.isNotEmpty(ctAccount.getLimitTime())) { - Date nowDate = new Date(); if (nowDate.before(ctAccount.getLimitTime())) { SimpleDateFormat sdf = new SimpleDateFormat("HH点mm分"); return ReturnFailUtils.getRepInfo("账号已锁定,请于" + sdf.format(ctAccount.getLimitTime()) + "后重试,或者请联系管理员解锁!"); @@ -245,6 +242,13 @@ } // 判断密码是否正确 if (checkCredential(ctAccountLoginDTO.getCipher(), ctAccount)) { + // 密码正确:重置错误次数 + UpdateWrapper<CtAccount> resetPwdErr = new UpdateWrapper<>(); + resetPwdErr.set("pwd_error_count", 0) + .set("limit_time", null) + .set("login_time", DateUtils.getNowDate()) + .eq("id", ctAccount.getId()); + this.update(resetPwdErr); //返回结果 UserLoginDTO userLoginDTO = new UserLoginDTO(); CtUser ctUser = ctUserService.getById(ctAccount.getUserId()); @@ -307,7 +311,25 @@ this.update(accountUpdateWrapper); return ReturnSucUtils.getRepInfo(userLoginDTO); } else { - return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!"); + // 密码错误:增加错误次数,必要时冻结 + int currentErrCount = ctAccount.getPwdErrorCount() == null ? 0 : ctAccount.getPwdErrorCount(); + currentErrCount++; + + UpdateWrapper<CtAccount> updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("pwd_error_count", currentErrCount).eq("id", ctAccount.getId()); + + if (currentErrCount >= 5) { + // 冻结5分钟 + Calendar cal = Calendar.getInstance(); + cal.setTime(nowDate); + cal.add(Calendar.MINUTE, 5); + updateWrapper.set("limit_time", cal.getTime()); + this.update(updateWrapper); + return ReturnFailUtils.getRepInfo("密码错误已达5次,账号已锁定5分钟,请稍后再试!"); + } else { + this.update(updateWrapper); + return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!(" + currentErrCount + "/5)"); + } } } else { return ReturnFailUtils.getRepInfo("账号或密码错误,请确认后重试!"); @@ -497,8 +519,10 @@ CtUnit ctUnit = ctUnitService.selectUnitByGridId(userRoleDTO.getOrgId()); if (ctUnit != null) { userLoginDTO.setUnit(ctUnit.getUnitName()); + userLoginDTO.setUnitType(ctUnit.getUnitType()); ctUser.setUnitName(ctUnit.getUnitName()); ctUser.setUnitId(ctUnit.getId()); + ctUserService.updateCtUser(ctUser); } else { int grade = userRoleDTO.getGrade() - 1; diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/ai/service/AiCaseClassService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/ai/service/AiCaseClassService.java index f12442f..87d6283 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/ai/service/AiCaseClassService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/ai/service/AiCaseClassService.java @@ -465,7 +465,7 @@ if (riskResult != null && riskResult.getIsRiskAi() != null) { try { int riskLevel = Integer.parseInt(riskResult.getIsRiskAi()); - if (riskLevel > 3) { + if (riskLevel > 4) { CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); caseInfoUnfold.setIsRisk(IS_RISK_STATUS_1); Map<String, Object> caseInfoUnfoldTerms = new HashMap<>(); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java index b15d77a..a47be43 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java @@ -13,6 +13,7 @@ import cn.huge.module.cust.dto.CtUserDTO; import com.google.common.collect.Maps; import dm.jdbc.util.StringUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -22,10 +23,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -573,12 +571,32 @@ terms.put("caseStatus", caseStatus); } if(StringUtils.isNotBlank(regionCode) && StringUtils.isNotBlank(regionName)){ - if(regionName.matches(".*市")){ - terms.put("queCity", regionCode); + if(regionName.matches(".*社区") || regionName.matches(".*村")){ + terms.put("queVillage", regionCode); + }else if(regionName.matches(".*街道") || regionName.matches(".*街") || regionName.matches(".*镇")){ + terms.put("queRoad", regionCode); }else if(regionName.matches(".*区")){ terms.put("queArea", regionCode); - }else if(regionName.contains("街道") || regionName.matches(".*街") || regionName.matches(".*镇")){ - terms.put("queRoad", regionCode); + }else if(regionName.matches(".*市")){ + terms.put("queCity", regionCode); + }else if(regionName.matches("本级")){ + //把regionCode根据#分割成数组 + String[] regionCodeArr = regionCode.split("#"); + if(CollectionUtils.isNotEmpty(Arrays.asList(regionCodeArr))){ + terms.put(regionCodeArr[0], regionCodeArr[1]); + if(StringUtils.isNotBlank(regionName)){ + if(terms.containsKey("queRoad")){ + terms.put("unitGrade", "3"); + }else if(terms.containsKey("queArea")){ + terms.put("unitGrade", "2"); + }else if(terms.containsKey("queCity")){ + terms.put("unitGrade", "1"); + } + + } + } + + } } Sort sort = Sort.by(Sort.Direction.DESC, "t3.create_time"); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml index 41c8515..a9a6712 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/dao/mapper/xml/AnalysisMapper.xml @@ -1368,6 +1368,10 @@ level = 3 and parent_id = #{terms.queArea} </if> + <if test="terms.queRoad != null and terms.queRoad !=''"> + level = 4 + and parent_id = #{terms.queRoad} + </if> ORDER BY level ASC,create_time ASC </select> @@ -1451,6 +1455,9 @@ and t4.handle_result = 3 and t4.node_id in ('ZJ_DFP', 'QJ_DFP', 'SJ_DFP', 'DFP', 'QJ_DSL', 'SJ_DSL', 'DSL', 'ZJ_DSL') </if> + <if test="terms.unitGrade != null and terms.unitGrade !=''"> + and t1.unit_grade = #{terms.unitGrade} + </if> <include refid="statisticsCirculation-wherePart"/> </select> @@ -1497,6 +1504,9 @@ and t4.handle_result = 3 and t4.node_id in ('ZJ_DFP', 'QJ_DFP', 'SJ_DFP', 'DFP', 'QJ_DSL', 'SJ_DSL', 'DSL', 'ZJ_DSL') </if> + <if test="terms.unitGrade != null and terms.unitGrade !=''"> + and t1.unit_grade = #{terms.unitGrade} + </if> <include refid="statisticsCirculation-wherePart"/> <if test="page.sort != null"> <foreach collection="page.sort" item="s" index="index" separator="," open="order by "> diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java index 8d73f3b..b52c3f3 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/service/AnalysisService.java @@ -927,6 +927,17 @@ statisticsCirculationDTO.setLzl(Double.parseDouble(df.format(lzl))); statisticsCirculationDTO.setLzz((int) lzz); BeanUtils.copyProperties(statisticsCirculationDTO, statisticsCirculationDTONew); + if("本级".equals(region)){ + if(terms.containsKey("queRoad")){ + statisticsCirculationDTO.setGroupCode("queRoad#"+terms.get("queRoad").toString()); + }else if(terms.containsKey("queArea")){ + statisticsCirculationDTO.setGroupCode("queArea#"+terms.get("queArea").toString()); + }else if(terms.containsKey("queCity")){ + statisticsCirculationDTO.setGroupCode("queCity#"+terms.get("queCity").toString()); + }else if(terms.containsKey("queProv")){ + statisticsCirculationDTO.setGroupCode("queProv"+terms.get("queProv").toString()); + } + } } } statisticsCirculationDTONew.setGroupName(region); @@ -949,6 +960,17 @@ double lzl = (lzz + lzsl) / zdj * 100; statisticsCirculationDTO.setLzl(Double.parseDouble(df.format(lzl))); statisticsCirculationDTO.setLzz((int) lzz); + if("本级".equals(region)){ + if(terms.containsKey("queRoad")){ + statisticsCirculationDTO.setGroupCode("queRoad#"+terms.get("queRoad").toString()); + }else if(terms.containsKey("queArea")){ + statisticsCirculationDTO.setGroupCode("queArea#"+terms.get("queArea").toString()); + }else if(terms.containsKey("queCity")){ + statisticsCirculationDTO.setGroupCode("queCity#"+terms.get("queCity").toString()); + }else if(terms.containsKey("queProv")){ + statisticsCirculationDTO.setGroupCode("queProv#"+terms.get("queProv").toString()); + } + } } } if (flag) { diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java index 704dd3a..79b7409 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java @@ -1208,6 +1208,9 @@ @GetMapping("/pagePerson") public Object pagePerson(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size, @RequestParam(value = "certiNo") String certiNo) { try { + if(StringUtils.isEmpty(certiNo)){ + return ReturnFailUtils.getRepInfo("请输入身份证号"); + } Map<String, Object> terms = getParameterAll(); Sort sort = null; String sortName = null; diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/vo/SaveEventFeedBackVo.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/vo/SaveEventFeedBackVo.java new file mode 100644 index 0000000..85cf099 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/vo/SaveEventFeedBackVo.java @@ -0,0 +1,74 @@ +package cn.huge.module.cases.domain.vo; + +import cn.huge.module.sys.dto.FileInfoBaseDTO; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName SaveEventFeedBackVo + * @Description 同步办理反馈接口入参 + * @Author 文锦钊 + * @Date 2025/7/3 10:48 + **/ + +@Data +public class SaveEventFeedBackVo { + + /** + * 反馈记录id,36位,建议用uuid (必填) + */ + private String id; + + /** + * 事件工单id (必填) + */ + private String code; + + /** + * 反馈用户部门名称 (必填) + */ + private String appOrgName; + + /** + * 反馈用户名称 (必填) + */ + private String appUserName; + + /** + * 反馈用户部门id (必填) + */ + private String appOrgId; + + /** + * 反馈用户id (必填) + */ + private String appUserId; + + /** + * 反馈时间,格式yyyy-MM-dd HH:mm:ss (必填) + * 示例:2022-05-20 15:11:21 + */ + private String appTime; + + /** + * 反馈意见 (必填) + */ + private String approveContent; + + /** + * 环节处理期限,格式yyyy-MM-dd HH:mm:ss (必填) + * 示例:2022-05-20 15:11:21 + */ + private String processingTime; + + /** + * 环节处理类型 (选填) + */ + private String handleType; + + /** + * 附件文件列表 + */ + private List<FileInfoBaseDTO> fileInfoList; +} diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java index 2d32d8e..9388a67 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java @@ -1,12 +1,16 @@ package cn.huge.module.cases.service; +import java.util.ArrayList; 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.ThreadPoolUtils; import cn.huge.module.cases.consts.CaseTaskConsts; +import cn.huge.module.cases.domain.dto.FileRelateDTO; import cn.huge.module.cases.domain.dto.MediatorDTO; import cn.huge.module.cases.domain.po.*; +import cn.huge.module.cases.domain.vo.SaveEventFeedBackVo; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; @@ -14,15 +18,19 @@ import cn.huge.module.cust.dto.CtUnitDTO; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.mediate.constant.CaseBaseConsts; +import cn.huge.module.mediate.constant.CaseBaseConstsEnum; +import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum; import cn.huge.module.sys.dto.FileIdInfoBaseDTO; import cn.huge.module.sys.dto.FileInfoBaseDTO; import cn.huge.module.sys.dto.FileTypeInfoBaseDTO; +import cn.huge.module.utils.TimeUtils; 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.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -32,6 +40,8 @@ import javax.print.DocFlavor; import java.util.*; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -73,6 +83,10 @@ @Autowired private CaseMediatorService caseMediatorService; + + @Autowired + private CaseInfoService caseInfoService; + /** * 更新对象 @@ -165,10 +179,95 @@ } caseFeedback.setUpdateTime(nowDate); this.saveOrUpdate(caseFeedback); + + // 异步同步纠纷办理反馈信息 + asyncSaveEventFeedback(caseFeedback, userId); + } catch (Exception e) { log.error("[caseFeedbackService.savecaseFeedback]调用失败,异常信息:" + e, e); throw new ServiceException("caseFeedbackService.savecaseFeedback", e); } + } + + /** + * 异步保存办理反馈信息 + * + * @param caseFeedback + * @param userId + */ + private void asyncSaveEventFeedback(CaseFeedback caseFeedback, String userId) { + log.info("同步办理反馈信息开始!!"); + String caseId = caseFeedback.getCaseId(); + CaseInfo caseInfo = caseInfoService.getById(caseId); + String canalSecond = caseInfo.getCanalSecond(); + + // 需要同步的渠道类型 + List<String> needSyncTypeList = new ArrayList<>(); + needSyncTypeList.add(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex()); + needSyncTypeList.add(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getIndex()); + needSyncTypeList.add(CaseBaseConstsEnum.CASE_CANAL_SECOND_7.getIndex()); + + if (!needSyncTypeList.contains(canalSecond)) { + log.info("当前来源的事项不需要同步,来源为:" + CaseBaseConstsEnum.getDes(canalSecond)); + return ; + } + + // 使用completableFuture进行异步处理,使用jdk8的forkjoinPool线程池 + CompletableFuture<Object> future = CompletableFuture.supplyAsync(() -> { + log.info("异步保存办理反馈信息开始"); + // 保存办理反馈信息后需要同步到大平台中 + String code = caseInfo.getCaseRef(); + + // 反馈用户信息 + CtUserDTO ctUserDTO = custClient.clientGetUser(userId); + CtUnitDTO ctUnitDTO = custClient.getUnitById(ctUserDTO.getUnitId()); + + // 反馈意见内容 + String handleContent = caseFeedback.getHandleContent(); + + // 反馈时间 + Date now = new Date(); + String appTime = TimeUtils.format(now,TimeUtils.STANDARD_PATTERN); + String processingTime = TimeUtils.format(TimeUtils.after(now,14),TimeUtils.STANDARD_PATTERN); + + // 构建参数 + SaveEventFeedBackVo saveEventFeedBackVo = new SaveEventFeedBackVo(); + saveEventFeedBackVo.setId(caseFeedback.getId()); + saveEventFeedBackVo.setCode(code); + + // 先传递当前子系统的用户id + saveEventFeedBackVo.setAppUserId(userId); + saveEventFeedBackVo.setAppUserName(ctUserDTO.getTrueName()); + saveEventFeedBackVo.setAppOrgId(ctUnitDTO.getId()); + saveEventFeedBackVo.setAppOrgName(ctUnitDTO.getUnitName()); + + saveEventFeedBackVo.setAppTime(appTime); + saveEventFeedBackVo.setApproveContent(handleContent); + saveEventFeedBackVo.setProcessingTime(processingTime); + saveEventFeedBackVo.setHandleType(""); + + // 附件信息 + // 先获取文件关联表信息 + List<FileRelateDTO> fileRelateDTOS = sysClient.listFileRelateByOwnerId(caseFeedback.getId()); + List<FileInfoBaseDTO> fileInfoBaseDTOS = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(fileRelateDTOS)){ + fileInfoBaseDTOS = fileRelateDTOS.stream() + .map(o->{ + FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO(); + fileInfoBaseDTO.setId(o.getFileId()); + return fileInfoBaseDTO; + }).collect(Collectors.toList()); + } + + saveEventFeedBackVo.setFileInfoList(fileInfoBaseDTOS); + + // 发起同步 + sysClient.saveEventFeedback(saveEventFeedBackVo); + log.info("异步保存办理反馈信息成功!!"); + return null; + }); + + } /** @@ -333,6 +432,8 @@ caseFeedback.setHandleType(CaseTaskConsts.HANDLE_TYPE_2); } this.save(caseFeedback); + // 异步同步纠纷办理反馈信息 + asyncSaveEventFeedback(caseFeedback, userId); } catch (Exception e) { log.error("[caseFeedbackService.savecaseFeedback]调用失败,异常信息:" + e, e); throw new ServiceException("caseFeedbackService.savecaseFeedback", e); 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 1d5bb69..65fb528 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 @@ -1540,30 +1540,23 @@ 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 < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) { - typeList.add(caseStatisticsTypeDTO); - i++; - } else { - otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); - } - } - for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { - caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); - } - if (otherCaseNum > 0) { - CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); - caseStatisticsTypeDTO.setCaseTypeName("其他"); - caseStatisticsTypeDTO.setCaseNum(otherCaseNum); - caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); - typeList.add(caseStatisticsTypeDTO); - caseStatisticsBaseDTO.setTypeList(typeList); - } + } + for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { + caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); + } +// if (otherCaseNum > 0) { +// CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); +// caseStatisticsTypeDTO.setCaseTypeName("其他"); +// caseStatisticsTypeDTO.setCaseNum(otherCaseNum); +// caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); +// typeList.add(caseStatisticsTypeDTO); +// caseStatisticsBaseDTO.setTypeList(typeList); +// } + caseStatisticsBaseDTO.setTypeList(caseStatisticsTypeDTOS); //事项来源 terms.put("canal", CaseBaseConstsEnum.CASE_CANAL_1.getIndex()); CaseStatisticsSourceDTO oneSource = mapper.statisticsSource(terms); @@ -2439,29 +2432,25 @@ sortType(caseStatisticsTypeDTOS); } Integer typeTotalNum = 0; - Integer otherCaseNum = 0; - int i = 1; - List<CaseStatisticsTypeDTO> typeList = new ArrayList<>(); +// Integer otherCaseNum = 0; +// int i = 1; +// List<CaseStatisticsTypeDTO> typeList = new ArrayList<>(); for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); - if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) { - typeList.add(caseStatisticsTypeDTO); - i++; - } else { - otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); - } + } - for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { + for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); } - if (otherCaseNum > 0) { - CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); - caseStatisticsTypeDTO.setCaseTypeName("其他"); - caseStatisticsTypeDTO.setCaseNum(otherCaseNum); - caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); - typeList.add(caseStatisticsTypeDTO); - caseStatisticsBaseDTO.setTypeList(typeList); - } +// if (otherCaseNum > 0) { +// CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); +// caseStatisticsTypeDTO.setCaseTypeName("其他"); +// caseStatisticsTypeDTO.setCaseNum(otherCaseNum); +// caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); +// typeList.add(caseStatisticsTypeDTO); +// caseStatisticsBaseDTO.setTypeList(typeList); +// } + caseStatisticsBaseDTO.setTypeList(caseStatisticsTypeDTOS); } List<QueAreaDTO> queArea = listAreaByType(areaCode); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java index 75ebe25..18a986c 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java @@ -411,6 +411,7 @@ caseTaskPO.setReadUserName(loginUser.getTrueName()); mapper.updateCaseTask(caseTaskPO); } + CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); // 待分派节点 if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(caseTask.getNodeId()) || FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId()) @@ -421,7 +422,7 @@ buttonList.add(sl); buttonList.add(jb); buttonList.add(xqcl); - CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); + if (UserBaseConsts.UNIT_GRADE_1 != ctUnitDTO.getUnitGrade()) { buttonList.add(sb); } @@ -432,6 +433,9 @@ buttonList.add(bysl); } } +// if(ctUnitDTO.getUnitType()!=null &ctUnitDTO.getUnitType()==101){ +// buttonList.add(db); +// } } // 待受理节点 if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId()) @@ -442,6 +446,9 @@ buttonList.add(sl); buttonList.add(ht); buttonList.add(xqcl); +// if(ctUnitDTO.getUnitType()!=null &ctUnitDTO.getUnitType()==101){ +// buttonList.add(db); +// } } // 回退审核节点 if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId()) @@ -474,7 +481,6 @@ buttonList.add(lhczsq); buttonList.add(jasq); buttonList.add(tabcl); - CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); if (ObjectUtils.isNotEmpty(ctUnitDTO)) { if (GzRegionBaseEnum.AREA_7.getIndex().equals(ctUnitDTO.getArea())) { buttonList.add(yytj); @@ -488,6 +494,9 @@ buttonList.add(tjbljl); buttonList.add(tabcl); } +// if(ctUnitDTO.getUnitType()!=null &ctUnitDTO.getUnitType()==101){ +// buttonList.add(db); +// } } // 结案审核节点 if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId()) @@ -498,6 +507,9 @@ tabList.add(jash); buttonList.add(tabcl); +// if(ctUnitDTO.getUnitType()!=null &ctUnitDTO.getUnitType()==101){ +// buttonList.add(db); +// } } // 当事人评价节点 if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) { @@ -516,6 +528,9 @@ buttonList.add(sl); buttonList.add(ht); buttonList.add(tabcl); +// if(ctUnitDTO.getUnitType()!=null &ctUnitDTO.getUnitType()==101){ +// buttonList.add(db); +// } } } //司法确认 @@ -831,7 +846,7 @@ || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex()) || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex()) || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex())) { - webCaseFlowDTO.setStatusName("待受理"); + webCaseFlowDTO.setStatusName("待分派"); } // 受理节点 if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSL.getIndex()) @@ -4159,7 +4174,12 @@ gridToDoBacthVo.setYzyContent(""); gridToDoBacthVo.setObjTag(""); gridToDoBacthVo.setMobile("18607214221"); - gridToDoBacthVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex()); + if(StringUtils.isNotEmpty(caseInfo.getCanalSecond())&&caseInfo.getCanalSecond().equals("22_00003-7")){ + gridToDoBacthVo.setTodoType(GridEnum.GRID_TODO_TYPE_6.getIndex()); + }else { + gridToDoBacthVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex()); + } + String title = ""; title += noticeTypeName; if (StringUtils.isNotBlank(caseInfo.getPlaintiffs())) { diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java index 7644dce..8960b38 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java @@ -4,6 +4,7 @@ import cn.huge.base.common.bo.ReturnBO; import cn.huge.module.cases.domain.dto.GridApprovalRecordDTO; import cn.huge.module.cases.domain.vo.GenerateQrCodeRequestVo; +import cn.huge.module.cases.domain.vo.SaveEventFeedBackVo; import cn.huge.module.sys.vo.*; import cn.huge.module.sys.dto.*; import cn.huge.module.cases.domain.dto.FileRelateDTO; @@ -205,4 +206,14 @@ */ @GetMapping("/api/citizen/event/getCaseRefByGenerateQrCode") ReturnBO getCaseRefByGenerateQrCode(@RequestBody GenerateQrCodeRequestVo generateQrCodeRequestVo); + + /** + * 同步办理反馈信息 + * + * @param saveEventFeedBackVo + * @return Object + * @url {ctx}/api/web/gridEvent/saveEventFeedback + */ + @PostMapping("/api/web/gridEvent/saveEventFeedback") + ReturnBO saveEventFeedback(@RequestBody SaveEventFeedBackVo saveEventFeedBackVo); } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java index c587b9d..bbe9a53 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java @@ -10,6 +10,7 @@ import cn.huge.module.cases.domain.dto.GridApprovalRecordDTO; import cn.huge.module.cases.domain.dto.GridEventDTO; import cn.huge.module.cases.domain.vo.GenerateQrCodeRequestVo; +import cn.huge.module.cases.domain.vo.SaveEventFeedBackVo; import cn.huge.module.sy.service.SyHolidayService; import cn.huge.module.syncbydyh.domain.po.SyCause; import cn.huge.module.sys.vo.*; @@ -569,4 +570,27 @@ throw new ServiceException("SysClientImpl.getCaseRefByGenerateQrCode", e); } } + + /** + * 同步办理反馈信息 + * + * @param vo 同步办理反馈信息的入参 + * @return + * @url {ctx}/api/client/event/generateQrCode + */ + public String saveEventFeedback(SaveEventFeedBackVo vo){ + try{ + ReturnBO returnBo = sysClient.saveEventFeedback(vo); + if (ReturnConsts.OK == returnBo.getCode()){ + String id = (String) returnBo.getData(); + return id; + }else{ + log.error("Client外服务接口[SysClientImpl.saveEventFeedback]请求异常:" + returnBo.getMsg(), returnBo.getMsg()); + throw new ClientException("SysClientImpl.saveEventFeedback", returnBo.getMsg()); + } + }catch (Exception e){ + log.error("service方法[SysClientImpl.saveEventFeedback]请求成功,处理异常:"+e, e); + throw new ServiceException("SysClientImpl.saveEventFeedback", e); + } + } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java index 64e066e..e0449f7 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java @@ -508,4 +508,14 @@ } return ReturnSucUtils.getRepInfo(); } + + /** + * 同步办理反馈接口信息 + * @param saveEventFeedBackVo + * @return + */ + @PostMapping("/saveEventFeedback") + public R<Object> saveEventFeedback(@RequestBody SaveEventFeedBackVo saveEventFeedBackVo) { + return service.saveEventFeedback(saveEventFeedBackVo); + } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/SaveEventFeedBackVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/SaveEventFeedBackVo.java new file mode 100644 index 0000000..a25bf34 --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/SaveEventFeedBackVo.java @@ -0,0 +1,79 @@ +package cn.huge.module.grid.domain.vo; + +import cn.huge.module.sys.dto.FileInfoBaseDTO; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName SaveEventFeedBackVo + * @Description 同步办理反馈接口入参 + * @Author 文锦钊 + * @Date 2025/7/3 10:48 + **/ + +@Data +public class SaveEventFeedBackVo { + + /** + * 反馈记录id,36位,建议用uuid (必填) + */ + private String id; + + /** + * 事件工单id (必填) + */ + private String code; + + /** + * 反馈用户部门名称 (必填) + */ + private String appOrgName; + + /** + * 反馈用户名称 (必填) + */ + private String appUserName; + + /** + * 反馈用户部门id (必填) + */ + private String appOrgId; + + /** + * 反馈用户id (必填) + */ + private String appUserId; + + /** + * 反馈时间,格式yyyy-MM-dd HH:mm:ss (必填) + * 示例:2022-05-20 15:11:21 + */ + private String appTime; + + /** + * 反馈意见 (必填) + */ + private String approveContent; + + /** + * 环节处理期限,格式yyyy-MM-dd HH:mm:ss (必填) + * 示例:2022-05-20 15:11:21 + */ + private String processingTime; + + /** + * 环节处理类型 (选填) + */ + private String handleType; + + /** + * 反馈附件列表 (选填) + */ + private List<GridFileRelatedVo> feedbackAttrInfos; + + /** + * 原子系统的反馈附件列表 (选填) + */ + private List<FileInfoBaseDTO> fileInfoList; +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java index 19c2c34..69b1040 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java @@ -1,26 +1,38 @@ package cn.huge.module.grid.service; +import cn.huge.base.common.bo.R; import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.DateUtils; +import cn.huge.base.common.utils.HttpClientUtils; 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.cust.dto.CtUserDTO; +import cn.huge.module.file.domain.po.FileInfo; +import cn.huge.module.file.service.FileInfoService; import cn.huge.module.grid.dao.mapper.GridEventMapper; +import cn.huge.module.grid.domain.dto.GridFileUploadDTO; +import cn.huge.module.grid.domain.dto.GridOrgDTO; import cn.huge.module.grid.domain.po.GridEvent; +import cn.huge.module.grid.domain.vo.*; +import cn.huge.module.sys.dto.FileInfoBaseDTO; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.ibatis.annotations.Param; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; -import javax.annotation.PostConstruct; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author wangwh @@ -40,6 +52,42 @@ @Autowired private UtilsClientImpl utilsClient; + + @Autowired + private GridCaseTaskService gridCaseTaskService; + + @Autowired + private GridCaseDataService gridCaseDataService; + + @Autowired + private GridUserService gridUserService; + + @Autowired + private CustClientImpl custClient; + + @Autowired + private FileInfoService fileInfoService; + + @Value("${grid.url:http://219.137.166.84:8061}") + private String gridUrl; + @Value("${grid.username:mtxt0011}") + private String userName; + @Value("${grid.password}") + private String passWord; + @Value("${grid.secret:BZb2hLCx05}") + private String secret; + @Value("${grid.passid:b08c0ec0-772d-caf8-5c9b-1f7d86295a95}") + private String passid; + public HashMap<String,String> initHeadVo() { + long timestamp = System.currentTimeMillis()/1000; + HashMap<String,String> headVo = new HashMap<>(); + headVo.put("x-rio-paasid",passid); + headVo.put("x-rio-timestamp",timestamp+""); + headVo.put("x-rio-nonce","mt"); + headVo.put("x-rio-signature", DigestUtils.sha256Hex(timestamp+secret+"mt"+timestamp)); + return headVo; + } + /** * 更新对象 @@ -141,4 +189,127 @@ public GridEvent getEventByCaseId(String caseId) { return mapper.getEventByCaseId(caseId); } + + /** + * 同步矛纠工单的办理反馈信息 + * + * @param saveEventFeedBackVo + * @return + */ + public R<Object> saveEventFeedback(SaveEventFeedBackVo saveEventFeedBackVo) { + HashMap<String,String> headVo= initHeadVo(); + try{ + // 传递过来的是子平台的id,需要转换为大平台的id + String appOrgId = saveEventFeedBackVo.getAppOrgId(); + + String appGridUnitId = null; + if (StringUtils.isNotBlank(appOrgId)) { + appGridUnitId = gridCaseTaskService.getGridUnitIdByUnitId(saveEventFeedBackVo.getAppOrgId()); + saveEventFeedBackVo.setAppOrgId(appGridUnitId); + if (StringUtils.isBlank(appGridUnitId)) { + throw new Exception("矛纠工单的办理反馈信息的组织不存在"); + } + } +// else { +// saveEventFeedBackVo.setAppOrgId(gridEvent.getSysOrgId()); +// saveEventFeedBackVo.setAppOrgName(gridEvent.getSysOrgName()); +// } + log.info("当前环节组织:" + saveEventFeedBackVo.getAppOrgId()); + + if (StringUtils.isNotBlank(saveEventFeedBackVo.getAppUserId())) { + CtUserDTO ctUserDTO = custClient.clientGetUserAll(saveEventFeedBackVo.getAppUserId()); + if (ObjectUtils.isNotEmpty(ctUserDTO)) { + if (StringUtils.isNotBlank(ctUserDTO.getIdcard())) { + GridUserIdNumberVo gridUserIdNumberVo = new GridUserIdNumberVo(); + gridUserIdNumberVo.setIdNumber(ctUserDTO.getIdcard()); + R<GridUserVo> result = gridUserService.getUserByIdNumber(gridUserIdNumberVo); + if (R.SUCCESS == result.getCode()) { + saveEventFeedBackVo.setAppUserId(result.getData().getId()); + log.info("当前环节审批用户为: " + saveEventFeedBackVo.getAppUserId()); + } else { + saveEventFeedBackVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd"); + log.info("当前环节审批用户为特殊用户,身份证找不到用户{},{}", ctUserDTO.getIdcard(), ctUserDTO.getTrueName()); + } + } else { + saveEventFeedBackVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd"); + log.info("当前环节审批用户为特殊用户,找不到用户{}", saveEventFeedBackVo.getAppUserId()); + } + } else { + saveEventFeedBackVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd"); + log.info("当前环节审批用户为特殊用户,找不到用户{}", saveEventFeedBackVo.getAppUserId()); + } + } else { + saveEventFeedBackVo.setAppUserId("a9406a88c8234cda82452799bf6bd6cd"); + log.info("矛纠工单的办理反馈信息的用户为特殊用户"); + } + + // 判断附件不为空 + List<FileInfoBaseDTO> fileInfoList = saveEventFeedBackVo.getFileInfoList(); + if (!CollectionUtils.isEmpty(fileInfoList)){ + List<GridFileRelatedVo> feedbackAttrInfos = new ArrayList<>(); + log.info("获取到矛纠工单的办理反馈信息的附件上传:" + fileInfoList.size()); + for (FileInfoBaseDTO fileInfoBaseDTO : fileInfoList) { + try { + GridFileUploadVo gridFileUploadVo = new GridFileUploadVo(); + // 通过id获取文件信息 + FileInfo fileInfo = fileInfoService.getById(fileInfoBaseDTO.getId()); + + gridFileUploadVo.setFileName(fileInfo.getFileName()); + gridFileUploadVo.setFilePath(fileInfo.getFullPath()); + gridFileUploadVo.setFileSize(fileInfo.getSize() != null ? fileInfo.getSize().longValue() : 0L); + gridFileUploadVo.setType(fileInfo.getSuffix()); + R<GridFileUploadDTO> result = null; + //上传附件信息 + result = gridCaseDataService.uploadFileInfo(gridFileUploadVo); + if (R.SUCCESS == result.getCode()) { + //获取上传结果,组成新的附件对象 + GridFileUploadDTO gridFileUploadDTO = result.getData(); + GridFileRelatedVo gridFileRelatedVo = new GridFileRelatedVo(); + gridFileRelatedVo.setFileName(gridFileUploadDTO.getFileName()); + gridFileRelatedVo.setFilePath(gridFileUploadDTO.getFilePath()); + gridFileRelatedVo.setOriginalFileName(gridFileUploadDTO.getOriginalFileName()); + gridFileRelatedVo.setFileSize(gridFileUploadDTO.getFileSize()); + gridFileRelatedVo.setType("add"); + gridFileRelatedVo.setFileType(gridFileUploadDTO.getFileType()); + feedbackAttrInfos.add(gridFileRelatedVo); + } + } catch (Exception e) { + e.printStackTrace(); + log.info("附件上传失败:" + fileInfoBaseDTO.getId()); + } + } + + // 上传完成后设置原附件列表为空 + saveEventFeedBackVo.setFileInfoList(null); + } + + + // 发起请求 + log.info("办理反馈信息-xsd:{}", JSON.toJSONString(saveEventFeedBackVo)); + log.info("办理反馈信息-xsd:{}", gridUrl + "/standard/eventform/saveFeedback"); + String s = null; + try { + s = HttpClientUtils.httpPostRaw(gridUrl + "/standard/eventform/saveFeedback", JSON.toJSONString(saveEventFeedBackVo), headVo, "utf-8"); + } catch (Exception e) { + log.info("xsderror:{}", e); + throw new RuntimeException(e); + } + log.info("xsd:{}", s); + + // + JSONObject object = JSONObject.parseObject(s); + if (object.getInteger("code") != null && object.getInteger("code") == 0) { + log.info("同步矛纠工单的办理反馈信息成功!"); + Object data = object.get("data"); + return R.ok(data); + } else { + log.info("同步矛纠工单的办理反馈信息失败,错误原因:" + object.getString("message")); + return R.fail("同步矛纠工单的办理反馈信息失败"); + } + }catch (Exception e){ + log.error("同步矛纠工单的办理反馈信息报错",e); + } + return R.fail("同步矛纠工单的办理反馈信息失败"); + + } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java index 4e18a57..228bf12 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java @@ -449,7 +449,7 @@ } } } else if (unitGrade.equals(3)) { - SyRegion roadSyRegion = mapper.selectById(ctUnitDTO.getArea()); + SyRegion roadSyRegion = mapper.selectById(ctUnitDTO.getRoad()); AreaBO roadaBO = new AreaBO(); roadaBO.setParentId("root"); roadaBO.setLabel(roadSyRegion.getName()); diff --git a/dyh-service/dyh-sys/src/main/resources/config/application-prod.yml b/dyh-service/dyh-sys/src/main/resources/config/application-prod.yml index 9d2a46c..67e08b1 100644 --- a/dyh-service/dyh-sys/src/main/resources/config/application-prod.yml +++ b/dyh-service/dyh-sys/src/main/resources/config/application-prod.yml @@ -16,6 +16,8 @@ driver-class-name: dm.jdbc.driver.DmDriver type: com.alibaba.druid.pool.DruidDataSource druid: + stat-view-servlet: + enabled: false test-while-idle: true min-idle: 10 initial-size: 10 diff --git a/dyh-service/dyh-sys/src/main/resources/config/application-test.yml b/dyh-service/dyh-sys/src/main/resources/config/application-test.yml index a8e0142..0185f1a 100644 --- a/dyh-service/dyh-sys/src/main/resources/config/application-test.yml +++ b/dyh-service/dyh-sys/src/main/resources/config/application-test.yml @@ -16,6 +16,8 @@ driver-class-name: dm.jdbc.driver.DmDriver type: com.alibaba.druid.pool.DruidDataSource druid: + stat-view-servlet: + enabled: false test-while-idle: true min-idle: 10 initial-size: 10 diff --git a/dyh-service/dyh-sys/src/main/resources/config/application.yml b/dyh-service/dyh-sys/src/main/resources/config/application.yml index f1b17fc..b39db80 100644 --- a/dyh-service/dyh-sys/src/main/resources/config/application.yml +++ b/dyh-service/dyh-sys/src/main/resources/config/application.yml @@ -16,6 +16,8 @@ main: #可以重复命名配置 allow-bean-definition-overriding: true + # 处理循环引用 + allow-circular-references: true #server配置 server: diff --git a/sql/20250704.sql b/sql/20250704.sql new file mode 100644 index 0000000..dd6e0f1 --- /dev/null +++ b/sql/20250704.sql @@ -0,0 +1,75 @@ + + +update "dyh_th_third_cause" set cause_code = '24_02-46' where case_code ='24_02-51'; +update "dyh_th_third_cause" set cause_code = '24_02-9' where case_code = '24_02-52'; +update "dyh_th_third_cause" set cause_code = '24_02-9' where case_code = '24_02-56'; +update "dyh_th_third_cause" set cause_code = '24_02-5' where case_code = '24_02-67'; +update "dyh_th_third_cause" set cause_code = '24_02-25' where case_code ='24_02-70'; +update "dyh_th_third_cause" set cause_code = '24_02-5' where case_code = '24_02-71'; + + + +update "dyh_case_info" set case_type_first = '24_01-1' ,case_type_first_name='市场监管' where case_type='24_02-59'; +update "dyh_case_info" set case_type_first = '24_01-1' ,case_type_first_name='市场监管' where case_type='24_02-69'; +update "dyh_case_info" set case_type_first = '24_01-1' ,case_type_first_name='市场监管' where case_type='24_02-62'; +update "dyh_case_info" set case_type_first = '24_01-1' ,case_type_first_name='市场监管' where case_type='24_02-60'; +update "dyh_case_info" set case_type_first = '24_01-4' ,case_type_first_name='交通运输' where case_type='24_02-58'; +update "dyh_case_info" set case_type_first = '24_01-7' ,case_type_first_name='房屋规划' where case_type='24_02-65'; +update "dyh_case_info" set case_type_first = '24_01-7' ,case_type_first_name='房屋规划' where case_type='24_02-64'; +update "dyh_case_info" set case_type_first = '24_01-7' ,case_type_first_name='房屋规划' where case_type='24_02-68'; +update "dyh_case_info" set case_type_first = '24_01-7' ,case_type_first_name='房屋规划' where case_type='24_02-66'; +update "dyh_case_info" set case_type_first = '24_01-9' ,case_type_first_name='民事经济纠纷' where case_type='24_02-57'; +update "dyh_case_info" set case_type_first = '24_01-9' ,case_type_first_name='民事经济纠纷' where case_type='24_02-61'; +update "dyh_case_info" set case_type_first = '24_01-9' ,case_type_first_name='民事经济纠纷' where case_type='24_02-63'; + + + + + + + +update "dyh_case_info" set case_type = '24_02-46',case_type_name='租赁纠纷' where case_type='24_02-51'; +update "dyh_case_info" set case_type = '24_02-9' ,case_type_name='拖欠、克扣工资' where case_type='24_02-52'; +update "dyh_case_info" set case_type = '24_02-9' ,case_type_name='拖欠、克扣工资' where case_type='24_02-56'; +update "dyh_case_info" set case_type = '24_02-5' ,case_type_name='网购及其他消费纠纷' where case_type='24_02-67'; +update "dyh_case_info" set case_type = '24_02-25',case_type_name='噪声、气味、污水等环境问题' where case_type='24_02-70'; +update "dyh_case_info" set case_type = '24_02-5' ,case_type_name='网购及其他消费纠纷' where case_type='24_02-71'; + + +insert into "HUGETEST"."dyh_sy_cause"("id", "name", "level", "parent_id", "issue_id", "create_time", "update_time", "icon") VALUES('24_02-73','债务纠纷','2','24_01-11',null,'2025-07-04','2025-07-04',null); +insert into "HUGETEST"."dyh_sy_cause"("id", "name", "level", "parent_id", "issue_id", "create_time", "update_time", "icon") VALUES('24_02-74','涉退役军人纠纷','2','24_01-11',null,'2025-07-04','2025-07-04',null); +insert into "HUGETEST"."dyh_sy_cause"("id", "name", "level", "parent_id", "issue_id", "create_time", "update_time", "icon") VALUES('24_02-75','涉行政争议纠纷','2','24_01-11',null,'2025-07-04','2025-07-04',null); +insert into "HUGETEST"."dyh_sy_cause"("id", "name", "level", "parent_id", "issue_id", "create_time", "update_time", "icon") VALUES('24_02-76','涉法涉诉纠纷','2','24_01-11',null,'2025-07-04','2025-07-04',null); + + +delete from dyh_sy_cause where id ='24_02-51'; +delete from dyh_sy_cause where id = '24_02-52'; +delete from dyh_sy_cause where id = '24_02-56'; +delete from dyh_sy_cause where id = '24_02-67'; +delete from dyh_sy_cause where id ='24_02-70'; +delete from dyh_sy_cause where id = '24_02-71'; + + +update "dyh_sy_cause" set parent_id = '24_01-1' where id='24_02-59'; +update "dyh_sy_cause" set parent_id = '24_01-1' where id='24_02-69'; +update "dyh_sy_cause" set parent_id = '24_01-1' where id='24_02-62'; +update "dyh_sy_cause" set parent_id = '24_01-1' where id='24_02-60'; +update "dyh_sy_cause" set parent_id = '24_01-4' where id='24_02-58'; +update "dyh_sy_cause" set parent_id = '24_01-7' where id='24_02-65'; +update "dyh_sy_cause" set parent_id = '24_01-7' where id='24_02-64'; +update "dyh_sy_cause" set parent_id = '24_01-7' where id='24_02-68'; +update "dyh_sy_cause" set parent_id = '24_01-7' where id='24_02-66'; +update "dyh_sy_cause" set parent_id = '24_01-9' where id='24_02-57'; +update "dyh_sy_cause" set parent_id = '24_01-9' where id='24_02-61'; +update "dyh_sy_cause" set parent_id = '24_01-9' where id='24_02-63'; + + + + + +update "dyh_case_info" set case_type_first = '24_01-3' ,case_type_first_name='城市管理' where case_type='24_02-25'; +update "dyh_case_info" set case_type_first = '24_01-1' ,case_type_first_name='市场监管' where case_type='24_02-5'; +update "dyh_case_info" set case_type_first = '24_01-2' ,case_type_first_name='劳动社保' where case_type='24_02-9'; + + + -- Gitblit v1.8.0