Commit 3552c34d authored by 刘林's avatar 刘林

fix(JG):使用标志套打

parent 29c3657f
......@@ -145,4 +145,11 @@ public interface ICommonService {
* @return 被引用次数 > 0 则设备不可删除
*/
Integer countEquipInUseTimesForDel(String record);
/**
* 套打使用标志生成
* @param useFlagParamDto 参数
* @param response 文件信息
*/
void fightUseFlagGenerate(UseFlagParamDto useFlagParamDto, HttpServletResponse response);
}
......@@ -785,9 +785,19 @@ public class CommonServiceImpl implements ICommonService {
String qrCode = ImageUtils.generateQRCode((String) map.getOrDefault("applyNo", ""), 100, 100);
map.put("supervisoryCode", qrCode); // 监管二维码 代码优化
// 读取资源文件夹下的模板
ClassPathResource resource = new ClassPathResource("templates/use-registration-model.pdf");
this.fillParamValueToPdf(map, response,"templates/use-registration-model.pdf","套打使用登记证.pdf");
}
/**
* 根据参数填充PDF文本域
* @param map 参数
* @param response response
* @param pathResource PDF模版路径
* @param printFileName 生成文件名称
*/
private void fillParamValueToPdf(Map<String, Object> map, HttpServletResponse response,String pathResource, String printFileName) {
// 读取资源文件夹下的模板
ClassPathResource resource = new ClassPathResource(pathResource);
PdfReader reader = null;
ByteArrayOutputStream bos = null;
......@@ -807,16 +817,13 @@ public class CommonServiceImpl implements ICommonService {
acroFields.setFieldProperty(param.getKey(), "textsize", 12.0f, null);
// 将 map 中的值写到 pdf 模板对应的文本域中
acroFields.setField(param.getKey(), param.getValue() + "");
}
// 如果为false那么生成的PDF文件还能编辑,所以一定要设为true
pdfStamper.setFormFlattening(true);
pdfStamper.close();
// 返回文件
// FileExporter.exportFile(FileExporter.FileType.valueOf("pdf"), "套打使用登记证", bos.toByteArray(), response);
this.writeAttachment(response, bos.toByteArray());
this.writeAttachment(response, bos.toByteArray(),printFileName);
} catch (IOException | DocumentException e) {
e.printStackTrace();
} finally {
......@@ -836,9 +843,9 @@ public class CommonServiceImpl implements ICommonService {
* @param response 响应
* @param content 附件内容
*/
private void writeAttachment(HttpServletResponse response, byte[] content) throws IOException {
private void writeAttachment(HttpServletResponse response, byte[] content, String printFileName) throws IOException {
// 设置 header 和 contentType
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("套打使用登记证.pdf", "UTF-8"));
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(printFileName, "UTF-8"));
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
// 输出附件
IoUtil.write(response.getOutputStream(), false, content);
......@@ -1620,4 +1627,34 @@ public class CommonServiceImpl implements ICommonService {
return commonMapper.countEquipInUseTimesForDel(record);
}
@Override
public void fightUseFlagGenerate(UseFlagParamDto useFlagParamDto, HttpServletResponse response) {
Objects.requireNonNull(useFlagParamDto, "参数不能为空");
String printFileName = "套打使用登记标志.pdf";
Map<String, Object> paramMap = Bean.BeantoMap(useFlagParamDto);
// 二维码设置
setQrCode(useFlagParamDto, paramMap);
setNextDate(useFlagParamDto, paramMap);
setRegName(useFlagParamDto, paramMap);
this.fillParamValueToPdf(paramMap, response, selectPdfTemplate(useFlagParamDto.getEquListCode()), printFileName);
}
/**
* 根据设备列表代码选择对应的 PDF 模板
* @param equListCode 设备代码
* @return model
*/
private String selectPdfTemplate(String equListCode) {
switch (equListCode) {
case "3000":
return "templates/use-flag-model-elevator.pdf";
case "23T0":
return "templates/use-flag-model-vehicle.pdf";
default:
return "templates/use-flag-model-other.pdf";
}
}
}
\ No newline at end of file
......@@ -1018,7 +1018,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
commonService.useFlagGenerate(this.buildUseFlagParamDto(useRegistration, registerInfo, factoryInfo, exportParamsMap), response);
} else if("3".equals(printType)){
// 使用标志套打
log.info("套打待开发");
commonService.fightUseFlagGenerate(this.buildUseFlagParamDto(useRegistration, registerInfo, factoryInfo, exportParamsMap), response);
}
}
......@@ -1074,7 +1074,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
IdxBizJgMaintenanceRecordInfo idxBizJgMaintenanceRecordInfo = idxBizJgMaintenanceRecordInfoService.queryNewestDetailByRecord(registerInfo.getRecord());
useFlagParamDto.setEmergencyTel(this.buildEmergencyTel(idxBizJgMaintenanceRecordInfo));
useFlagParamDto.setMaintenanceUnitName(idxBizJgMaintenanceRecordInfo.getMeUnitName());
useFlagParamDto.setMaintenanceUnitName(idxBizJgMaintenanceRecordInfo.getMeUnitName()== null? "" : idxBizJgMaintenanceRecordInfo.getMeUnitName());
}
private String buildEmergencyTel(IdxBizJgMaintenanceRecordInfo idxBizJgMaintenanceRecordInfo) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment