|
@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.templete.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.distributed.print.business.bean.dto.ExaminationExportDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExaminationExportDto;
|
|
@@ -23,7 +24,9 @@ import com.qmth.distributed.print.business.util.OssUtil;
|
|
import com.qmth.distributed.print.common.contant.SystemConstant;
|
|
import com.qmth.distributed.print.common.contant.SystemConstant;
|
|
import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
|
|
import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
|
|
import com.qmth.distributed.print.common.util.FileUtil;
|
|
import com.qmth.distributed.print.common.util.FileUtil;
|
|
|
|
+import com.qmth.distributed.print.common.util.HexUtils;
|
|
import com.qmth.distributed.print.common.util.ResultUtil;
|
|
import com.qmth.distributed.print.common.util.ResultUtil;
|
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
@@ -535,40 +538,57 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
public Map<String, Object> executeDownloadPdfLogic(Map<String, Object> map) throws Exception {
|
|
public Map<String, Object> executeDownloadPdfLogic(Map<String, Object> map) throws Exception {
|
|
try {
|
|
try {
|
|
TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
|
|
TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
|
|
- SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
|
|
|
|
JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
|
|
JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
|
|
ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
|
|
ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
|
|
|
|
+ if (Objects.isNull(arraysParams) || arraysParams.getIds().length == 0) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("数组id为空");
|
|
|
|
+ }
|
|
|
|
|
|
//查询examDetail
|
|
//查询examDetail
|
|
QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
|
|
examDetailQueryWrapper.lambda().in(ExamDetail::getPrintPlanId, arraysParams.getIds());
|
|
examDetailQueryWrapper.lambda().in(ExamDetail::getPrintPlanId, arraysParams.getIds());
|
|
List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
|
|
List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
|
|
- Set<Long> attachmentIds = examDetailList.stream().map(ExamDetail::getAttachmentId).collect(Collectors.toSet());
|
|
|
|
-
|
|
|
|
- List<BasicAttachment> basicAttachmentList = basicAttachmentService.listByIds(attachmentIds);
|
|
|
|
-
|
|
|
|
- LocalDateTime nowTime = LocalDateTime.now();
|
|
|
|
- StringJoiner stringJoiner = new StringJoiner("")
|
|
|
|
- .add(SystemConstant.TEMP_FILES_DIR).add(File.separator)
|
|
|
|
- .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
|
|
|
|
- .add(String.valueOf(nowTime.getYear())).add(File.separator)
|
|
|
|
- .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
|
|
|
|
- .add(String.format("%02d", nowTime.getDayOfMonth()))
|
|
|
|
- .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
|
|
|
|
- File zipFile = new File(stringJoiner.toString());
|
|
|
|
- if (!zipFile.getParentFile().exists()) {
|
|
|
|
- zipFile.getParentFile().mkdirs();
|
|
|
|
- zipFile.createNewFile();
|
|
|
|
- }
|
|
|
|
- List<File> sourceFiles = new ArrayList<>();
|
|
|
|
- for (BasicAttachment basicAttachment : basicAttachmentList) {
|
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
|
|
|
|
- StringJoiner stringJoinerPdf = new StringJoiner("")
|
|
|
|
- .add(SystemConstant.TEMP_FILES_DIR).add(File.separator)
|
|
|
|
- .add((String) jsonObject.get("path"));
|
|
|
|
- sourceFiles.add(ossUtil.ossDownload((String) jsonObject.get("path"), stringJoinerPdf.toString()));
|
|
|
|
|
|
+ if (Objects.nonNull(examDetailList)) {
|
|
|
|
+ Set<Long> attachmentIds = examDetailList.stream().map(ExamDetail::getAttachmentId).collect(Collectors.toSet());
|
|
|
|
+ List<BasicAttachment> basicAttachmentList = basicAttachmentService.listByIds(attachmentIds);
|
|
|
|
+
|
|
|
|
+ if (Objects.nonNull(basicAttachmentList)) {
|
|
|
|
+ LocalDateTime nowTime = LocalDateTime.now();
|
|
|
|
+ StringJoiner stringJoiner = new StringJoiner("")
|
|
|
|
+ .add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
|
|
|
|
+ StringJoiner dirName = new StringJoiner("")
|
|
|
|
+ .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
|
|
|
|
+ .add(String.valueOf(nowTime.getYear())).add(File.separator)
|
|
|
|
+ .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
|
|
|
|
+ .add(String.format("%02d", nowTime.getDayOfMonth()))
|
|
|
|
+ .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
|
|
|
|
+ File zipFile = new File(stringJoiner.toString() + dirName.toString());
|
|
|
|
+ if (!zipFile.getParentFile().exists()) {
|
|
|
|
+ zipFile.getParentFile().mkdirs();
|
|
|
|
+ zipFile.createNewFile();
|
|
|
|
+ }
|
|
|
|
+ List<File> sourceFiles = new ArrayList<>();
|
|
|
|
+ for (BasicAttachment basicAttachment : basicAttachmentList) {
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
|
|
|
|
+ StringJoiner stringJoinerPdf = new StringJoiner("")
|
|
|
|
+ .add(SystemConstant.TEMP_FILES_DIR).add(File.separator)
|
|
|
|
+ .add((String) jsonObject.get("path"));
|
|
|
|
+ sourceFiles.add(ossUtil.ossDownload((String) jsonObject.get("path"), stringJoinerPdf.toString()));
|
|
|
|
+ }
|
|
|
|
+ FileUtil.doZip(zipFile, sourceFiles);
|
|
|
|
+ ossUtil.ossUpload(dirName.toString(), zipFile, BinaryUtil.toBase64String(HexUtils.decodeHex(DigestUtils.md5Hex(new FileInputStream(zipFile)))));
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+ jsonObject.put(SystemConstant.PATH, dirName.toString());
|
|
|
|
+ jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
|
|
|
|
+ jsonObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
|
|
|
|
+ tbTask.setResultFilePath(jsonObject.toJSONString());
|
|
|
|
+ for (File file : sourceFiles) {
|
|
|
|
+ file.delete();
|
|
|
|
+ }
|
|
|
|
+ zipFile.delete();
|
|
|
|
+ }
|
|
|
|
+ map.computeIfAbsent(SystemConstant.SIZE, v -> attachmentIds.size());
|
|
}
|
|
}
|
|
- FileUtil.doZip(zipFile, sourceFiles);
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("请求出错", e);
|
|
log.error("请求出错", e);
|
|
if (e instanceof ApiException) {
|
|
if (e instanceof ApiException) {
|