From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java | 123 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 122 insertions(+), 1 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
index 4a6e7f9..6280c56 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
@@ -1,13 +1,32 @@
package cn.gistack.sm.jcsb.service.impl;
+import cn.gistack.pwd.dto.CBCResultDTO;
+import cn.gistack.pwd.dto.ResultDTO;
+import cn.gistack.pwd.fegin.IPwdClient;
+import cn.gistack.sm.jcsb.supo.DangerReportSUPO;
import cn.gistack.sm.jcsb.entity.DangerReport;
import cn.gistack.sm.jcsb.mapper.DangerReportMapper;
import cn.gistack.sm.jcsb.service.IDangerReportService;
import cn.gistack.sm.jcsb.vo.DangerReportVO;
-import cn.gistack.sm.jcsb.vo.DeviceReportVO;
+import cn.gistack.sm.jcsb.vo.StatisticsVO;
+import cn.gistack.sm.sjztmd.entity.AttResBase;
+import cn.gistack.sm.sjztmd.service.IAttResBaseService;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.feign.IUserClient;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
import java.util.List;
/**
@@ -19,8 +38,110 @@
@Service
public class DangerReportServiceImpl extends BaseServiceImpl<DangerReportMapper, DangerReport> implements IDangerReportService {
+ @Autowired
+ private IPwdClient pwdClient;
+ @Autowired
+ private IAttResBaseService attResBaseService;
+
+ @Autowired
+ private IUserClient userClient;
+
@Override
public List<DangerReportVO> getAll(DangerReport dangerReport) {
return baseMapper.getAll(dangerReport);
}
+
+ @Override
+ public IPage<DangerReportVO> selectPage(IPage<DangerReportVO> page, DangerReportVO dangerReportVO) {
+ List<DangerReportVO> dangerReportVOS = baseMapper.selectRecordPage(page, dangerReportVO);
+ dangerReportVOS.forEach(item->{
+ R<ResultDTO> res = pwdClient.getDecrypt(item.getSm4iv(), item.getKeyindexs(), item.getEncdata());
+ if (res.getCode() == 200){
+ item.setBase64Data(res.getData().getData());
+ }
+
+ item.setEncdata("");
+ item.setKeyindexs("");
+ item.setSm4iv("");
+ });
+ return page.setRecords(dangerReportVOS);
+ }
+
+ @Override
+ public StatisticsVO getStatistics(String resGuid) {
+ return baseMapper.getStatistics(resGuid);
+ }
+
+ @Override
+ public boolean saveUp(DangerReport dangerReport) {
+ // 填充加密内容
+ DangerReportSUPO dangerReportSUPO = BeanUtil.copy(dangerReport, DangerReportSUPO.class);
+
+ // 获取水库名称
+ AttResBase attResBase = attResBaseService.getDetailByCode(dangerReport.getReservoirId());
+ //转码后的水库名
+ String encodeReservoirName = "";
+ //转码后的上报人
+ String encodeCreateUserName = "";
+ //转码后的处理人
+ String encodeToUserName = "";
+ String encodeDesinfo = "";
+ R<User> userR = userClient.userInfoById(Long.parseLong(dangerReportSUPO.getToUser()));
+ R<User> createUser = userClient.userInfoById(dangerReportSUPO.getCreateUser());
+
+ try {
+ encodeReservoirName= URLEncoder.encode(attResBase.getName(), "UTF-8");
+ encodeCreateUserName = URLEncoder.encode(createUser.getData().getName(), "UTF-8");
+ encodeToUserName=URLEncoder.encode(userR.getData().getName(), "UTF-8");
+ encodeDesinfo = URLEncoder.encode(dangerReport.getDesinfo(), "UTF-8");
+ }catch (Exception e){
+ System.out.println(e);
+ }
+
+
+ dangerReportSUPO.setReservoirName(encodeReservoirName);
+ dangerReport.setReservoirName(attResBase.getName()); // 保存水库名称
+ dangerReport.setReservoirId(attResBase.getGuid());
+
+ // 获取用户
+ dangerReportSUPO.setCreateUserName(encodeCreateUserName);
+ dangerReportSUPO.setToUserName(encodeToUserName);
+ dangerReportSUPO.setDesinfo(encodeDesinfo);
+
+ String message = JSONObject.toJSONString(dangerReportSUPO);
+ R<CBCResultDTO> cbcResultDTOR = pwdClient.getCBCMacEncipher(message);
+ if (cbcResultDTOR.getCode() != 200) {
+ return false;
+ }
+ String maced = cbcResultDTOR.getData().getMaced();
+ String keyIndex = cbcResultDTOR.getData().getKeyIndex();
+ String sm4iv = cbcResultDTOR.getData().getSm4IV();
+ dangerReport.setMaced(maced);
+ dangerReport.setKeyindexs(keyIndex);
+ dangerReport.setSm4iv(sm4iv);
+ R<ResultDTO> resultDTOR = pwdClient.getEncrypt(sm4iv, keyIndex, message);
+ if (resultDTOR.getCode() != 200) {
+ return false;
+ }
+ dangerReport.setEncdata(resultDTOR.getData().getData());
+
+ return this.save(dangerReport);
+
+ }
+
+ @Override
+ public DangerReportVO getVODetail(String id) {
+ DangerReport item = super.getById(id);
+ DangerReportVO newEntity = new DangerReportVO();
+ newEntity.setId(item.getId());
+
+ R<ResultDTO> res = pwdClient.getDecrypt(item.getSm4iv(), item.getKeyindexs(), item.getEncdata());
+ if (res.getCode() == 200){
+ newEntity.setBase64Data(res.getData().getData());
+ newEntity.setCreateTime(item.getCreateTime());
+ }
+
+ return newEntity;
+ }
+
}
--
Gitblit v1.9.3