提交 01a77a82 authored 作者: 133's avatar 133

[misc、决算报告] 添加model排序工具类

上级 0bd8bccd
......@@ -111,7 +111,7 @@ public class FileController {
public ResponseEntity printConfirm(@RequestBody Confirm confirm) {
String[] content = JavaToPdfHtmlFreeMarker.freeMarkerRenderConfirm(confirm,url+"htmlModel/");
log.info("[file] 调用了生成确认单据对接口 confirm");
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf(content,url,preview,"confirm/"));
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf90(content,url,preview,"confirm/"));
}
/**
......
package com.tykj.dev.device.file.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -35,45 +36,48 @@ public class WrodParameter {
*/
private String titleTimeEnd;
/**
* 总条数
*/
private Integer total;
@ApiModelProperty(value = "装备类型总数", example = "100")
private Integer deviceNumber;
/**
* 入库数量
*/
private Integer storageNum;
@ApiModelProperty(value = "入库数量", example = "10")
private Integer inLibraryNum;
/**
* 维修数量
*/
private Integer maintenanceNum;
@ApiModelProperty(value = "维修数量", example = "10")
private Integer sendRepairNum;
/**
* 配发数量
*/
private Integer withNum;
@ApiModelProperty(value = "维修退回", example = "10")
private Integer receiveRepairNum;
/**
* 清退数量
*/
private Integer repelNum;
@ApiModelProperty(value = "销毁数量", example = "10")
private Integer destoryNum;
/**
* 销毁数量
*/
private Integer destructionNum;
@ApiModelProperty(value = "发起配发数量", example = "10")
private Integer sendAllotNum;
/**
* 列装数量
*/
private Integer fieldingNum;
@ApiModelProperty(value = "接收配发数量", example = "10")
private Integer receiveAllotNum;
@ApiModelProperty(value = "发起退回数量", example = "10")
private Integer sensAllotBackNum;
@ApiModelProperty(value = "接收退回", example = "10")
private Integer receiveAllotBackNum;
@ApiModelProperty(value = "清退数量", example = "10")
private Integer sendBackNum;
@ApiModelProperty(value = "报废数量", example = "10")
private Integer scrapStatisticsNum;
@ApiModelProperty(value = "列装数量", example = "10")
private Integer packingNum;
@ApiModelProperty(value = "退装数量", example = "10")
private Integer retiredNum;
@ApiModelProperty(value = "退役", example = "10")
private Integer decommissioningStatisticsNum;
/**
* 退装数量
*/
private Integer backPackNum;
/**
* 时间 2021年4月12日
......
......@@ -3,6 +3,7 @@ package com.tykj.dev.device.file.service.Impl;
import com.tykj.dev.device.file.entity.WrodParameter;
import com.tykj.dev.device.file.service.UseReportFIleService;
import com.tykj.dev.device.file.util.WordUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -36,20 +37,42 @@ public class UseReportFIleServiceImpl implements UseReportFIleService {
public void findToFileService(WrodParameter wrodParameter, HttpServletResponse response, HttpServletRequest httpServletRequest) throws IOException {
Map<String, Object> params = new HashMap<>();
// 渲染文本
params.put("time",wrodParameter.getTime());
params.put("total",wrodParameter.getTotal());
params.put("BackPackNum",wrodParameter.getBackPackNum());
params.put("DestructionNum",wrodParameter.getDestructionNum());
params.put("FieldingNum",wrodParameter.getFieldingNum());
params.put("MaintenanceNum",wrodParameter.getMaintenanceNum());
params.put("RepelNum",wrodParameter.getRepelNum());
params.put("StorageNum",wrodParameter.getStorageNum());
//装备类型总数
params.put("deviceNumber",wrodParameter.getDeviceNumber());
//入库数量
params.put("inLibraryNum",wrodParameter.getInLibraryNum());
//维修数量
params.put("sendRepairNum",wrodParameter.getSendRepairNum());
//维修退回
params.put("receiveRepairNum",wrodParameter.getReceiveRepairNum());
//销毁数量
params.put("destoryNum",wrodParameter.getDestoryNum());
//发起配发数量
params.put("sendAllotNum",wrodParameter.getSendAllotNum());
//接收配发数量
params.put("receiveAllotNum",wrodParameter.getReceiveAllotNum());
//发起退回数量
params.put("sensAllotBackNum",wrodParameter.getSensAllotBackNum());
//接收退回
params.put("receiveAllotBackNum",wrodParameter.getReceiveAllotBackNum());
//清退数量
params.put("sendBackNum",wrodParameter.getSendBackNum());
//报废数量
params.put("scrapStatisticsNum",wrodParameter.getScrapStatisticsNum());
//列装数量
params.put("packingNum",wrodParameter.getPackingNum());
//退装数量
params.put("retiredNum",wrodParameter.getRetiredNum());
//退役
params.put("decommissioningStatisticsNum",wrodParameter.getDecommissioningStatisticsNum());
params.put("TitleAnnual",wrodParameter.getTitleAnnual());
params.put("TitleTimeEnd",wrodParameter.getTitleTimeEnd());
params.put("TitleTimeStart",wrodParameter.getTitleTimeStart());
params.put("TitleUnitName",wrodParameter.getTitleUnitName());
params.put("WithNum",wrodParameter.getWithNum());
String fileName = wrodParameter.getTitleTimeStart()+"至"+wrodParameter.getTitleTimeEnd()+"使用报告" + ".doc";
String templatePath = ResourceUtils.getURL( "classpath:").getPath()+"docxModel.docx";
url=url+"report/";
......
......@@ -140,6 +140,50 @@ public class JavaToPdfHtmlFreeMarker {
return new FileRet();
}
public static FileRet createPdf90(String[] htmlFiles,String path,String preview,String folderName){
Long startTime = System.currentTimeMillis();
Document document = new Document();
String name=UUID.randomUUID().toString()+".pdf";
String pdfPath=path+folderName+name;
PdfCopy pdfCopy = null; //创建一个新文件
try {
pdfCopy = new PdfCopy(document, new FileOutputStream(pdfPath));
document.open();
for (String htmlFile : htmlFiles) {
if (htmlFile != null) {
String url = new File(htmlFile).toURI().toURL().toString();
ByteArrayOutputStream os = new ByteArrayOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(htmlFile);
// 解决中文不显示问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont("simhei2.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
PdfReader pdfReader = new PdfReader(os.toByteArray());
// PdfDictionary pdfDictionary= pdfReader.getPageN(1);
// pdfDictionary.put(PdfName.ROTATE, new PdfNumber(90));
for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {
PdfImportedPage importedPage = pdfCopy.getImportedPage(pdfReader, i);
pdfCopy.addPage(importedPage);
}
os.close();
}
}
Long endTime = System.currentTimeMillis();
System.out.print("Itext parse Html to Pdf End -> " + (endTime - startTime));
return new FileRet(name, pdfPath, preview +folderName+ name);
} catch (IOException | DocumentException | com.lowagie.text.DocumentException e) {
e.printStackTrace();
} finally {
document.close();
}
return new FileRet();
}
/**
......
package com.tykj.dev.misc.utils;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author zjm
* @version 1.0.0
* @ClassName DeviceModelSort.java
* @Description TODO
* @createTime 2021年07月14日 13:45:00
*/
public class DeviceModelSort {
public static Map<String,Integer> mapModelSort;
public static Set<String> modelToSort(Set<String> modelList){
modelList.stream().sorted(Comparator.comparing(DeviceModelSort::toSort));
return modelList;
}
/**
* 获取型号对应的排序号
* @param model 型号
* @return
*/
private static Integer toSort(String model){
return mapModelSort.get(model);
}
}
......@@ -96,7 +96,8 @@ public class DeviceUseReportController {
ResultObj resultObj = (ResultObj) selectDetail(id).getBody();
DeviceUseReportDetailVo deviceUseReportDetailVo = (DeviceUseReportDetailVo) resultObj.getData();
//新建word模板
WrodParameter wrodParameter = new WrodParameter();
WrodParameter wrodParameter = deviceUseReportDetailVo.toWrodParameter();
Instant instant = deviceUseReportDetailVo.getCreateTime().toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
......@@ -110,14 +111,6 @@ public class DeviceUseReportController {
String endTime= localDateTime2.getYear()+"年"+localDateTime2.getMonthValue()+"月"+localDateTime2.getDayOfMonth()+"日";
wrodParameter.setTitleTimeStart(startTime);
wrodParameter.setTitleTimeEnd(endTime);
wrodParameter.setBackPackNum(deviceUseReportDetailVo.getRetiredNum());
wrodParameter.setTotal(deviceUseReportDetailVo.getDeviceNumber());
wrodParameter.setDestructionNum(deviceUseReportDetailVo.getDestoryNum());
wrodParameter.setFieldingNum(deviceUseReportDetailVo.getPackingNum());
wrodParameter.setStorageNum(deviceUseReportDetailVo.getInLibraryNum());
// wrodParameter.setMaintenanceNum(deviceUseReportDetailVo.getRepairNum());
wrodParameter.setRepelNum(deviceUseReportDetailVo.getSendBackNum());
// wrodParameter.setWithNum(deviceUseReportDetailVo.getAllotNum());
wrodParameter.setTitleAnnual(localDateTime.getYear());
useReportFIleService.findToFileService(wrodParameter, response, httpServletRequest);
return ResponseEntity.ok("下载成功");
......
package com.tykj.dev.device.usereport.subject.vo;
import com.tykj.dev.device.file.entity.WrodParameter;
import com.tykj.dev.misc.base.BeanHelper;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.modelmapper.ModelMapper;
import java.util.Date;
......@@ -56,4 +59,9 @@ public class DeviceUseReportDetailVo {
@ApiModelProperty(value = "报告结束时间")
private Date endTime;
public WrodParameter toWrodParameter(){
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, WrodParameter.class);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论