guoshilong
2023-08-15 23f360358e078f65655e31b652b9f999c6cbe01b
险情上报中文转码保存
5 files modified
79 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/controller/DangerReportController.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml 14 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/IDangerReportService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java 57 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/vo/DangerReportVO.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/controller/DangerReportController.java
@@ -55,8 +55,8 @@
     */
    @GetMapping("/detail")
    @ApiOperation(value = "详情", notes = "传入实体类参数")
    public R<DangerReport> detail(@RequestParam(name="id",required=true) String id) {
        return R.data(dangerReportService.getById(id));
    public R<DangerReportVO> detail(@RequestParam(name="id",required=true) String id) {
        return R.data(dangerReportService.getVODetail(id));
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/mapper/DangerReportMapper.xml
@@ -34,14 +34,15 @@
            AND SDR.status = #{dangerReport.status}
        </if>
    </select>
    <select id="selectRecordPage" resultMap="vo">
        SELECT R.*,
               arb."name" AS reservoirName,
               U.REAL_NAME  AS  toUserName,
               U2.REAL_NAME AS  reportUser FROM SM_DANGER_REPORT R
        LEFT JOIN BLADE_USER U ON U.ID = R.TO_USER
        SELECT
               R.ID,
               R.create_time,
               R.ENCDATA,
               R.SM4IV,
               R.KEYINDEXS FROM SM_DANGER_REPORT R
        LEFT JOIN BLADE_USER U2 ON U2.ID = R.CREATE_USER
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = R.RESERVOIR_ID
        WHERE R.IS_DELETED = 0
        <if test="dangerReportVO.reservoirName != null and dangerReportVO.reservoirName !=''">
            AND arb."name" LIKE CONCAT('%',#{dangerReportVO.reservoirName},'%')
@@ -57,6 +58,7 @@
        </if>
        ORDER BY R.UPDATE_TIME DESC
    </select>
    <select id="getStatistics" resultType="cn.gistack.sm.jcsb.vo.StatisticsVO">
        SELECT * FROM
                     (SELECT COUNT(1)AS patrolCount FROM  SM_PATROL_TASK WHERE PROJECT_ID =#{resGuid} AND IS_DELETED = 0)p,
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/IDangerReportService.java
@@ -29,4 +29,6 @@
    boolean saveUp(DangerReport dangerReport);
    DangerReportVO getVODetail(String id);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
@@ -24,6 +24,9 @@
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;
/**
@@ -50,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
@@ -65,13 +79,29 @@
        // 获取水库名称
        AttResBase attResBase = attResBaseService.getDetailByCode(dangerReport.getReservoirId());
        dangerReportSUPO.setReservoirName(attResBase.getName());
        dangerReport.setReservoirName(attResBase.getName()); // 保存水库名称
        //转码后的水库名
        String encodeReservoirName = "";
        //转码后的上报人
        String encodeCreateUserName = "";
        //转码后的处理人
        String encodeToUserName = "";
        R<User> userR = userClient.userInfoById(Long.parseLong(dangerReportSUPO.getToUser()));
        try {
            encodeReservoirName= URLEncoder.encode(attResBase.getName(), "UTF-8");
            encodeCreateUserName = URLEncoder.encode(AuthUtil.getUser().getUserName(), "UTF-8");
            encodeToUserName=URLEncoder.encode(userR.getData().getName(), "UTF-8");
        }catch (Exception e){
            System.out.println(e);
        }
        dangerReportSUPO.setReservoirName(encodeReservoirName);
        dangerReport.setReservoirName(encodeReservoirName); // 保存水库名称
        // 获取用户
        dangerReportSUPO.setCreateUserName(AuthUtil.getUser().getUserName());
        R<User> userR = userClient.userInfoById(Long.parseLong(dangerReportSUPO.getToUser()));
        dangerReportSUPO.setToUserName(userR.getData().getName());
        dangerReportSUPO.setCreateUserName(encodeCreateUserName);
        dangerReportSUPO.setToUserName(encodeToUserName);
        String message = JSONObject.toJSONString(dangerReportSUPO);
        R<CBCResultDTO> cbcResultDTOR =  pwdClient.getCBCMacEncipher(message);
@@ -94,4 +124,19 @@
    }
    @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;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/vo/DangerReportVO.java
@@ -20,4 +20,6 @@
     */
    private String reportUser;
    private String base64Data;
}