package com.ruoyi.basic.controller;
|
|
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.ExcelWriter;
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.basic.dto.SealConfigExport;
|
import com.ruoyi.basic.pojo.SealConfig;
|
import com.ruoyi.basic.service.SealConfigService;
|
import com.ruoyi.common.core.domain.Result;
|
import com.ruoyi.common.exception.base.BaseException;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.List;
|
|
/**
|
* 印章管理(报告用印) 控制层
|
*/
|
@Api(tags = "印章管理")
|
@RestController
|
@RequestMapping("/sealConfig")
|
public class SealConfigController {
|
|
@Resource
|
private SealConfigService sealConfigService;
|
|
@Value("${file.path}")
|
private String filePath;
|
|
@ApiOperation(value = "查询印章列表")
|
@GetMapping("/pageSeal")
|
public Result<IPage<SealConfig>> pageSeal(Page page, SealConfig query) {
|
return Result.success(sealConfigService.pageSeal(page, query));
|
}
|
|
@ApiOperation(value = "新增印章")
|
@PostMapping("/addSeal")
|
public Result addSeal(@RequestBody SealConfig seal) {
|
return Result.success(sealConfigService.addSeal(seal));
|
}
|
|
@ApiOperation(value = "修改印章")
|
@PostMapping("/updateSeal")
|
public Result updateSeal(@RequestBody SealConfig seal) {
|
return Result.success(sealConfigService.updateSeal(seal));
|
}
|
|
@ApiOperation(value = "删除印章")
|
@DeleteMapping("/delSeal")
|
public Result delSeal(Integer id) {
|
return Result.success(sealConfigService.delSeal(id));
|
}
|
|
@ApiOperation(value = "启用印章下拉列表(供报告批准选择印章)")
|
@GetMapping("/selectEnabled")
|
public Result selectEnabled() {
|
return Result.success(sealConfigService.selectEnabled());
|
}
|
|
@ApiOperation(value = "上传印章图片")
|
@PostMapping("/upload")
|
public Result upload(MultipartFile file) {
|
if (file == null || file.isEmpty()) {
|
throw new BaseException("请选择印章图片");
|
}
|
String originalName = file.getOriginalFilename() == null ? "" : file.getOriginalFilename();
|
String suffix = originalName.substring(originalName.lastIndexOf(".") + 1).toLowerCase();
|
if (!"jpg".equals(suffix) && !"jpeg".equals(suffix) && !"png".equals(suffix)) {
|
throw new BaseException("仅支持 jpg / png 图片");
|
}
|
String fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmssSSS")) + "." + suffix;
|
try {
|
File dir = new File(filePath);
|
if (!dir.exists()) {
|
dir.mkdirs();
|
}
|
file.transferTo(new File(dir.getPath() + File.separator + fileName));
|
} catch (IOException e) {
|
throw new BaseException("印章图片上传失败");
|
}
|
return Result.success(fileName);
|
}
|
|
@ApiOperation(value = "导出印章")
|
@GetMapping("/exportSeal")
|
public void exportSeal(SealConfig query, HttpServletResponse response) {
|
List<SealConfigExport> list = sealConfigService.listForExport(query);
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("UTF-8");
|
String fileName;
|
try {
|
fileName = URLEncoder.encode("印章管理", "UTF-8");
|
} catch (Exception e) {
|
throw new BaseException("导出失败");
|
}
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
try {
|
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream())
|
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
|
WriteSheet mainSheet = EasyExcel.writerSheet(0, "印章管理").head(SealConfigExport.class).build();
|
excelWriter.write(list, mainSheet);
|
excelWriter.finish();
|
} catch (IOException e) {
|
throw new BaseException("导出失败");
|
}
|
}
|
}
|