Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
6782d06e
提交
6782d06e
authored
7月 22, 2021
作者:
133
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[添加] zjm
上级
6cdb21c5
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
2059 行增加
和
2 行删除
+2059
-2
FileController.java
...a/com/tykj/dev/device/file/Controller/FileController.java
+26
-1
Check.java
.../src/main/java/com/tykj/dev/device/file/entity/Check.java
+30
-0
Confirm.java
...rc/main/java/com/tykj/dev/device/file/entity/Confirm.java
+3
-0
JavaToPdfHtmlFreeMarker.java
...om/tykj/dev/device/file/util/JavaToPdfHtmlFreeMarker.java
+282
-1
bill10.html
dev-union/src/main/resources/bill10.html
+239
-0
bill7.html
dev-union/src/main/resources/bill7.html
+710
-0
bill8.html
dev-union/src/main/resources/bill8.html
+769
-0
没有找到文件。
dev-file/src/main/java/com/tykj/dev/device/file/Controller/FileController.java
浏览文件 @
6782d06e
...
@@ -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
...
...
dev-file/src/main/java/com/tykj/dev/device/file/entity/Check.java
0 → 100644
浏览文件 @
6782d06e
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
;
}
dev-file/src/main/java/com/tykj/dev/device/file/entity/Confirm.java
浏览文件 @
6782d06e
...
@@ -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
;
...
...
dev-file/src/main/java/com/tykj/dev/device/file/util/JavaToPdfHtmlFreeMarker.java
浏览文件 @
6782d06e
...
@@ -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 {
}
}
}
}
dev-union/src/main/resources/bill10.html
0 → 100755
浏览文件 @
6782d06e
<!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
dev-union/src/main/resources/bill7.html
0 → 100755
浏览文件 @
6782d06e
<!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>
dev-union/src/main/resources/bill8.html
0 → 100755
浏览文件 @
6782d06e
<!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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论