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 |   90 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 80 insertions(+), 10 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 ba0ac19..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
@@ -9,15 +9,24 @@
 import cn.gistack.sm.jcsb.service.IDangerReportService;
 import cn.gistack.sm.jcsb.vo.DangerReportVO;
 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;
 
 /**
@@ -31,6 +40,11 @@
 
 	@Autowired
 	private IPwdClient pwdClient;
+	@Autowired
+	private IAttResBaseService attResBaseService;
+
+	@Autowired
+	private IUserClient userClient;
 
 	@Override
 	public List<DangerReportVO> getAll(DangerReport dangerReport) {
@@ -39,7 +53,18 @@
 
 	@Override
 	public IPage<DangerReportVO> selectPage(IPage<DangerReportVO> page, DangerReportVO dangerReportVO) {
-		return page.setRecords(baseMapper.selectRecordPage(page,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
@@ -48,10 +73,41 @@
 	}
 
 	@Override
-	@Transactional
 	public boolean saveUp(DangerReport dangerReport) {
-		this.save(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) {
@@ -60,18 +116,32 @@
 		String maced = cbcResultDTOR.getData().getMaced();
 		String keyIndex = cbcResultDTOR.getData().getKeyIndex();
 		String sm4iv = cbcResultDTOR.getData().getSm4IV();
-		DangerReport ympo = new DangerReport();
-		ympo.setId(dangerReport.getId());
-		ympo.setMaced(maced);
-		ympo.setKeyindexs(keyIndex);
-		ympo.setSm4iv(sm4iv);
+		dangerReport.setMaced(maced);
+		dangerReport.setKeyindexs(keyIndex);
+		dangerReport.setSm4iv(sm4iv);
 		R<ResultDTO> resultDTOR = pwdClient.getEncrypt(sm4iv, keyIndex, message);
 		if (resultDTOR.getCode() != 200) {
 			return false;
 		}
-		ympo.setEncdata(resultDTOR.getData().getData());
+		dangerReport.setEncdata(resultDTOR.getData().getData());
 
-		return this.updateById(ympo);
+		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