package org.springblade.modules.securitypaper.controller; import com.alibaba.excel.EasyExcel; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.apache.commons.codec.Charsets; import org.springblade.common.excel.RowWriteHandler; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.securitypaper.entity.SecurityPaper; import org.springblade.modules.securitypaper.excel.SecurityPaperExcel; import org.springblade.modules.securitypaper.excel.SecurityPaperImporter; import org.springblade.modules.securitypaper.service.SecurityPaperService; import org.springblade.modules.system.excel.SecurityExcel; import org.springblade.modules.system.excel.SecurityImporter; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** * @author zhongrj * @time 2021-12-25 * @desc 保安员证管理控制层 */ @RestController @AllArgsConstructor @RequestMapping("/securityPaper") public class SecurityPaperController { private final SecurityPaperService securityPaperService; // /** // * 自定义分页 // * @param query page,size // * @param securityPaper 保安员证管理信息对象 // */ // @GetMapping("/page") // public R> page(SecurityPaperVo securityPaper, Query query) { // IPage pages = securityPaperService.selectSecurityPaperPage(Condition.getPage(query), securityPaper); // return R.data(pages); // } /** * 新增 * @param securityPaper 保安员证管理信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入securityPaper") public R save(@RequestBody SecurityPaper securityPaper){ return R.data(securityPaperService.save(securityPaper)); } /** * 修改 * @param securityPaper 保安员证管理信息对象 */ @PostMapping("/update") public R update(@RequestBody SecurityPaper securityPaper){ return R.status(securityPaperService.updateById(securityPaper)); } /** * 新增或修改 * @param securityPaper 保安员证管理信息对象 */ @PostMapping("/submit") public R submit(@RequestBody SecurityPaper securityPaper){ return R.data(securityPaperService.saveOrUpdate(securityPaper)); } /** * 删除 * @param ids 保安员证管理信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { return R.status(securityPaperService.removeByIds(Func.toLongList(ids))); } /** * 详情 * @param securityPaper 保安员证管理信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入securityPaper") public R detail(SecurityPaper securityPaper) { SecurityPaper detail = securityPaperService.getOne(Condition.getQueryWrapper(securityPaper)); return R.data(detail); } /** * 导入保安员证数据 */ @PostMapping("import-security-paper") public R importSecurityPaper(MultipartFile file, Integer isCovered, String deptId) { SecurityPaperImporter securityImporter = new SecurityPaperImporter(securityPaperService, false,deptId); ExcelUtil.save(file, securityImporter, SecurityPaperExcel.class); return R.success("操作成功"); } /** * 导出模板 */ @GetMapping("export-template-security-paper") @ApiOperation(value = "导出模板") public void exportSecurity(HttpServletResponse response) throws IOException { List list = new ArrayList<>(); SecurityPaperExcel securityExcel = new SecurityPaperExcel(); securityExcel.setDeptId("xxx保安公司"); securityExcel.setRealName("张三"); securityExcel.setPhone("12345678901"); securityExcel.setCardid("360XXX19XXXXXX****"); securityExcel.setRegistered("江西省南昌市******"); list.add(securityExcel); SecurityPaperExcel securityExcel1 = new SecurityPaperExcel(); securityExcel1.setDeptId("xxx保安公司"); securityExcel1.setRealName("李四"); securityExcel1.setPhone("12345678901"); securityExcel1.setCardid("360XXX19XXXXXX****"); securityExcel1.setRegistered("江西省南昌市******"); list.add(securityExcel1); String fileName = null; try { response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding(org.apache.commons.codec.Charsets.UTF_8.name()); fileName = URLEncoder.encode("保安员导入数据模板-制证" + DateUtil.time(), Charsets.UTF_8.name()); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); //修改单元格格式为文本格式 EasyExcel.write(response.getOutputStream(), SecurityPaperExcel.class).sheet("保安员数据表").registerWriteHandler(new RowWriteHandler()).doWrite(list); } catch (Throwable var6) { throw var6; } } }