master
杜函宇 23 hours ago
parent 6014f8f137
commit ce31aeebd1

@ -15,6 +15,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.List;
import static com.ruoyi.common.core.domain.AjaxResult.success;
@ -61,7 +62,7 @@ public class GyslProjectHandbookController {
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据", response = GyslProjectHandbook.class)
public AjaxResult selectOne(@PathVariable Serializable id) {
return success(gyslProjectHandbookService.getById(id));
return success(gyslProjectHandbookService.getData(id));
}
/**

@ -2,6 +2,7 @@ package com.ruoyi.gysl.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.gysl.entity.baseModel.BaseModel;
@ -11,6 +12,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* (GyslProjectHandbook)
@ -54,5 +56,9 @@ public class GyslProjectHandbook extends BaseModel {
@ApiModelProperty(value ="封尾标题" )
@NotBlank(message = "封尾图片不能为空!")
private String tail;
@ApiModelProperty(value ="项目名称数组" )
@TableField(exist = false)
private List<BasicInformation> projectName;
}

@ -2,10 +2,14 @@ package com.ruoyi.gysl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.gysl.entity.BasicInformation;
import com.ruoyi.gysl.entity.GyslProjectHandbook;
import com.ruoyi.gysl.entity.request.HandbookRequest;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
/**
* (gysl_project_handbook)访
*
@ -21,5 +25,10 @@ public interface ProjectHandBookMapper extends BaseMapper<GyslProjectHandbook> {
* @return
*/
Page<GyslProjectHandbook> page(Page<GyslProjectHandbook> a1,@Param("req") HandbookRequest g);
/**
* id
*/
List<BasicInformation> getProjectName(@Param("id") List<String> id);
}

@ -10,7 +10,9 @@ import com.ruoyi.gysl.entity.response.BasicInformationResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.util.List;
/**
* (GyslProjectHandbook)
@ -39,6 +41,11 @@ public interface GyslProjectHandbookService extends IService<GyslProjectHandbook
*
*/
String changeData(String s, BasicInformationResponse b) ;
/**
*
*/
GyslProjectHandbook getData(Serializable id);
}

@ -28,10 +28,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.*;
import java.nio.file.Paths;
import java.util.*;
@ -60,7 +57,7 @@ public class GyslProjectHandbookServiceImpl extends ServiceImpl<ProjectHandBookM
*/
@Override
public Page<GyslProjectHandbook> page(Page<GyslProjectHandbook> a1, HandbookRequest g) {
return baseMapper.page(a1,g);
return baseMapper.page(a1, g);
}
@Override
@ -121,22 +118,6 @@ public class GyslProjectHandbookServiceImpl extends ServiceImpl<ProjectHandBookM
PdfDocument pdf = new PdfDocument(writer)) {
HtmlConverter.convertToPdf(a, pdf, props);
}
// String dest = RuoYiConfig.getProfile() + "/ceshi.pdf";
// PdfMerger merger = new PdfMerger(new PdfDocument(new PdfWriter(dest)));
// for (String src : hbpdf) {
// PdfDocument srcDoc = new PdfDocument(new PdfReader(src));
// merger.merge(srcDoc, 1, srcDoc.getNumberOfPages());
// srcDoc.close();
// }
// merger.close();
// // 设置响应头
// response.setContentType("application/pdf");
// response.setHeader("Content-Disposition", "attachment; filename=\"product_catalog.pdf\"");
// // 4. 生成并写入文档
// try (OutputStream out = response.getOutputStream()) {
//
// }
// 创建内存输出流替代写入ceshi.pdf文件
ByteArrayOutputStream mergedPdfStream = new ByteArrayOutputStream();
// 初始化PdfWriter指向内存流
@ -150,11 +131,21 @@ public class GyslProjectHandbookServiceImpl extends ServiceImpl<ProjectHandBookM
}
}
merger.close();
// 设置响应头
mergedPdfDoc.close(); // 关闭合并的PDF文档
// 删除临时生成的pdfml文件夹及其内容
String pdfmlDirPath = RuoYiConfig.getProfile() + "/pdfml";
try {
FileUtil.del(pdfmlDirPath); // Hutool工具类删除文件夹含内部文件
} catch (Exception e) {
log.error("删除临时文件夹失败: {}");
// 可根据需要决定是否抛出异常或仅记录日志
}
// 设置响应头
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"product_catalog.pdf\"");
response.setContentLength(mergedPdfStream.size());
// 将内存流写入HTTP响应
// 将内存流写入HTTP响应
try (OutputStream out = response.getOutputStream()) {
mergedPdfStream.writeTo(out);
out.flush();
@ -216,5 +207,15 @@ public class GyslProjectHandbookServiceImpl extends ServiceImpl<ProjectHandBookM
}
return handbook;
}
/**
*
*/
@Override
public GyslProjectHandbook getData(Serializable id) {
GyslProjectHandbook byId = getById(id);
byId.setProjectName(baseMapper.getProjectName(Arrays.asList(byId.getXmId().split(","))));
return byId;
}
}

@ -16,5 +16,18 @@
</if>
</where>
</select>
<select id="getProjectName" resultType="com.ruoyi.gysl.entity.BasicInformation">
SELECT a.*
FROM gysl_basic_information a
<where>
<if test="id != null">
and a.id in
<foreach collection="id" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save