package com.ruoyi.inspect.controller;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.domain.Result;
|
import com.ruoyi.framework.exception.ErrorException;
|
import com.ruoyi.inspect.dto.SealUsageCopiesUpdate;
|
import com.ruoyi.inspect.dto.SealUsageExportRequest;
|
import com.ruoyi.inspect.dto.SealUsageLedgerQuery;
|
import com.ruoyi.inspect.pojo.SealUsageLedger;
|
import com.ruoyi.inspect.service.SealUsageLedgerService;
|
import com.ruoyi.inspect.util.SealUsageLedgerWordExporter;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import jakarta.servlet.http.HttpServletResponse;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.nio.charset.StandardCharsets;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("/sealUsageLedger")
|
@Tag(name = "用印管理台账")
|
public class SealUsageLedgerController {
|
|
@Resource
|
private SealUsageLedgerService ledgerService;
|
|
@Operation(summary = "分页查询用印管理台账")
|
@GetMapping("/page")
|
@PreAuthorize("@ss.hasPermi('structural:sealUsageLedger:list')")
|
public Result page(Page<SealUsageLedger> page, SealUsageLedgerQuery query) {
|
return Result.success(ledgerService.page(page, query));
|
}
|
|
@Operation(summary = "修改用印份数")
|
@PostMapping("/updateCopies")
|
@PreAuthorize("@ss.hasPermi('structural:sealUsageLedger:edit')")
|
public Result updateCopies(@RequestBody SealUsageCopiesUpdate update) {
|
ledgerService.updateCopies(update);
|
return Result.success();
|
}
|
|
@Operation(summary = "导出印章使用登记表 Word")
|
@PostMapping("/exportWord")
|
@PreAuthorize("@ss.hasPermi('structural:sealUsageLedger:export')")
|
public void exportWord(@RequestBody SealUsageExportRequest request, HttpServletResponse response) {
|
List<SealUsageLedger> ledgers = ledgerService.listForExport(request);
|
String fileName = "印章使用登记表_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".docx";
|
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''"
|
+ URLEncoder.encode(fileName, StandardCharsets.UTF_8).replace("+", "%20"));
|
try {
|
SealUsageLedgerWordExporter.write(ledgers, response.getOutputStream());
|
} catch (IOException e) {
|
throw new ErrorException("用印台账导出失败");
|
}
|
}
|
}
|