|
@@ -21,12 +21,14 @@ import cn.com.ty.lift.business.project.dao.entity.Project;
|
|
|
import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
|
|
|
import cn.com.ty.lift.business.project.service.ProjectLiftRelevanceService;
|
|
|
import cn.com.ty.lift.business.project.service.ProjectService;
|
|
|
+import cn.com.ty.lift.common.aliservice.aliyunoss.AliyunOSS;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import cn.com.ty.lift.common.utils.DateUtils;
|
|
|
import cn.com.ty.lift.common.utils.MapHelper;
|
|
|
import cn.com.ty.lift.common.utils.ValuePool;
|
|
|
import cn.com.ty.lift.common.verify.Val;
|
|
|
import cn.com.ty.lift.common.verify.Validate;
|
|
|
+import cn.com.ty.lift.common.verify.ValidateException;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.IterUtil;
|
|
@@ -843,7 +845,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
|
|
|
return baseMapper.pageByLift(request.getPage(), request);
|
|
|
}
|
|
|
|
|
|
- public void export(MtRecordRequest mtRecordRequest, HttpServletResponse response) {
|
|
|
+ public String export(MtRecordRequest mtRecordRequest) {
|
|
|
Map<String, String> headerAlias = new LinkedHashMap<>();
|
|
|
headerAlias.put("projectName", "项目名称");
|
|
|
headerAlias.put("useCompanyCode", "梯号");
|
|
@@ -907,62 +909,45 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
|
|
|
projectName = StrUtil.isNotEmpty(projectName) ? projectName.replace(illegalChars, "-") : "[项目]";
|
|
|
registrationCode = StrUtil.isNotEmpty(registrationCode) ? registrationCode.replace(illegalChars, "-") : "[电梯注册代码]";
|
|
|
//保养单及图片文件夹 dir/i.ProjectName-RegistrationCode/
|
|
|
-// String imgDir = StrUtil.format("{}{}{}.{}-{}{}", dir, File.separator, (i + 1), projectName, registrationCode, File.separator);
|
|
|
+ String imgDir = StrUtil.format("{}{}{}.{}-{}{}", dir, File.separator, (i + 1), projectName, registrationCode, File.separator);
|
|
|
//生成维保图片
|
|
|
-// List<MtRecordImg> mtRecordImgs = mtRecordResponse.getMtRecordImgs();
|
|
|
-// List<MtRecordImg> imgs = mtRecordImgs.stream().filter(img -> mtRecordResponse.getId().equals(img.getMtRecordId())).collect(Collectors.toList());
|
|
|
-// if (IterUtil.isNotEmpty(imgs)) {
|
|
|
-// for (int n = 0; n < imgs.size(); n++) {
|
|
|
-// String imgUrl = imgs.get(n).getImgUrl();
|
|
|
-// if (StrUtil.isNotEmpty(imgUrl)) {
|
|
|
-// log.info("imgUrl: {}", imgUrl);
|
|
|
-// String filename = imgDir + StrUtil.format("维保图片{}.jpg", (n + 1));
|
|
|
-// log.info("生成维保图片文件: {}", filename);
|
|
|
-// HttpUtil.downloadFile(imgUrl, filename);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
+ List<MtRecordImg> mtRecordImgs = mtRecordResponse.getMtRecordImgs();
|
|
|
+ List<MtRecordImg> imgs = mtRecordImgs.stream().filter(img -> mtRecordResponse.getId().equals(img.getMtRecordId())).collect(Collectors.toList());
|
|
|
+ if (IterUtil.isNotEmpty(imgs)) {
|
|
|
+ for (int n = 0; n < imgs.size(); n++) {
|
|
|
+ String imgUrl = imgs.get(n).getImgUrl();
|
|
|
+ if (StrUtil.isNotEmpty(imgUrl)) {
|
|
|
+ log.info("imgUrl: {}", imgUrl);
|
|
|
+ String filename = imgDir + StrUtil.format("维保图片{}.jpg", (n + 1));
|
|
|
+ log.info("生成维保图片文件: {}", filename);
|
|
|
+ HttpUtil.downloadFile(imgUrl, filename);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//生成保养单
|
|
|
- String maintenanceExcelDir = StrUtil.format("{}{}{}.{}-{}{}", dir, File.separator, (i + 1), projectName, registrationCode, "保养单.xlsx");
|
|
|
+ String maintenanceExcelDir = imgDir + "保养单.xlsx";
|
|
|
log.info("生成保养单: {}", maintenanceExcelDir);
|
|
|
excelWriter(mtRecordResponse, maintenanceExcelDir);
|
|
|
}
|
|
|
//压缩文件夹
|
|
|
log.info("生成zipFile路径: {}", zip);
|
|
|
ZipUtil.zip(dir, zip);
|
|
|
+ //上传文件到阿里云,并返回路径给前端
|
|
|
+ return AliyunOSS.me().putObject("maintenance/export/zip/" + generateCode + ".zip", readInputStream(new FileInputStream(new File(zip))));
|
|
|
} catch (Exception e) {
|
|
|
- FileUtil.del(zipFile);
|
|
|
- FileUtil.del(baseDir);
|
|
|
log.error("生成保养文件失败", e);
|
|
|
throw Validate.validateException("生成保养文件失败");
|
|
|
- }
|
|
|
- //下载压缩文件
|
|
|
- if (FileUtil.exist(zipFile)) {
|
|
|
- // 设置强制下载不打开, ZIP的application/x-zip-compressed
|
|
|
- response.setContentType("application/force-download");
|
|
|
- // 设置文件名
|
|
|
- response.addHeader("Content-Disposition", "attachment;fileName=" + zipFile.getName());
|
|
|
- byte[] buffer = new byte[1024];
|
|
|
- try (FileInputStream fis = new FileInputStream(zipFile);
|
|
|
- BufferedInputStream bis = new BufferedInputStream(fis)) {
|
|
|
- OutputStream os = response.getOutputStream();
|
|
|
- int i;
|
|
|
- while ((i = bis.read(buffer)) != -1) {
|
|
|
- os.write(buffer, 0, i);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("下载保养文件失败", e);
|
|
|
- throw Validate.validateException("下载保养文件失败");
|
|
|
- } finally {
|
|
|
- //删除临时根目录和zip文件
|
|
|
- FileUtil.del(zipFile);
|
|
|
- FileUtil.del(baseDir);
|
|
|
- }
|
|
|
+ } finally {
|
|
|
+ FileUtil.del(zipFile);
|
|
|
+ FileUtil.del(baseDir);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private MtRecordResponse getMtRecordResponse(@RequestBody @Val MtRecordRequest request) {
|
|
|
MtRecordResponse entity = this.infoById(request);
|
|
|
+ if (entity == null) {
|
|
|
+ throw new ValidateException("维保记录不存在");
|
|
|
+ }
|
|
|
String repairDuration = this.getRepairDuration(entity.getRepairDiff());
|
|
|
entity.setRepairDuration(repairDuration);
|
|
|
Validate.notNull(entity, ValuePool.MAINTENANCE_RECORD_NOT_EXIST);
|