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-sys/src/main/java/cn/huge/module/grid/service/GridEventService.java | 183 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 177 insertions(+), 6 deletions(-) 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("同步矛纠工单的办理反馈信息失败"); + + } } -- Gitblit v1.8.0