From 0bd6d9b8aec0940a414f0f317ae8cb57f7b85ebb Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Mon, 14 Aug 2023 17:09:49 +0800
Subject: [PATCH] 险情上报加密

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 59 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..910fb81 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,12 +1,25 @@
 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 com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
+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.util.List;
 
@@ -19,8 +32,53 @@
 @Service
 public class DangerReportServiceImpl extends BaseServiceImpl<DangerReportMapper, DangerReport> implements IDangerReportService {
 
+	@Autowired
+	private IPwdClient pwdClient;
+	@Autowired
+	private IAttResBaseService attResBaseService;
+
 	@Override
 	public List<DangerReportVO> getAll(DangerReport dangerReport) {
 		return baseMapper.getAll(dangerReport);
 	}
+
+	@Override
+	public IPage<DangerReportVO> selectPage(IPage<DangerReportVO> page, DangerReportVO dangerReportVO) {
+		return page.setRecords(baseMapper.selectRecordPage(page,dangerReportVO));
+	}
+
+	@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());
+		dangerReportSUPO.setReservoirName(attResBase.getName());
+
+		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);
+	}
+
 }

--
Gitblit v1.9.3