public Single batchQrCode(TbRiskUnit pojo) { Single single = new Single(); try { List<TbRiskUnit> list = this.unitService.getList(pojo, null); if(list!=null && list.size()>0){ for (TbRiskUnit unit : list) { List<String> ListNote = new ArrayList<>(); //coderService.encode("/phone/risk/unit/getBean?id="+unit.getId(), unit.getId()); if(null!=unit.getRiskUnitName()&&!"".equals(unit.getRiskUnitName())){ ListNote.add("风险分析单元:"+unit.getRiskUnitName()); } if(null!=unit.getHazardName()&&!"".equals(unit.getHazardName())){ ListNote.add("风险分析对象:"+unit.getHazardName()); } if(null!=unit.getHazardDep()&&!"".equals(unit.getHazardDep())){ ListNote.add("责任部门:"+unit.getHazardDep()); } coderService.drawLogoQRCode(null,"/phone/risk/unit/getBean?id="+unit.getId(),ListNote, unit.getId()); } } single.setData(pojo); single.setSuccess(true); single.setMessage("批量生成二维码成功!"); logger.info("批量生成二维码风险单元信息: " + pojo.getRiskUnitName() + "-id: " + pojo.getId()); } catch (Exception e) { single.setMessage("批量生成二维码失败!"); logger.error("批量生成二维码风险单元信息失败 ---> " + e.getMessage()); e.printStackTrace(); } return single; }我怎么在创建二维码之前把更早生成的二维码删除
时间: 2024-02-10 13:14:20 浏览: 48
在创建新的二维码之前,你可以先根据已有的风险单元信息获取其对应的二维码图片文件名,然后使用Java的File类删除该文件,即可删除早期生成的二维码。具体实现可以增加以下代码段:
```java
File qrCodeFile = new File("二维码图片文件路径");
if (qrCodeFile.exists()) {
if (qrCodeFile.delete()) {
logger.info("删除成功!删除的二维码图片文件名为:" + qrCodeFile.getName());
} else {
logger.warn("删除失败!删除的二维码图片文件名为:" + qrCodeFile.getName());
}
} else {
logger.warn("需要删除的二维码图片文件不存在,文件名为:" + qrCodeFile.getName());
}
```
在这个代码段里,你需要把“二维码图片文件路径”替换成你实际使用的二维码图片文件的路径。当然,你还需要在删除二维码图片文件之前先判断该文件是否存在,以避免因为文件不存在而导致的异常。
相关问题
public Single batchQrCode(TbRiskUnit pojo) { Single single = new Single(); try { List<TbRiskUnit> list = this.unitService.getList(pojo, null); CurrentLoginUser user = AppUtil.getCurrentUser(); if (user.getUserType() == 2) { pojo.setCorpId(user.getCorpId()); } if(list!=null && list.size()>0){ for (TbRiskUnit unit : list) { List<String> ListNote = new ArrayList<>(); //coderService.encode("/phone/risk/unit/getBean?id="+unit.getId(), unit.getId()); if(null!=unit.getRiskUnitName()&&!"".equals(unit.getRiskUnitName())){ ListNote.add("风险分析单元:"+unit.getRiskUnitName()); } if(null!=unit.getHazardName()&&!"".equals(unit.getHazardName())){ ListNote.add("风险分析对象:"+unit.getHazardName()); } if(null!=unit.getHazardDep()&&!"".equals(unit.getHazardDep())){ ListNote.add("责任部门:"+unit.getHazardDep()); } coderService.drawLogoQRCode(null,"/phone/risk/unit/getBean?id="+unit.getId(),ListNote, unit.getId()); } } single.setData(pojo); single.setSuccess(true); single.setMessage("批量生成二维码成功!"); logger.info("批量生成二维码风险单元信息: " + pojo.getRiskUnitName() + "-id: " + pojo.getId()); } catch (Exception e) { single.setMessage("批量生成二维码失败!"); logger.error("批量生成二维码风险单元信息失败 ---> " + e.getMessage()); e.printStackTrace(); } return single; }怎么在批量生成二维码之前删除此企业原来已有的二维码(此企业原来已有的二维码在TbQrCode实体中)
要删除TbRiskUnit对应的TbQrCode实体中的二维码,可以在生成新二维码之前,先查询该企业已有的二维码信息,然后再根据查询结果进行删除操作。
具体的实现方式可以参考以下代码:
```java
public Single batchQrCode(TbRiskUnit pojo) {
Single single = new Single();
try {
// 查询该企业已有的二维码信息
List<TbQrCode> qrCodeList = qrCodeService.getListByCorpId(pojo.getCorpId());
// 删除已有的二维码
for (TbQrCode qrCode : qrCodeList) {
qrCodeService.delete(qrCode);
}
// 生成新的二维码
List<TbRiskUnit> list = this.unitService.getList(pojo, null);
CurrentLoginUser user = AppUtil.getCurrentUser();
if (user.getUserType() == 2) {
pojo.setCorpId(user.getCorpId());
}
if(list!=null && list.size()>0){
for (TbRiskUnit unit : list) {
List<String> ListNote = new ArrayList<>();
if(null!=unit.getRiskUnitName()&&!"".equals(unit.getRiskUnitName())){
ListNote.add("风险分析单元:"+unit.getRiskUnitName());
}
if(null!=unit.getHazardName()&&!"".equals(unit.getHazardName())){
ListNote.add("风险分析对象:"+unit.getHazardName());
}
if(null!=unit.getHazardDep()&&!"".equals(unit.getHazardDep())){
ListNote.add("责任部门:"+unit.getHazardDep());
}
coderService.drawLogoQRCode(null,"/phone/risk/unit/getBean?id="+unit.getId(),ListNote, unit.getId());
}
}
single.setData(pojo);
single.setSuccess(true);
single.setMessage("批量生成二维码成功!");
logger.info("批量生成二维码风险单元信息: " + pojo.getRiskUnitName() + "-id: " + pojo.getId());
} catch (Exception e) {
single.setMessage("批量生成二维码失败!");
logger.error("批量生成二维码风险单元信息失败 ---> " + e.getMessage());
e.printStackTrace();
}
return single;
}
```
其中,`qrCodeService`是对TbQrCode实体进行操作的服务类,`getListByCorpId()`方法可以根据企业ID查询该企业已有的二维码信息。如果查询到了已有的二维码信息,就通过`delete()`方法进行删除操作。然后再进行新二维码的生成。
public void download(HttpServletResponse response) throws IOException { TbRiskUnit pojo= new TbRiskUnit(); CurrentLoginUser user = AppUtil.getCurrentUser(); if (user.getUserType() == 2) { pojo.setCorpId(user.getCorpId()); } List<TbRiskUnit> list = unitService.getQrCodeList(pojo); String[] filePath = new String["D:\\tomcat\\tomcat-9.0.65_risk\\webapps\\"+list.size()]; StringBuilder sb=new StringBuilder(); List<File> fileList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { TbRiskUnit qrCode = list.get(i); sb.append(qrCode.getImageUrl()).append(","); fileList.add(new File(qrCode.getImageUrl())); } response.setHeader("content-type", "application/octet-stream"); response.setContentType("application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=download.zip"); ZipUtils.downloadZip(response.getOutputStream(), fileList); }这段代码的作用
这段代码的作用是从服务器上获取一些风险单位的二维码图片,并将这些图片打包成zip文件,然后通过HttpServletResponse将zip文件下载到本地。具体实现过程是通过调用unitService的getQrCodeList方法获取风险单位的信息,然后通过遍历获取的信息将每个二维码图片的文件路径添加到fileList中,最后使用ZipUtils工具类将fileList中的文件打包成zip文件,并通过HttpServletResponse将zip文件下载到本地。
阅读全文