提交 6782d06e authored 作者: 133's avatar 133

[添加] zjm

上级 6cdb21c5
...@@ -74,7 +74,6 @@ public class FileController { ...@@ -74,7 +74,6 @@ public class FileController {
documents.forEach( documents.forEach(
documents1 -> list.addAll(Objects.requireNonNull(JavaToPdfHtmlFreeMarker.freeMarkerRenderList(documents1, url + "htmlModel/"))) documents1 -> list.addAll(Objects.requireNonNull(JavaToPdfHtmlFreeMarker.freeMarkerRenderList(documents1, url + "htmlModel/")))
); );
log.info("[file] 调用了生成出入单据对接口 documents"); log.info("[file] 调用了生成出入单据对接口 documents");
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf(list.toArray(new String[0]),url,preview,"documents/")); return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf(list.toArray(new String[0]),url,preview,"documents/"));
} }
...@@ -114,6 +113,32 @@ public class FileController { ...@@ -114,6 +113,32 @@ public class FileController {
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf90(content,url,preview,"confirm/")); return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf90(content,url,preview,"confirm/"));
} }
/**
* 生成单据 核查确认单
* @return
*/
@ApiOperation(value = "生成单据 核查确认单")
@PostMapping("/printCheck")
public ResponseEntity printCheck(@RequestBody Confirm confirm) {
String[] content = JavaToPdfHtmlFreeMarker.freeMarkerRenderVerification2(confirm,url+"htmlModel/");
log.info("[file] 调用了生成确认单据对接口 confirm");
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf90(content,url,preview,"confirm/"));
}
/**
* 生成单据 确认单据合并
* @return
*/
@ApiOperation(value = "生成单据 确认单据合并")
@PostMapping("/printConfirmMerge")
public ResponseEntity printConfirmMerge(@RequestBody Confirm confirm) {
String[] content = JavaToPdfHtmlFreeMarker.freeMarkerRenderConfirmMerge(confirm,url+"htmlModel/");
log.info("[file] 调用了生成确认单据对接口 confirm");
return ResponseEntity.ok(JavaToPdfHtmlFreeMarker.createPdf90(content,url,preview,"confirm/"));
}
/** /**
* 生成单据 核查确认单据 * 生成单据 核查确认单据
* @return * @return
......
package com.tykj.dev.device.file.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName Check.java
* @Description TODO
* @createTime 2021年07月22日 12:29:00
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Check {
private String model;
private String name;
private List<String> strings;
private Integer count;
private String seqStirng;
}
...@@ -22,6 +22,9 @@ public class Confirm { ...@@ -22,6 +22,9 @@ public class Confirm {
@ApiModelProperty(name = "抬头") @ApiModelProperty(name = "抬头")
private String title; private String title;
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "装备信息") @ApiModelProperty(name = "装备信息")
private List<DocumentDevice> confirmDevices; private List<DocumentDevice> confirmDevices;
......
...@@ -7,6 +7,7 @@ import com.tykj.dev.device.file.entity.*; ...@@ -7,6 +7,7 @@ import com.tykj.dev.device.file.entity.*;
import com.tykj.dev.device.zxing.util.ZXingUtil; import com.tykj.dev.device.zxing.util.ZXingUtil;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;
import jdk.nashorn.internal.ir.IfNode;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ResourceUtils; import org.springframework.util.ResourceUtils;
import org.xhtmlrenderer.pdf.ITextFontResolver; import org.xhtmlrenderer.pdf.ITextFontResolver;
...@@ -348,6 +349,35 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -348,6 +349,35 @@ public class JavaToPdfHtmlFreeMarker {
return max; return max;
} }
private static int toMaxList(List<String> strings){
Integer count=strings.size();
return (count%7>0) ? count/7 + 1 : count/7;
}
private static String seqToString(List<String> strings){
StringBuilder stringBuilder=new StringBuilder();
strings.forEach(
s -> {
stringBuilder.append(" ").append(s).append(" ");
}
);
stringBuilder.append("<br />");
return stringBuilder.toString();
}
private static String toALLSeqStirng(List<String> strings){
int count=toMaxList(strings);
StringBuilder allStirng= new StringBuilder();
for (int i=1;i<=count;i++){
if (i*7<strings.size()) {
allStirng.append(seqToString(strings.subList((i - 1) * 7, i * 7)));
}else {
allStirng.append(seqToString(strings.subList((i - 1) * 7, strings.size())));
}
}
return allStirng.toString();
}
private static List<String> toListString(String str,int len) throws UnsupportedEncodingException { private static List<String> toListString(String str,int len) throws UnsupportedEncodingException {
...@@ -520,6 +550,7 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -520,6 +550,7 @@ public class JavaToPdfHtmlFreeMarker {
private static Map<String,Object> toConfirmMap(Confirm confirm, List<DocumentDevice> list,Integer page,Integer count){ private static Map<String,Object> toConfirmMap(Confirm confirm, List<DocumentDevice> list,Integer page,Integer count){
Map<String,Object> data = new HashMap(); Map<String,Object> data = new HashMap();
data.put("title",confirm.getTitle()); data.put("title",confirm.getTitle());
data.put("unit",confirm.getUnit());
data.put("page",page); data.put("page",page);
data.put("count",count); data.put("count",count);
List<DocumentDevice> list1=new ArrayList<>(); List<DocumentDevice> list1=new ArrayList<>();
...@@ -535,6 +566,18 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -535,6 +566,18 @@ public class JavaToPdfHtmlFreeMarker {
return data; return data;
} }
private static Map<String,Object> toCheckMap(Confirm confirm, List<Check> list,Integer page,Integer count,String time){
Map<String,Object> data = new HashMap();
data.put("title",confirm.getTitle());
data.put("unit",confirm.getUnit());
data.put("page",page);
data.put("count",count);
data.put("checks",list);
data.put("time",time);
return data;
}
private static Map<String,Object> toDestructionMap(Destruction destruction, List<DocumentDevice> list,String test,Integer page,Integer count){ private static Map<String,Object> toDestructionMap(Destruction destruction, List<DocumentDevice> list,String test,Integer page,Integer count){
Map<String,Object> data = new HashMap(); Map<String,Object> data = new HashMap();
...@@ -602,6 +645,197 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -602,6 +645,197 @@ public class JavaToPdfHtmlFreeMarker {
} }
/**
* freemarker渲染html 确认单据合并
*/
public static String[] freeMarkerRenderConfirmMerge(Confirm confirm,String htmlPath) {
Writer out = new StringWriter();
String [] strings=new String[100000];
int index=0;
try {
Template template = freemarkerCfg.getTemplate("bill7.html");
template.setEncoding("UTF-8");
List<DocumentDevice> list=confirm.getConfirmDevices();
List<List<DocumentDevice>> listList=toConfirmMergeList(list);
int count=listList.size();
Integer page=1;
for (List<DocumentDevice> list1:listList) {
String htmlname=htmlPath+ UUID.randomUUID().toString()+".html";
// 合并数据模型与模板
FileWriter fileWriter = new FileWriter(new File(htmlname));
template.process(toConfirmMap(confirm,list1,page,count),fileWriter);
out.flush();
strings[index]=htmlname;
index++;
page++;
}
return strings;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
return null;
}
public static List<List<DocumentDevice>> toConfirmMergeList(List<DocumentDevice> deviceList) throws UnsupportedEncodingException {
List<List<DocumentDevice>> lists=new ArrayList<>();
deviceList.stream().sorted(Comparator.comparing(DocumentDevice::getModel)).collect(Collectors.toList());
List<DocumentDevice> documentDevices=new ArrayList<>();
int i=0;
for (int j=0;j< deviceList.size();j++){
DocumentDevice documentDevice=deviceList.get(j);
int max= toMax2(documentDevice);
if (i+max==14){
String s=String.join("",toListString(documentDevice.getDeviceSerialNumber(),56));
documentDevice.setOneCount(max);
documentDevice.setDeviceSerialNumber(s);
documentDevices.add(documentDevice);
lists.add(documentDevices);
documentDevices=new ArrayList<>();
i=0;
}else if (i+max>14){
//当前页面少了多少行
int differ=14-i;
List<String> modelList= toListString(documentDevice.getModel(),13);
List<String> seqList=toListString(documentDevice.getDeviceSerialNumber(),56);
List<String> pasList=toListString(documentDevice.getParts(),13);
DocumentDevice documentDevice1=new DocumentDevice();
if (modelList.size()>differ){
documentDevice.setModel(String.join("",modelList.subList(0,differ)));
documentDevice1.setModel(String.join("",modelList.subList(differ,modelList.size())));
}
if (seqList.size()>differ){
documentDevice.setDeviceSerialNumber(String.join("",seqList.subList(0,differ)));
documentDevice1.setDeviceSerialNumber(String.join("",seqList.subList(differ,seqList.size())));
}
if (pasList.size()>differ){
documentDevice.setParts(String.join("",pasList.subList(0,differ)));
documentDevice1.setParts(String.join("",pasList.subList(differ,pasList.size())));
}
documentDevice.setOneCount(differ);
documentDevices.add(documentDevice);
lists.add(documentDevices);
documentDevices=new ArrayList<>();
documentDevice1.setOneCount(max-differ);
documentDevices.add(documentDevice1);
i=max-differ;
}else {
String s=String.join("",toListString(documentDevice.getDeviceSerialNumber(),56));
documentDevice.setOneCount(max);
documentDevice.setDeviceSerialNumber(s);
documentDevices.add(documentDevice);
i=i+max;
}
}
if (documentDevices.size()!=0){
lists.add(documentDevices);
}
return lists;
}
public static List<List<Check>> toCheckMergeList(List<DocumentDevice> deviceList,String unit) throws UnsupportedEncodingException {
List<List<Check>> lists=new ArrayList<>();
Map<String,Check> map=new HashMap<>();
deviceList.forEach(
documentDevice -> {
String key=documentDevice.getModel()+documentDevice.getParts();
if (map.containsKey(key)){
Check check=map.get(key);
check.setCount(check.getCount()+1);
List<String> strings=check.getStrings();
strings.add(documentDevice.getDeviceSerialNumber());
check.setStrings(strings);
map.put(key,check);
}else {
Check check= new Check();
List<String> strings=new ArrayList<>();
check.setCount(1);
check.setModel(documentDevice.getModel());
check.setName(documentDevice.getParts());
strings.add(documentDevice.getDeviceSerialNumber());
check.setStrings(strings);
map.put(key,check);
}
}
);
List<Check> checkList=map.values().stream().sorted(Comparator.comparing(Check::getModel)).collect(Collectors.toList());
List<Check> checkList2=new ArrayList<>();
int i=0;
for (int j=0;j< checkList.size();j++){
Check check=checkList.get(j);
List<String> stringList=check.getStrings();
int max = toMaxList(check.getStrings())+1;
if (i+max==30){
check.setSeqStirng(toALLSeqStirng(stringList));
checkList2.add(check);
lists.add(checkList2);
checkList2=new ArrayList<>();
i=0;
}else if (i+max>30){
//当前页面少了多少行
int differ=30-i;
check.setSeqStirng(toALLSeqStirng(stringList.subList(0,differ*7)));
checkList2.add(check);
lists.add(checkList2);
checkList2=new ArrayList<>();
List<String> strings= stringList.subList(differ*7,stringList.size());
Integer max2= toMaxList(strings);
Check check1 = new Check();
int count = (max2%30>0) ? max2/30 + 1 : max2/30;
if (count!=1) {
int o = 1;
while (o <= count - 1) {
check1.setSeqStirng(toALLSeqStirng(strings.subList((o - 1) * 7 * 30, o * 7 * 30)));
checkList2.add(check1);
lists.add(checkList2);
checkList2 = new ArrayList<>();
o++;
}
List<String> endList = strings.subList((count - 1) * 7 * 30, strings.size());
Integer max4= toMaxList(endList);
int count1 = (max4%30>0) ? max4/30 + 1 : max4/30;
if (count1 == 30) {
check1.setSeqStirng(toALLSeqStirng(endList));
checkList2.add(check1);
lists.add(checkList2);
checkList2 = new ArrayList<>();
i = 0;
}else {
check1.setSeqStirng(toALLSeqStirng(endList));
checkList2.add(check1);
i=max4;
}
}else {
check1.setSeqStirng(toALLSeqStirng(strings));
checkList2.add(check1);
i=toMaxList(strings);
}
}else {
check.setSeqStirng(toALLSeqStirng(stringList));
checkList2.add(check);
i=i+max;
}
}
if (checkList2.size()!=0){
lists.add(checkList2);
}
return lists;
}
/** /**
* freemarker渲染html 核查确认单据 * freemarker渲染html 核查确认单据
*/ */
...@@ -640,6 +874,47 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -640,6 +874,47 @@ public class JavaToPdfHtmlFreeMarker {
return null; return null;
} }
/**
* freemarker渲染html 核查确认单据 修改
*/
public static String[] freeMarkerRenderVerification2(Confirm confirm,String htmlPath) {
Writer out = new StringWriter();
String [] strings=new String[100000];
int index=0;
Instant instant = new Date().toInstant();
String local1 = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
try {
Template template = freemarkerCfg.getTemplate("bill10.html");
template.setEncoding("UTF-8");
List<DocumentDevice> list=confirm.getConfirmDevices();
List<List<Check>> listList=toCheckMergeList(list,confirm.getUnit());
int count=listList.size();
Integer page=1;
for (List<Check> list1:listList) {
String htmlname=htmlPath+ UUID.randomUUID().toString()+".html";
// 合并数据模型与模板
FileWriter fileWriter = new FileWriter(new File(htmlname));
template.process(toCheckMap(confirm,list1,page,count,local1),fileWriter);
out.flush();
strings[index]=htmlname;
index++;
page++;
}
return strings;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
return null;
}
// /** // /**
// * 确认单据页面调用接口 // * 确认单据页面调用接口
// */ // */
...@@ -879,6 +1154,7 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -879,6 +1154,7 @@ public class JavaToPdfHtmlFreeMarker {
*/ */
private static List<List<DocumentDevice>> toVerificationList(List<DocumentDevice> deviceList){ private static List<List<DocumentDevice>> toVerificationList(List<DocumentDevice> deviceList){
List<List<DocumentDevice>> lists=new ArrayList<>(); List<List<DocumentDevice>> lists=new ArrayList<>();
deviceList= deviceList.stream().sorted(Comparator.comparing(DocumentDevice::getModel)).collect(Collectors.toList());
List<DocumentDevice> documentDevices=new ArrayList<>(); List<DocumentDevice> documentDevices=new ArrayList<>();
int i=0; int i=0;
for (DocumentDevice documentDevice : deviceList) { for (DocumentDevice documentDevice : deviceList) {
...@@ -924,12 +1200,16 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -924,12 +1200,16 @@ public class JavaToPdfHtmlFreeMarker {
return max; return max;
} }
/** /**
* 自查确认单据 * 自查确认单据
* @param deviceList * @param deviceList
* @return * @return
*/ */
private static List<List<DocumentDevice>> toConfirmList(List<DocumentDevice> deviceList){ private static List<List<DocumentDevice>> toConfirmList(List<DocumentDevice> deviceList){
deviceList.stream().sorted(Comparator.comparing(DocumentDevice::getModel)).collect(Collectors.toList());
List<List<DocumentDevice>> lists=new ArrayList<>(); List<List<DocumentDevice>> lists=new ArrayList<>();
List<DocumentDevice> documentDevices=new ArrayList<>(); List<DocumentDevice> documentDevices=new ArrayList<>();
int i=0; int i=0;
...@@ -958,7 +1238,6 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -958,7 +1238,6 @@ public class JavaToPdfHtmlFreeMarker {
} }
private static int String_length(String value) { private static int String_length(String value) {
int valueLength = 0; int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]"; String chinese = "[\u4e00-\u9fa5]";
...@@ -1295,4 +1574,6 @@ public class JavaToPdfHtmlFreeMarker { ...@@ -1295,4 +1574,6 @@ public class JavaToPdfHtmlFreeMarker {
} }
} }
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
font-family: SimHei;
}
.bottomTxt {
text-align: center;
font-size: 10px;
color: #646464;
height: 10px;
line-height: 10px;
}
/*@page{size:297mm 210mm;}<!-- 设置PDF页面大小,此配置只对生成PDF文件有效,不会对页面显示生效 -->*/
@page {
size: 210mm 297mm;
/*margin: 0.25in;*/
/*-fs-flow-bottom: "footer";*/
/*-fs-flow-left: "left";*/
/*-fs-flow-right: "right";*/
/*border: thin solid black;*/
/*padding: 1em;*/
}
.returnTablePrint {
width: 100%;
height: 100%;
overflow: hidden;
color: #000;
cursor: default;
}
.returnTablePrint .content {
width: 100%;
height: 100%;
/* background: url("../../../assets/img/detailsBg.png") no-repeat; */
/*background-size: 100% 100%;*/
/*padding: 30px;*/
/*box-sizing: border-box;*/
}
.returnTablePrint .content>div {
width: 100%;
height: 100%;
background: #fff;
/* padding: 30px; */
box-sizing: border-box;
}
.returnTablePrint .content>p {
width: 100%;
text-align: center;
font-size: 22px;
font-weight: bold;
color: #4a475d;
}
.returnTablePrint .listWrapper {
/* width: 92%; */
margin: 0 auto;
/* padding: 0px 20px 20px 20px; */
height: calc(100% - 70px);
/*padding: 10px 30px;*/
box-sizing: border-box;
}
.returnTablePrint .list {
/* width: 92%; */
margin: 0 auto;
/* padding: 0px 20px 20px 20px; */
/* height: calc(100% - 75px); */
height: calc(100% - 12px)
}
.returnTablePrint .title {
width: 100%;
font-size: 20px;
text-align: center;
position: relative;
margin: 0;
padding: 0;
box-sizing: border-box;
margin-top: 9px;
}
.returnTablePrint .title span:nth-child(2) {
font-size: 28px;
color: #000000;
}
.returnTablePrint .title span:nth-child(2) span {
font-size: 20px;
color: #141414;
}
.returnTablePrint .main-title {
font-size: 17px;
color: #000000;
text-align: center;
}
table.altrowstable {
width: 100%;
font-size: 14px;
color: #141414;
border-width: 0px;
border-color: #a9c6c9;
border-collapse: collapse;
text-align: center;
table-layout: fixed;
word-break: break-all;
}
table.altrowstable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #ccc;
background-color: #dedede;
height: 20px;
line-height: 20px;
font-size: 10px;
}
table.altrowstable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #ccc;
word-break: break-all;
word-wrap: break-word;
height: 20px;
line-height: 20px;
font-size: 14px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oddrowcolor {
background-color: #fff;
}
.evenrowcolor {
background-color: #fafafa;
}
.person {
color: #4a475b;
text-align: right;
font-size: 16px;
}
.person>span {
display: inline-block;
margin-right: 30pt;
}
/* tr:nth-child(odd) {
background: #fafafa;
} */
</style>
</head>
<body>
<div class="returnTablePrint">
<div class="content">
<div>
<div class="listWrapper">
<div class="list">
<p class="title" style="margin-bottom:20px;">
<div class="main-title">
<span>
${title}
</span>
</div>
</p>
<div style="height: 900px;">
<#list checks as dev>
<table class="altrowstable" id="alternatecolor">
<tr>
<td>${dev.model}</td>
<td>${dev.name}</td>
<td>${dev.count}</td>
</tr>
<tr>
<td colspan="3">${dev.seqStirng}</td>
</tr>
</table>
</#list>
</div>
</div>
<p class="person" style="margin-top: 20px;font-size: 10px;width: 100%;text-align: left;">
<span style="width: 200px;text-align: center;width: 49%;margin: 0;">经办人:</span>
<span style="width: 200px;text-align: center;width: 49%;margin: 0;">审核人:</span>
</p>
</div>
</div>
</div>
<div>
<p class="bottomTxt" style="float: left;">注:编号连续使用"-"省略</p>
<p class="bottomTxt" style="float: right;">第${page}页/共${count}页</p>
</div>
</div>
<!--<script type="text/javascript">-->
<!--function altRows(id){-->
<!--if(document.getElementsByTagName){-->
<!--var table = document.getElementById(id);-->
<!--var rows = table.getElementsByTagName("tr");-->
<!--for(i = 0; i < rows.length; i++){-->
<!--if(i % 2 == 0){-->
<!--rows[i].className = "evenrowcolor";-->
<!--}else{-->
<!--rows[i].className = "oddrowcolor";-->
<!--}-->
<!--}-->
<!--}-->
<!--}-->
<!--window.onload=function(){-->
<!--altRows('alternatecolor');-->
<!--}-->
<!--</script>-->
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<!--自查确认-->
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
body,span,p,tr,td {
font-size: 15px;
font-family: FangSong_GB2312;
margin: 0;
padding: 0;
}
/*@page{size:297mm 210mm;}<!-- 设置PDF页面大小,此配置只对生成PDF文件有效,不会对页面显示生效 -->*/
@page {
size: 297mm 210mm;
}
.erwei{
width: 43px;
height: 43px;
position: fixed;
left: 150px;
top: 0px;
}
.bottomTxt {
text-align: center;
font-size: 15px;
color: #000;
height: 10px;
line-height: 10px;
margin-top: 4px;
}
.returnTablePrint {
width: 100%;
height: 100%;
overflow: hidden;
color: #000;
cursor: default;
}
.returnTablePrint .content {
width: 100%;
height: 100%;
}
.returnTablePrint .content>div {
width: 100%;
height: 100%;
background: #fff;
/* padding: 30px; */
box-sizing: border-box;
}
/* .returnTablePrint .content>p{
width: 100%;
text-align: center;
font-size: 22px;
font-weight: bold;
color: #4a475d;
} */
.returnTablePrint .listWrapper {
/*margin: 0 auto;*/
/* height: calc(100% - 40px); */
box-sizing: border-box;
}
.returnTablePrint .list {
/*margin: 0 auto;*/
height: calc(100% - 12px)
}
.returnTablePrint .title {
width: 100%;
font-size: 22px;
text-align: center;
position: relative;
/* margin: 0 0 15px; */
box-sizing: border-box;
margin-bottom: 4px;
}
/* .returnTablePrint .title span:nth-child(2){
font-size: 28px;
color: #000000;
}
.returnTablePrint .title span:nth-child(2) span{
font-size: 20px;
color: #141414;
} */
.returnTablePrint .title .number {
font-size: 15px;
color: #000;
}
/* .returnTablePrint .other{
width: 100%;
color: #141414;
font-size: 20px;
margin-top: 20px;
padding-left: 50px;
position: relative;
box-sizing: border-box;
margin-bottom: 20px;
}
.returnTablePrint .other>span span:nth-child(2){
display: inline-block;
margin:0 40px 0 10px;
} */
.returnTablePrint .listCon {
height: 100%;
border: 1px solid #7f7f7f;
}
.returnTablePrint .line1 {
width: 100%;
font-size: 15px;
box-sizing: border-box;
border-bottom: 1px solid #7f7f7f;
color: #333;
line-height: 20px;
height: 24px;
}
.returnTablePrint .line1 .sendTo {
display: inline-block;
width: 49%;
height: 24px;
color: #000;
line-height: 24px;
box-sizing: border-box;
/*padding-left: 20px;*/
}
.returnTablePrint .line1 .sendNum {
display: inline-block;
width: 49%;
font-size: 15px;
height: 24px;
line-height: 24px;
color: #000;
box-sizing: border-box;
/*padding-left: 20px;*/
}
.returnTablePrint .line1 .sendTo {
border-right: 1px solid #7f7f7f;
}
.returnTablePrint .line1 .sendTo span:nth-child(2),
.returnTablePrint .line1 .sendNum span:nth-child(2) {
display: inline-block;
margin-left: 5px;
}
.returnTablePrint .line2 {
height: 100%;
/* padding: 20px; */
border-bottom: 1px solid #7f7f7f;
}
.returnTablePrint .tableList {
height: 375px;
overflow:hidden;
}
.returnTablePrint .line2>>>.el-table tbody tr:nth-child(odd) {
background-color: #fff;
}
.returnTablePrint .line2>>>.el-table tbody tr:nth-child(even) {
background-color: #fff;
}
.returnTablePrint .line3 {
height: 164px;
width: 100%;
}
.returnTablePrint .line3 .left {
display: inline-block;
width: 47%;
box-sizing: border-box;
position: relative;
/* padding-bottom: 80px; */
}
.returnTablePrint .line3 .right {
display: inline-block;
/* width: 49%; */
box-sizing: border-box;
position: relative;
/* padding-bottom: 80px; */
}
.returnTablePrint .line3 .left {
border-right: 1px solid #7f7f7f;
padding: 5px 10px 0;
height:97%;
}
.returnTablePrint .line3 .left>span,
.returnTablePrint .line3 .right>span {
display: block;
/* line-height: 50px; */
}
.returnTablePrint .line3 .right {
height: 100%;
padding: 5px 10px;
box-sizing: border-box;
}
.returnTablePrint .line3 .left>span>span:nth-child(2),
.returnTablePrint .line3 .right>span>span:nth-child(2) {
margin-left: 8px;
}
.returnTablePrint .line3 i {
display: block;
text-align: right;
position: absolute;
right: 5px;
bottom: 5px;
font-style: normal;
font-size: 12px;
}
.returnTablePrint .line3 .right i {
font-style: normal;
}
.returnTablePrint .line3 i>span>span {
display: block;
}
.returnTablePrint>>>.el-scrollbar__wrap {
overflow-x: hidden;
margin-bottom: 0;
}
.returnTablePrint .checkName span:nth-child(2) {
color: #000;
display: inline-block;
}
.returnTablePrint>>>.el-table tbody .cell {
color: #000;
}
.returnTablePrint .label {
color: #000;
font-size: 15px;
}
.returnTablePrint .value {
color: #000;
font-size: 15px;
}
.returnTablePrint .main-title span{
font-size: 22px;
color: #333;
font-weight: bold;
}
.returnTablePrint .main-title {
font-size: 22px;
color: #333;
line-height: 20px;
text-align: center;
margin-bottom: 4px;
}
.returnTablePrint .footer {
display: flex;
justify-content: flex-end;
padding: 0 40px;
box-sizing: border-box;
}
.button-submit {
margin-left: 50px;
}
table.altrowstable2 {
width: 100%;
font-size: 16px;
color: #000;
border-width: 0px;
border-color: #a9c6c9;
border-collapse: collapse;
text-align: center;
table-layout: fixed;
word-break: break-all;
}
table.altrowstable2 th {
height: 25px;
line-height:25px;
font-size: 15px;
background-color: #fff;
border:1px solid #bebebe;
padding-top: 0;
}
table.altrowstable2 td {
height: 25px;
line-height:25px;
font-size: 15px;
word-break: break-all;
word-wrap: break-word;
border:1px solid #bebebe;
width: 100%;
}
.td2{
height: 50px !important;
}
.td3{
height: 75px !important;
}
.td4{
height: 100px !important;
}
.td5{
height: 125px !important;
}
.td6{
height: 150px !important;
}
.td7{
height: 175px !important;
}
.td8{
height: 200px !important;
}
.td9{
height: 225px !important;
}
.td10{
height: 250px !important;
}
.td11{
height: 275px !important;
}
.td12{
height: 300px !important;
}
.td13{
height: 325px !important;
}
table.altrowstable {
width: 100%;
font-size: 16px;
color: #000;
border-width: 0px;
border-color: #a9c6c9;
border-collapse: collapse;
text-align: center;
table-layout: fixed;
word-break: break-all;
}
table.altrowstable th {
height: 24px;
line-height:24px;
font-size: 15px;
background-color: #ebebeb;
marign-top:none;
border:1px solid #bebebe;
padding-top: 0;
padding-bottom: 0;
}
table.altrowstable td {
height: 24px;
line-height:24px;
font-size: 15px;
word-break: normal;
word-wrap: normal;
border:1px solid #bebebe;
width: 100%;
}
/*table.altrowstable .altrowstableTr:nth-child(odd) {
height: 18px;
word-break: break-all;
word-wrap: break-word;
background-color: #f2f2f2;
} */
.leftImg {
position: absolute;
bottom: 0px;
right: 150px;
}
.rightImg {
position: absolute;
bottom: 0px;
right: 150px;
.oddrowcolor {
background-color: #fff;
}
.evenrowcolor {
background-color: #fafafa;
}
/*tr:nth-child(odd) {*/
/* background: #fafafa;*/
/*}*/
</style>
</head>
<body>
<div class="returnTablePrint">
<div class="content">
<div>
<div class="listWrapper">
<div class="list">
<div class="title">
<div class="main-title">
<span>
${title!}
</span>
</div>
<div style="width:100%;font-size: 1px;">
<div style="display:inline-block;text-align:left; width: 33%; font-size: 10px;"
class="number">
<span></span>
</div>
<div style="display:inline-block;text-align:center; width: 33%; font-size: 10px;"
class="number">
<span></span>
</div>
<div style="display:inline-block;text-align:right; width: 33%; font-size: 10px;"
class="number">
<span></span>
</div>
</div>
</div>
<div class="listCon">
<div class="line1">
<span class="sendTo" style="border: none;">
<span style="text-indent: 5px; display: inline-block;">检查单位:</span>
</span>
</div>
<div class="line2 tableList">
<table class="altrowstable" id="alternatecolor">
<tr style="border-bottom: 1px solid #dedede; border-top: 1px solid #dedede;">
<!-- <th>序号</th><th>型号</th><th>形态</th><th>密级</th><th>应用领域</th><th>数量</th><th style="width: 420px;">装备序列号</th><th>备注</th> -->
<th width="70px">序号</th>
<th width="96px">型号</th>
<th width="96px">部件</th>
<th width="50px">密级</th>
<th width="100px">应用领域</th>
<th width="72px">数量</th>
<th width="420px">装备序列号</th>
<th>备注</th>
</tr>
<#list documentDevices as dev>
<tr class="altrowstableTr">
<td>
${dev.code!}
</td>
<td>${dev.model!}</td><td>${dev.parts!}</td><td>${dev.securityClassification!}</td><td>${dev.applicationField!}</td>
<td>
${dev.count!}
</td>
<!--<td>${dev.deviceSerialNumber!}</td>-->
<#if dev.oneCount == 1>
<td>${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 2>
<td class="td2">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 3>
<td class="td3">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 4>
<td class="td4">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 5>
<td class="td5">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 6>
<td class="td6">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 7>
<td class="td7">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 8>
<td class="td8">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 9>
<td class="td9">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 10>
<td class="td10">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 11>
<td class="td11">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 12>
<td class="td12">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 13>
<td class="td13">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 14>
<td class="td14">${dev.deviceSerialNumber!}</td>
</#if>
<td>${dev.remark!}</td>
</tr>
</#list>
</table>
<table class="altrowstable2" id="alternatecolor">
<tr style="border-bottom: 1px solid #dedede;">
<th width="70px"></th>
<th width="96px"></th>
<th width="96px"></th>
<th width="50px"></th>
<th width="100px"></th>
<th width="72px"></th>
<th width="420px"></th>
<th></th>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
<div class="line3">
<div class="left">
<span style="padding-bottom:32px ;">
<span class="label"><span style="letter-spacing: 7px;">签发</span>人:</span>
<span class="value">${nameA1!}</span>
</span>
</div>
<span class="right">
<div style="width: 100%;">
<span style="width: 100%;display: inline-block;padding-bottom:32px ;">
<span class="label"><span style="letter-spacing: 7px;">经办</span>人:</span>
<span class="value">${nameB!}</span>
</span>
</div>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<p class="bottomTxt" style="float: left;">注:编号连续使用"-"省略</p>
<p class="bottomTxt" style="float: right;">第${page}页/共${count}页</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<!--核查确认单据-->
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
body,span,p,tr,td {
font-size: 15px;
font-family: FangSong_GB2312;
margin: 0;
padding: 0;
}
/*@page{size:297mm 210mm;}<!-- 设置PDF页面大小,此配置只对生成PDF文件有效,不会对页面显示生效 -->*/
@page {
size: 297mm 210mm;
}
.erwei{
width: 43px;
height: 43px;
position: fixed;
left: 150px;
top: 0px;
}
.bottomTxt {
text-align: center;
font-size: 15px;
color: #000;
height: 10px;
line-height: 10px;
margin-top: 4px;
}
.returnTablePrint {
width: 100%;
height: 100%;
overflow: hidden;
color: #000;
cursor: default;
}
.returnTablePrint .content {
width: 100%;
height: 100%;
}
.returnTablePrint .content>div {
width: 100%;
height: 100%;
background: #fff;
/* padding: 30px; */
box-sizing: border-box;
}
/* .returnTablePrint .content>p{
width: 100%;
text-align: center;
font-size: 22px;
font-weight: bold;
color: #4a475d;
} */
.returnTablePrint .listWrapper {
/*margin: 0 auto;*/
/* height: calc(100% - 40px); */
box-sizing: border-box;
}
.returnTablePrint .list {
/*margin: 0 auto;*/
height: calc(100% - 12px)
}
.returnTablePrint .title {
width: 100%;
font-size: 22px;
text-align: center;
position: relative;
/* margin: 0 0 15px; */
box-sizing: border-box;
margin-bottom: 4px;
}
/* .returnTablePrint .title span:nth-child(2){
font-size: 28px;
color: #000000;
}
.returnTablePrint .title span:nth-child(2) span{
font-size: 20px;
color: #141414;
} */
.returnTablePrint .title .number {
font-size: 15px;
color: #000;
}
/* .returnTablePrint .other{
width: 100%;
color: #141414;
font-size: 20px;
margin-top: 20px;
padding-left: 50px;
position: relative;
box-sizing: border-box;
margin-bottom: 20px;
}
.returnTablePrint .other>span span:nth-child(2){
display: inline-block;
margin:0 40px 0 10px;
} */
.returnTablePrint .listCon {
height: 100%;
border: 1px solid #7f7f7f;
}
.returnTablePrint .line1 {
width: 100%;
font-size: 15px;
box-sizing: border-box;
border-bottom: 1px solid #7f7f7f;
color: #333;
line-height: 20px;
height: 24px;
}
.returnTablePrint .line1 .sendTo {
display: inline-block;
width: 49%;
height: 24px;
color: #000;
line-height: 24px;
box-sizing: border-box;
/*padding-left: 20px;*/
}
.returnTablePrint .line1 .sendNum {
display: inline-block;
width: 49%;
font-size: 15px;
height: 24px;
line-height: 24px;
color: #000;
box-sizing: border-box;
/*padding-left: 20px;*/
}
.returnTablePrint .line1 .sendTo {
border-right: 1px solid #7f7f7f;
}
.returnTablePrint .line1 .sendTo span:nth-child(2),
.returnTablePrint .line1 .sendNum span:nth-child(2) {
display: inline-block;
margin-left: 5px;
}
.returnTablePrint .line2 {
height: 100%;
/* padding: 20px; */
border-bottom: 1px solid #7f7f7f;
}
.returnTablePrint .tableList {
height: 375px;
overflow:hidden;
}
.returnTablePrint .line2>>>.el-table tbody tr:nth-child(odd) {
background-color: #fff;
}
.returnTablePrint .line2>>>.el-table tbody tr:nth-child(even) {
background-color: #fff;
}
.returnTablePrint .line3 {
height: 164px;
width: 100%;
}
.returnTablePrint .line3 .left {
display: inline-block;
width: 47%;
box-sizing: border-box;
position: relative;
/* padding-bottom: 80px; */
}
.returnTablePrint .line3 .right {
display: inline-block;
/* width: 49%; */
box-sizing: border-box;
position: relative;
/* padding-bottom: 80px; */
}
.returnTablePrint .line3 .left {
border-right: 1px solid #7f7f7f;
padding: 5px 10px 0;
height:97%;
}
.returnTablePrint .line3 .left>span,
.returnTablePrint .line3 .right>span {
display: block;
/* line-height: 50px; */
}
.returnTablePrint .line3 .right {
height: 100%;
padding: 5px 10px;
box-sizing: border-box;
}
.returnTablePrint .line3 .left>span>span:nth-child(2),
.returnTablePrint .line3 .right>span>span:nth-child(2) {
margin-left: 8px;
}
.returnTablePrint .line3 i {
display: block;
text-align: right;
position: absolute;
right: 5px;
bottom: 5px;
font-style: normal;
font-size: 12px;
}
.returnTablePrint .line3 .right i {
font-style: normal;
}
.returnTablePrint .line3 i>span>span {
display: block;
}
.returnTablePrint>>>.el-scrollbar__wrap {
overflow-x: hidden;
margin-bottom: 0;
}
.returnTablePrint .checkName span:nth-child(2) {
color: #000;
display: inline-block;
}
.returnTablePrint>>>.el-table tbody .cell {
color: #000;
}
.returnTablePrint .label {
color: #000;
font-size: 15px;
}
.returnTablePrint .value {
color: #000;
font-size: 15px;
}
.returnTablePrint .main-title span{
font-size: 22px;
color: #333;
font-weight: bold;
}
.returnTablePrint .main-title {
font-size: 22px;
color: #333;
line-height: 20px;
text-align: center;
margin-bottom: 4px;
}
.returnTablePrint .footer {
display: flex;
justify-content: flex-end;
padding: 0 40px;
box-sizing: border-box;
}
.button-submit {
margin-left: 50px;
}
table.altrowstable2 {
width: 100%;
font-size: 16px;
color: #000;
border-width: 0px;
border-color: #a9c6c9;
border-collapse: collapse;
text-align: center;
table-layout: fixed;
word-break: break-all;
}
table.altrowstable2 th {
height: 25px;
line-height:25px;
font-size: 15px;
background-color: #fff;
border:1px solid #bebebe;
padding-top: 0;
}
table.altrowstable2 td {
height: 25px;
line-height:25px;
font-size: 15px;
word-break: break-all;
word-wrap: break-word;
border:1px solid #bebebe;
width: 100%;
}
.td2{
height: 50px !important;
}
.td3{
height: 75px !important;
}
.td4{
height: 100px !important;
}
.td5{
height: 125px !important;
}
.td6{
height: 150px !important;
}
.td7{
height: 175px !important;
}
.td8{
height: 200px !important;
}
.td9{
height: 225px !important;
}
.td10{
height: 250px !important;
}
.td11{
height: 275px !important;
}
.td12{
height: 300px !important;
}
.td13{
height: 325px !important;
}
table.altrowstable {
width: 100%;
font-size: 16px;
color: #000;
border-width: 0px;
border-color: #a9c6c9;
border-collapse: collapse;
text-align: center;
table-layout: fixed;
word-break: break-all;
}
table.altrowstable th {
height: 24px;
line-height:24px;
font-size: 15px;
background-color: #ebebeb;
marign-top:none;
border:1px solid #bebebe;
padding-top: 0;
padding-bottom: 0;
}
table.altrowstable td {
height: 24px;
line-height:24px;
font-size: 15px;
word-break: normal;
word-wrap: normal;
border:1px solid #bebebe;
width: 100%;
}
/*table.altrowstable .altrowstableTr:nth-child(odd) {
height: 18px;
word-break: break-all;
word-wrap: break-word;
background-color: #f2f2f2;
} */
.leftImg {
position: absolute;
bottom: 0px;
right: 150px;
}
.rightImg {
position: absolute;
bottom: 0px;
right: 150px;
.oddrowcolor {
background-color: #fff;
}
.evenrowcolor {
background-color: #fafafa;
}
/*tr:nth-child(odd) {*/
/* background: #fafafa;*/
/*}*/
</style>
</head>
<body>
<div class="returnTablePrint">
<img class="erwei" src=${QRCode} />
<div class="content">
<div>
<div class="listWrapper">
<div class="list">
<div class="title">
<div class="main-title">
<span>
${title!}
</span>
</div>
<div style="width:100%;font-size: 1px;">
<div style="display:inline-block;text-align:left; width: 33%; font-size: 10px;"
class="number">
<span>${number!}</span>
</div>
<div style="display:inline-block;text-align:center; width: 33%; font-size: 10px;"
class="number">
<span>(${ul!})</span>
</div>
<div style="display:inline-block;text-align:right; width: 33%; font-size: 10px;"
class="number">
<span>机密</span>
</div>
</div>
</div>
<div class="listCon">
<div class="line1">
<span class="sendTo">
<span style="text-indent: 5px; display: inline-block;">发往:</span>
<span>${receiveUnit!}</span>
</span>
<span class="sendNum">
<span style="text-indent: 5px; display: inline-block;">批复文号:</span>
<span>${replyNum!}</span>
</span>
</div>
<div class="line2 tableList">
<table class="altrowstable" id="alternatecolor">
<tr style="border-bottom: 1px solid #dedede; border-top: 1px solid #dedede;">
<!-- <th>序号</th><th>型号</th><th>形态</th><th>密级</th><th>应用领域</th><th>数量</th><th style="width: 420px;">装备序列号</th><th>备注</th> -->
<th width="70px">序号</th>
<th width="96px">型号</th>
<th width="96px">部件</th>
<th width="50px">密级</th>
<th width="100px">应用领域</th>
<th width="72px">数量</th>
<th width="420px">装备序列号</th>
<th>备注</th>
</tr>
<#list documentDevices as dev>
<tr class="altrowstableTr">
<td>
${dev.code!}
</td>
<td>${dev.model!}</td><td>${dev.parts!}</td><td>${dev.securityClassification!}</td><td>${dev.applicationField!}</td>
<td>
${dev.count!}
</td>
<!--<td>${dev.deviceSerialNumber!}</td>-->
<#if dev.oneCount == 1>
<td>${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 2>
<td class="td2">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 3>
<td class="td3">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 4>
<td class="td4">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 5>
<td class="td5">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 6>
<td class="td6">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 7>
<td class="td7">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 8>
<td class="td8">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 9>
<td class="td9">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 10>
<td class="td10">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 11>
<td class="td11">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 12>
<td class="td12">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 13>
<td class="td13">${dev.deviceSerialNumber!}</td>
<#elseif dev.oneCount == 14>
<td class="td14">${dev.deviceSerialNumber!}</td>
</#if>
<td>${dev.remark!}</td>
</tr>
</#list>
</table>
<table class="altrowstable2" id="alternatecolor">
<tr style="border-bottom: 1px solid #dedede;">
<th width="70px"></th>
<th width="96px"></th>
<th width="96px"></th>
<th width="50px"></th>
<th width="100px"></th>
<th width="72px"></th>
<th width="420px"></th>
<th></th>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="altrowstableTr">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
<div class="line3">
<span class="left">
<span style="padding:20px 0 32px ;">
<span class="label">发件单位:</span>
<span class="value">${senderUnit!}</span>
</span>
<span style="padding-bottom:32px ;">
<span class="label"><span style="letter-spacing: 7px;">签发</span>人:</span>
<span class="value">${nameA1!}</span>
</span>
<span>
<span class="label"><span style="letter-spacing: 7px;">经办</span>人:</span>
<span class="value">${nameA!}</span>
</span>
<i>
<span style="color: #000">
<span style="margin-bottom: 5px;">(公章)</span>
<span><span style="color: #fff;">1234</span><span
style="color: #fff;">0121</span><span
style="color: #fff;">0232</span></span>
<div class="leftImg">
<div id="pos0">
<img style="width:80px;height:80px" src=${srcA} class="" id="" />
</div>
</div>
</span>
</i>
</span>
<span class="right">
<div style="width: 100%;">
<span style="width: 100%;display: inline-block;padding:20px 0 32px ;">
<span class="label">收件单位:</span>
<span class="value">${receiveUnit}</span>
</span>
<span style="width: 100%;display: inline-block;padding-bottom:32px ;">
<span class="label"><span style="letter-spacing: 7px;">经办</span>人:</span>
<span class="value">${nameB!}</span>
</span>
<span style="width: 100%;display: inline-block;">
<span class="label"><span style="letter-spacing: 7px;">经办</span>人:</span>
<span class="value">${nameB1!}</span>
</span>
</div>
<div style="left: 250px;top: 38px;">
<!--<div style="position: relative;left: 250px;top: 38px;">-->
<#if srcB=='"1"'>
<i style="position: absolute;bottom: 10px;right: -150px;">
<#else>
<i style="position: absolute;bottom: 10px;right: -85px;">
</#if>
<!--<i style="bottom: 30px;right: 90px;"> -->
<span style="color: #000">
<span style="margin-bottom: 5px;">(公章)</span>
<span><span style="color: #fff;">1234</span><span
style="color: #fff;">0121</span><span
style="color: #fff;">0232</span></span>
<!--<div class="rightImg">-->
<!--<div id="pos1">-->
<img id="imgB" style="position: fixed;bottom: 95px;right: 164px;width:80px;height:80px" src=${srcB} />
<!--</div>-->
<!--</div>-->
</span>
</i>
</div>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<p class="bottomTxt" style="float: left;">注:编号连续使用"-"省略</p>
<p class="bottomTxt" style="float: right;">第${page}页/共${count}页</p>
</div>
</div>
</body>
</html>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论