yxh
6 天以前 e43cbc27e70376092c4751c775c64d55acecd160
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
@@ -31,12 +31,14 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.ss.formula.functions.Now;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
@@ -186,31 +188,36 @@
     */
    @ApiOperation("遗体器官获取伦理审查表")
    @GetMapping(value = "/download")
    public Result downloadInfo(String nitiateId) throws IOException {
        if(ObjectUtils.isEmpty(nitiateId)){
    public Result downloadInfo(String initiateId) throws IOException {
        if(ObjectUtils.isEmpty(initiateId)){
            return Result.error("nitiateId伦理审查id不能为空");
        }
        EthicalReviewVO reviewVO =new EthicalReviewVO();
        reviewVO.setNitiateId(nitiateId);
        reviewVO.setNitiateId(initiateId);
        List<EthicalReviewVO> list = serviceEthicalreviewopinionsService.selectVOList(reviewVO);
        if(list.size()==0){
            return Result.error("伦理审查id无相关数据");
        }
        EthicalreviewopinionsStateTotalVO  stateTotalVO=serviceEthicalreviewopinionsService.stateTotalAll(initiateId);
        String filePath = getClass().getResource("/template/").getPath();
        if(filePath.substring(0,1).equals("/"))
            filePath=filePath.substring(1);
        String content ="";
        Template t = null;
        try {
            content = Files.readString(Paths.get(filePath+"遗体器官获取伦理审查表首页.xml"), StandardCharsets.UTF_8);
//            content = Files.readString(Paths.get(filePath+"遗体器官获取伦理审查表首页.xml"), StandardCharsets.UTF_8);
            Path path = Paths.get(filePath + "遗体器官获取伦理审查表首页.xml");
            byte[] bytes = Files.readAllBytes(path);
            content = new String(bytes, StandardCharsets.UTF_8);
            String name=list.get(0).getName()+"(住院号:"+list.get(0).getInpatientno()+")";
            content=content.replace("$name",name);//项目名称
            content=content.replace("$inCount","16");//到会委员
            content=content.replace("$inCount",stateTotalVO.getInCount());//到会委员
            content=content.replace("$avoidCount","0");//回避委员
            content=content.replace("$agreeCount","15");//同意
            content=content.replace("$updateAgreeCount","2");//修改后同意
            content=content.replace("$disagreeCount","3");//不同意
            content=content.replace("$abstentionCount","4");//弃权
            content=content.replace("$agreeCount",stateTotalVO.getAgreeCount());//同意
            content=content.replace("$updateAgreeCount",stateTotalVO.getRejectCount());//修改后同意
            content=content.replace("$disagreeCount",stateTotalVO.getDisagreeCount());//不同意
            content=content.replace("$abstentionCount",stateTotalVO.getWaiveCount());//弃权
            String committeeOpinion="";
            for (EthicalReviewVO row:list) {
                String State="",sgin="",id=row.getId()+"",expName=row.getExpertname();
@@ -251,12 +258,13 @@
                        "        </w:tr>";
               }
            content=content.replace("$committeeOpinion",committeeOpinion);//委员会意见
            content=content.replace("$dateContent",DateUtils.parseDateToStr("yyyy年MM月dd日",new Date()));//日期
        } catch (Exception e) {
            e.printStackTrace();
        }
        String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
        String name = "遗体器官获取伦理审查表_"+nitiateId+"_" +  newTime;
        String name = "遗体器官获取伦理审查表_"+initiateId+"_" +  newTime;
        String filePathData =RuoYiConfig.getProfile() + "/download/wordtemplate";
        //创建文件夹
@@ -264,12 +272,19 @@
        if (!folderPath.exists()) {
            folderPath.mkdirs();
        }
/*
        try {
            Files.writeString(Paths.get(filePathData+ "/" + name + ".doc"),content);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
*/
        try {
            Path path = Paths.get(filePathData + "/" + name + ".doc");
            Files.write(path, content.getBytes(StandardCharsets.UTF_8));
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        Map<String, Object> map = new HashMap<>();
        map.put("downloadUrl", "/download/wordtemplate/" + name + ".doc");