1. 添加导出案件得分详情功能

topo_dev
xueqingkun 9 months ago
parent cb3343ebf2
commit 89b90fce22

@ -7,6 +7,7 @@ import com.supervision.police.dto.caseScore.CaseScoreDetailDTO;
import com.supervision.police.service.ModelService; import com.supervision.police.service.ModelService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -42,6 +43,14 @@ public class ModelController {
return R.ok(detail); return R.ok(detail);
} }
@GetMapping("/exportCaseScoreDetail")
@Operation(summary = "导出案件得分详情功能")
public void exportCaseScoreDetail( @RequestParam @Parameter(name = "caseId",description = "案件id") String caseId,
HttpServletResponse response) {
modelService.exportCaseScoreDetail(caseId,response);
}
@GetMapping("/getCaseDateStatus") @GetMapping("/getCaseDateStatus")
@Operation(summary = "获取案件数据状态") @Operation(summary = "获取案件数据状态")
public R<CaseStatus> getCaseDateStatus(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId) { public R<CaseStatus> getCaseDateStatus(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId) {

@ -4,6 +4,7 @@ import com.supervision.common.domain.R;
import com.supervision.police.dto.AnalyseCaseDTO; import com.supervision.police.dto.AnalyseCaseDTO;
import com.supervision.police.dto.CaseStatus; import com.supervision.police.dto.CaseStatus;
import com.supervision.police.dto.caseScore.CaseScoreDetailDTO; import com.supervision.police.dto.caseScore.CaseScoreDetailDTO;
import jakarta.servlet.http.HttpServletResponse;
public interface ModelService { public interface ModelService {
@ -22,4 +23,11 @@ public interface ModelService {
* @return * @return
*/ */
CaseStatus getCaseDateStatus(String caseId); CaseStatus getCaseDateStatus(String caseId);
/**
*
* @param caseId id
* @param response
*/
void exportCaseScoreDetail(String caseId, HttpServletResponse response);
} }

@ -1,6 +1,7 @@
package com.supervision.police.service.impl; package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -9,6 +10,7 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.deepoove.poi.XWPFTemplate;
import com.supervision.common.domain.R; import com.supervision.common.domain.R;
import com.supervision.common.utils.StringUtils; import com.supervision.common.utils.StringUtils;
import com.supervision.neo4j.dto.ResultDTO; import com.supervision.neo4j.dto.ResultDTO;
@ -26,13 +28,21 @@ import com.supervision.police.service.CaseStatusManageService;
import com.supervision.police.service.ModelIndexService; import com.supervision.police.service.ModelIndexService;
import com.supervision.police.service.ModelService; import com.supervision.police.service.ModelService;
import com.supervision.utils.SqlParserUtil; import com.supervision.utils.SqlParserUtil;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.neo4j.driver.Driver; import org.neo4j.driver.Driver;
import org.neo4j.driver.Result; import org.neo4j.driver.Result;
import org.neo4j.driver.Session; import org.neo4j.driver.Session;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*; import java.util.*;
@Slf4j @Slf4j
@ -40,6 +50,8 @@ import java.util.*;
@RequiredArgsConstructor @RequiredArgsConstructor
public class ModelServiceImpl implements ModelService { public class ModelServiceImpl implements ModelService {
private final ResourceLoader resourceLoader;
private final Driver driver; private final Driver driver;
private final ModelCaseMapper modelCaseMapper; private final ModelCaseMapper modelCaseMapper;
@ -172,6 +184,33 @@ public class ModelServiceImpl implements ModelService {
} }
@Override
public void exportCaseScoreDetail(String caseId, HttpServletResponse response) {
CaseScoreDetailDTO caseScoreDetailDTO = caseScoreDetail(caseId);
caseScoreDetailDTO.buildDesc();
// 加载模板
Resource resource = resourceLoader.getResource("classpath:template/case_detail.docx");
InputStream inputStream = null;
try {
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(caseScoreDetailDTO.getCaseName()+".docx", StandardCharsets.UTF_8));
inputStream = resource.getInputStream();
XWPFTemplate template = XWPFTemplate.compile(inputStream).render(caseScoreDetailDTO);
template.writeAndClose(response.getOutputStream());
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
if (inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
log.error("exportCaseScoreDetail: inputStream.close() error", e);
}
}
}
}
/** /**
* *
*/ */

Loading…
Cancel
Save