package com.dy.pmsBase.MarkQrCode; import cn.hutool.core.codec.Base64; import com.alibaba.excel.converters.Converter; import com.dy.common.aop.SsoPowerAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pmsGlobal.aop.Log; import com.dy.pmsGlobal.util.QrCodeConstant; import com.dy.pmsGlobal.util.QrCodeUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * 生成标识类二维码 */ @Slf4j @RestController @RequestMapping(path = "markQrCode") @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") public class MarkQrCodeCtrl { private static final String fileName = "标识类二维码" ; private static final String sheetName = "标识类二维码" ; /** * 客户端请求得到标识类二维码 * @return */ @GetMapping(path = "show") @SsoPowerAop(power = "10100007") @Log("查询编码信息") public BaseResponse> show() throws Exception{ List list = new ArrayList<>() ; String[][] marks = QrCodeConstant.Marks() ; for(String[] mark : marks){ ResultVo vo = new ResultVo() ; vo.code = mark[0] ; vo.name = mark[1] ; byte[] codes = QrCodeUtil.genQrCode(vo.code); vo.imgBase64 = "data:image/jpeg;base64," + Base64.encode(codes); list.add(vo) ; } return BaseResponseUtils.buildSuccess(list); } /** * 客户端请求下载标识类二维码的excel文件 * @return */ @GetMapping(path = "download") @SsoPowerAop(power = "10100008") @Log("导出编码信息") public void download(HttpServletResponse response) throws Exception{ List list = new ArrayList<>() ; String[][] marks = QrCodeConstant.Marks() ; for(String[] mark : marks){ ExcelVo vo = new ExcelVo() ; vo.code = mark[0] ; vo.name = mark[1] ; vo.image = QrCodeUtil.genQrCode(vo.code); list.add(vo) ; } QrCodeUtil.downloadExcel(response, fileName, sheetName, list); } }