提交 9e96a44c authored 作者: zjm's avatar zjm

合并分支 'dev' 到 'master'

合并 dev 至 master 查看合并请求 !13
......@@ -8,6 +8,8 @@ target/
*.log
.log
**/.log
*.gz
C:/*
### STS ###
\~*.xlsx
......
GET http://127.0.0.1:8087/actuator
Accept: application/vnd.spring-boot.actuator.v2+json
<> 2021-09-03T192754.200.json
###
GET http://127.0.0.1:8087/actuator
Accept: application/vnd.spring-boot.actuator.v2+json
<> 2021-09-03T192650.403.json
###
GET http://127.0.0.1:8087/actuator
Accept: application/vnd.spring-boot.actuator.v2+json
<> 2021-09-03T192615.403.json
###
GET http://127.0.0.1:8087/printDocuments1
<> 2021-04-27T124856.403.json
......
......@@ -27,4 +27,8 @@ public class BcHash {
* 接口返回结果
*/
private BcHashData data;
public BcHash toDate(){
return new BcHash();
}
}
......@@ -28,4 +28,7 @@ public class BcText {
*/
private BcTextData data;
public BcText toData(){
return new BcText();
}
}
package com.tykj.dev.config;
import com.tykj.dev.misc.base.*;
import lombok.Data;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Map;
......@@ -10,6 +13,7 @@ import java.util.stream.Collectors;
/**
* @author dengdiyi
*/
@Slf4j
public class GlobalMap {
public static final Map<Integer, StatusEnum> statusEnumMap;
......@@ -53,6 +57,7 @@ public class GlobalMap {
.collect(Collectors.toMap(deviceSecretLevel -> deviceSecretLevel.id, Function.identity()));
businessMap = Arrays.stream(BusinessEnum.values())
.collect(Collectors.toMap(businessEnum -> businessEnum.id, businessEnum -> businessEnum.name));
log.info("[初始化] 初始map结束...");
}
public static Map<Integer, StatusEnum> getStatusEnumMap() {
......@@ -71,6 +76,10 @@ public class GlobalMap {
return deviceLifeStatusMap;
}
public static Map<Integer, MatchingRange> getMatchingRangeMap() {
return matchingRangeMap;
}
public static Map<Integer, StorageType> getStorageTypeMap() {
return storageTypeMap;
}
......@@ -79,18 +88,14 @@ public class GlobalMap {
return matchingDeviceTypeMap;
}
public static Map<Integer, MatchingRange> getMatchingRangeMap() {
return matchingRangeMap;
public static Map<Integer, DeviceInvisibleRange> getDeviceInvisibleRangeMap() {
return deviceInvisibleRangeMap;
}
public static Map<Integer, DeviceSecretLevel> getDeviceSecretLevelMap() {
return deviceSecretLevelMap;
}
public static Map<Integer, DeviceInvisibleRange> getDeviceInvisibleRangeMap() {
return deviceInvisibleRangeMap;
}
public static Map<Integer, String> getBusinessMap() {
return businessMap;
}
......
......@@ -80,7 +80,6 @@ public enum LogType {
REPAIR_SEND_4(33,REPAIR.id, WAIT_RECEIVE.id, END.id, "上传相关单据,任务结束"),//
REPAIR_SEND_5(34,REPAIR.id, WAIT_RECEIVE.id, WAIT_UPLOAD_FILE.id, "接收维修装备并发起入库(缺少单据)"),
REPAIR_SEND_6(35,REPAIR.id, WAIT_UPLOAD_FILE.id, END.id, "上传送修单据"),
......@@ -107,23 +106,19 @@ public enum LogType {
TRAIN_1(46,TRAIN.id, ORIGIN_STATUS.id, TRAIN1000.id, "发起培训"),
CONFIRM_CHECK_DETAIL_NORMAL_0(401,CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_DETAIL_0.id, "核查详情任务开始"),
CONFIRM_CHECK_DETAIL_NORMAL_1(402,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_0.id, CHECK_DETAIL_1.id, "A岗核查成功,等待专管员B操作"),
CONFIRM_CHECK_DETAIL_NORMAL_2(403,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_1.id, CHECK_DETAIL_2.id, "B岗核查成功,等待核查组成员A审核"),
CONFIRM_CHECK_DETAIL_NORMAL_0(401,CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_DETAIL_REGION_0.id, "核查详情任务开始"),
CONFIRM_CHECK_DETAIL_NORMAL_3(404,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_2.id, CHECK_DETAIL_3.id, "核查组成员A核查成功,等待核查组成员B审核"),
CONFIRM_CHECK_DETAIL_NORMAL_1(402,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_0.id, CHECK_DETAIL_REGION_1.id, "A岗核查成功,等待专管员B操作"),
CONFIRM_CHECK_DETAIL_NORMAL_4(405,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_3.id, END.id, "核查组成员B核查成功,任务结束,上传数据到统计信息"),
CONFIRM_CHECK_DETAIL_NORMAL_2(403,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_1.id, CHECK_DETAIL_REGION_2.id, "B岗核查成功,等待核查组成员A审核"),
CONFIRM_CHECK_DETAIL_OTHER_1(406,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_1.id, END.id, "B岗核查成功,该任务没有核查组成员,任务结束,上传数据到统计信息"),
CONFIRM_CHECK_DETAIL_NORMAL_3(404,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_2.id, END.id, "市专管员审核成功,该自查任务完结"),
CONFIRM_CHECK_DETAIL_OTHER_2(407,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_1.id, CHECK_DETAIL_0.id, "B岗审核失败,跳回A岗人员操作"),
CONFIRM_CHECK_DETAIL_OTHER_1(406,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_1.id, END.id, "B岗核查成功,该任务没有核查组成员,任务结束,上传数据到统计信息"),
CONFIRM_CHECK_DETAIL_OTHER_3(408,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_2.id, CHECK_DETAIL_0.id, "核查组成员A审核失败,跳回A岗人员操作"),
CONFIRM_CHECK_DETAIL_OTHER_2(407,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_1.id, CHECK_DETAIL_REGION_0.id, "B岗审核失败,跳回区A岗人员操作"),
CONFIRM_CHECK_DETAIL_OTHER_4(409,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_3.id, CHECK_DETAIL_0.id, "核查组成员B审核失败,跳回A岗人员操作"),
CONFIRM_CHECK_DETAIL_OTHER_3(408,CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_2.id, CHECK_DETAIL_REGION_0.id, "市专管员审核失败,跳回区A岗人员操作"),
CONFIRM_CHECK_DETAIL_STAT_0(410,CONFIRM_CHECK_STAT.id, ORIGIN_STATUS.id, CHECK_STAT_0.id, "核查统计任务开始"),
......@@ -137,20 +132,35 @@ public enum LogType {
CONFIRM_CHECK_EXAM_STAT_2(415, CONFIRM_CHECK_STAT.id, CHECK_EXAM_STAT_1.id, END.id, "检查统计任务数据已确认完毕,任务完结"),
CONFIRM_CHECK_EXAM_DETAIL_0(416, CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_EXAM_DETAIL_0.id, "检查详情任务开始"),
CONFIRM_CHECK_EXAM_DETAIL_0(416, CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_DETAIL_REGION_0.id, "检查详情任务开始"),
CONFIRM_CHECK_EXAM_DETAIL_1(417, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_0.id, CHECK_EXAM_DETAIL_1.id, "A岗核查成功,等待专管员B操作"),
CONFIRM_CHECK_EXAM_DETAIL_1(417, CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_0.id, CHECK_DETAIL_REGION_1.id, "A岗核查成功,等待专管员B操作"),
CONFIRM_CHECK_EXAM_DETAIL_2(418, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_1.id, END.id, "专管员B核查成功,该地区的检查任务结束了"),
CONFIRM_CHECK_EXAM_DETAIL_2(418, CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_1.id, END.id, "专管员B核查成功,该地区的检查任务结束了"),
CONFIRM_CHECK_EXAM_DETAIL_3(419, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_1.id, CHECK_EXAM_DETAIL_0.id, "B岗审核失败,跳回A岗人员操作"),
CONFIRM_CHECK_EXAM_DETAIL_3(419, CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_REGION_1.id, CHECK_DETAIL_REGION_0.id, "B岗审核失败,跳回A岗人员操作"),
CONFIRM_CHECK_EXAM_STAT_3(420, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_STAT_0.id, END.id, "检查统计任务数据已确认完毕,任务完结"),
CONFIRM_CHECK_SELF_ROLLBACK(421, CONFIRM_CHECK_DETAIL.id, END.id,CHECK_EXAM_DETAIL_0.id, "自查任务已退回至等待专管员A处理状态"),
CONFIRM_CHECK_SELF_ROLLBACK(421, CONFIRM_CHECK_DETAIL.id, END.id,CHECK_DETAIL_REGION_0.id, "自查任务已退回至等待专管员A处理状态"),
CONFIRM_CHECK_EXAM_ROLLBACK(422, CONFIRM_CHECK_DETAIL.id, END.id,CHECK_EXAM_STAT_1.id, "检查任务已退回至等待确认状态"),
CONFIRM_CHECK_EXAM_CITY_DETAIL_0(423, CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_DETAIL_CITY_0.id, "检查详情任务开始"),
CONFIRM_CHECK_EXAM_CITY_DETAIL_1(424, CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_CITY_0.id, CHECK_DETAIL_CITY_1.id, "专管员A操作成功,等待专管员B操作"),
CONFIRM_CHECK_EXAM_CITY_DETAIL_REDO(425, CONFIRM_CHECK_DETAIL.id, END.id, CHECK_DETAIL_CITY_0.id, "检查详情任务开始重做"),
CONFIRM_CHECK_EXAM_CITY_VERIFY_DONE(426, CONFIRM_CHECK_DETAIL.id, CONFIRM_STAT_0.id, END.id, "市统计数据确认完毕"),
CONFIRM_CHECK_EXAM_CITY_DETAIL_DONE(427, CONFIRM_CHECK_DETAIL.id, CHECK_DETAIL_CITY_1.id, END.id, "专管员B处理完毕,任务结束"),
CONFIRM_CHECK_EXAM_CITY_STAT_0(428, CONFIRM_CHECK_STAT.id, ORIGIN_STATUS.id, CHECK_STAT_1.id, "统计任务开始"),
ALLOT_BACK_1(57, ALLOT_BACK.id, ORIGIN_STATUS.id, ALLOT_BACKING.id, "发起装备退回"),
ALLOT_BACK_2(58,ALLOT_BACK.id, ALLOT_BACKING.id, END.id, "接收退回装备并上传相关单据"),
......
......@@ -34,7 +34,12 @@ public enum FileName {
/**
* 丢失单
*/
LOSS(7,"丢失单");
LOSS(7,"丢失单"),
/**
* 丢失单
*/
SelfCheck(8,"自查单");
public Integer id;
......
package com.tykj.dev.device.confirmcheck.common;
import com.tykj.dev.config.Log;
import com.tykj.dev.misc.base.StatusEnum;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
import static com.tykj.dev.misc.base.StatusEnum.*;
/**
* CheckChart. 里面用于存放核查模块要用到的一些对照表Map
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/8/19 at 3:14 下午
*/
@Data
@Slf4j
public class CheckChart {
/**
* key = 任务状态编号 , value = 核查情况 , 用于市区自核查页面
*/
public static Map<Integer, String> taskStatus2Situation = new HashMap<>();
static {
taskStatus2Situation.put(CHECK_DETAIL_CITY_0.id, "无");
taskStatus2Situation.put(CHECK_DETAIL_CITY_1.id, "进行中");
taskStatus2Situation.put(CHECK_DETAIL_REGION_0.id, "无");
taskStatus2Situation.put(CHECK_DETAIL_REGION_1.id, "进行中");
taskStatus2Situation.put(CHECK_DETAIL_REGION_2.id, "等待市审核");
taskStatus2Situation.put(END.id, "完成");
log.info("[核查模块] 初始化taskStatus2Situation 完毕 , size = {}",CheckChart.taskStatus2Situation.size());
}
}
......@@ -71,6 +71,7 @@ public class DeviceCheckDetail extends BaseEntity {
@ApiModelProperty(value = "本级经办人id(A岗)")
@Column(name = "userA_id")
private Integer userAId;
/**
* 本级审核人id(B岗)
*/
......@@ -78,10 +79,13 @@ public class DeviceCheckDetail extends BaseEntity {
@ApiModelProperty(value = "本级审核人id(B岗)")
@Column(name = "userB_id")
private Integer userBId;
@ApiModelProperty(value = "上级审核人id")
@Column(name = "userC_id")
private Integer userCId;
/**
* 核查时间
*/
@ApiModelProperty(value = "核查时间")
private Date checkTime;
/**
......@@ -128,7 +132,7 @@ public class DeviceCheckDetail extends BaseEntity {
private String remark;
/**
* 预留字段2
* 预留字段2 现在用来记录该自查任务的初始状态号
*/
@ApiModelProperty(value = "预留字段2")
private String var2;
......@@ -139,6 +143,12 @@ public class DeviceCheckDetail extends BaseEntity {
@Column(name = "check_files", columnDefinition = "TEXT")
private String checkFiles;
/**
* 手持终端信息字段
*/
@ApiModelProperty(value = "手持终端信息字段")
private String terminalInfo;
@Transient
private List<FileRet> checkFileList = new ArrayList<>();
......
......@@ -79,6 +79,12 @@ public class CheckDetailVo {
@ApiModelProperty(value = "本级审核人id(B岗)")
private Integer userBId;
/**
* 上级审核人Id
*/
@ApiModelProperty(value = "上级审核人id")
private Integer userCId;
/**
* 核查时间
*/
......@@ -108,6 +114,12 @@ public class CheckDetailVo {
@ApiModelProperty(value = "核查结果")
private String checkResult;
/**
* 手持终端信息字段
*/
@ApiModelProperty(value = "终端信息")
private String terminalInfo;
@ApiModelProperty(value = "在库装备列表")
private List<DeviceInLibVo> devInLibrary;
......
......@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collections;
import java.util.List;
/**
......@@ -27,12 +28,12 @@ public class CheckExamDetailVo {
private List<String> userNames;
@ApiModelProperty(name = "需要被检查的区域id")
private Integer unitId;
private List<Integer> unitIds;
@ApiModelProperty(name = "备注")
private String remark;
public CheckExamDetailVo copy(Integer unitId,String remark) {
return new CheckExamDetailVo(this.groupName, this.userNames, unitId, remark);
return new CheckExamDetailVo(this.groupName, this.userNames, Collections.singletonList(unitId), remark);
}
}
......@@ -24,6 +24,10 @@ public interface DeviceCheckDetailDao extends JpaRepository<DeviceCheckDetail, I
@Query("update DeviceCheckDetail o set o.checkDetail=?2,o.checkResult = ?3,o.userAId =?4,o.userBId=?5,o.checkedCount=?6 where o.id=?1")
void updateCheckDetail(Integer id, String checkDetail, String checkResult, int userAId, int userBId, Integer checkedCount);
@Modifying
@Query("update DeviceCheckDetail o set o.checkDetail=?2,o.checkResult = ?3,o.userAId =?4,o.userBId=?5,o.checkedCount=?6,o.terminalInfo=?7 where o.id=?1")
void updateCheckDetailWithT(Integer id, String checkDetail, String checkResult, int userAId, int userBId, Integer checkedCount,String terminalInfo);
/**
* 根据id更新checkDetail 用于专管员B检查
*
......
......@@ -57,7 +57,7 @@ import java.util.stream.Collectors;
import static com.tykj.dev.misc.base.BusinessEnum.CONFIRM_CHECK_DETAIL;
import static com.tykj.dev.misc.base.BusinessEnum.CONFIRM_CHECK_STAT;
import static com.tykj.dev.misc.base.StatusEnum.CHECK_DETAIL_0;
import static com.tykj.dev.misc.base.StatusEnum.CHECK_DETAIL_REGION_0;
import static com.tykj.dev.misc.base.StatusEnum.CHECK_STAT_0;
import static java.util.stream.Collectors.*;
......@@ -210,7 +210,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine
.collect(toList());
statVoList.addAll(cityStatVoList);
// 构建市自查TASK
TaskBto cityDetailTask = new TaskBto(CHECK_DETAIL_0.id, cityUnit.getName() + "自动核查自查", cityStatTask.getId(), addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), CONFIRM_CHECK_DETAIL.id, cityDetail.getId(), cityUnit.getUnitId(), 0);
TaskBto cityDetailTask = new TaskBto(CHECK_DETAIL_REGION_0.id, cityUnit.getName() + "自动核查自查", cityStatTask.getId(), addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), CONFIRM_CHECK_DETAIL.id, cityDetail.getId(), cityUnit.getUnitId(), 0);
cityDetailTask.setCustomInfo("auto");
cityDetailTask = taskService.start(cityDetailTask);
resultIds.get("taskId").add(cityDetailTask.getId());
......@@ -236,7 +236,7 @@ public class ConfirmCheckServiceImpl implements ConfirmCheckService, CommandLine
statVoList.addAll(countyStatVoList);
//构建县自查TASK
TaskBto countyDetailTask = new TaskBto(CHECK_DETAIL_0.id, countyUnit.getName() + "自动核查自查", cityStatTask.getId(), addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), CONFIRM_CHECK_DETAIL.id, countyDetail.getId(), countyUnit.getUnitId(), 0);
TaskBto countyDetailTask = new TaskBto(CHECK_DETAIL_REGION_0.id, countyUnit.getName() + "自动核查自查", cityStatTask.getId(), addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), CONFIRM_CHECK_DETAIL.id, countyDetail.getId(), countyUnit.getUnitId(), 0);
countyDetailTask.setCustomInfo("auto");
countyDetailTask = taskService.start(countyDetailTask);
resultIds.get("taskId").add(countyDetailTask.getId());
......
......@@ -137,7 +137,6 @@ public class ObjTransUtil {
// 构建完成情况参数 未完成数量/总数
// 获得当前节点的子节点总数 = 总数 其中状态为9999的为已完成
//
TaskBto fatherTask = taskService.get(stat.getId(), BusinessEnum.CONFIRM_CHECK_STAT.id);
Integer fatherTaskId = fatherTask.getId();
......
......@@ -76,7 +76,7 @@ public class UseReportFIleServiceImpl implements UseReportFIleService {
params.put("TitleTimeStart",wrodParameter.getTitleTimeStart());
params.put("TitleUnitName",wrodParameter.getTitleUnitName());
String fileName = wrodParameter.getTitleTimeStart()+"至"+wrodParameter.getTitleTimeEnd()+"使用报告" + ".doc";
String templatePath = ResourceUtils.getURL( "classpath:").getPath()+docModel;
String templatePath = ResourceUtils.getURL( "classpath:").getPath()+"docTemplate/"+docModel;
url=url+"report/";
String uuidName=UUID.randomUUID().toString().replace("-", "") + ".doc";
String fileUrl= WordUtil.createWord(templatePath,url,uuidName,params);
......@@ -201,11 +201,10 @@ public class UseReportFIleServiceImpl implements UseReportFIleService {
} catch (FileNotFoundException e) {
log.error(file.getAbsolutePath() + "文件不存在");
e.printStackTrace();
} catch (IOException e) {
//log.error(file.getAbsolutePath() + "文件读取异常");
log.error(file.getAbsolutePath() + "文件用户终止下载");
e.printStackTrace();
} finally {
try {
bs.close();
......
......@@ -63,7 +63,7 @@ public class JavaToPdfHtmlFreeMarker {
freemarkerCfg =new Configuration();
//freemarker的模板目录
try {
freemarkerCfg.setDirectoryForTemplateLoading(new File(ResourceUtils.getURL("classpath:").getPath()));
freemarkerCfg.setDirectoryForTemplateLoading(new File(ResourceUtils.getURL("classpath:").getPath()+"htmlTemplate/"));
} catch (IOException e) {
e.printStackTrace();
}
......@@ -118,8 +118,8 @@ public class JavaToPdfHtmlFreeMarker {
renderer.setDocument(htmlFile);
// 解决中文不显示问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"simhei2.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"font/simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"font/simhei2.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
PdfReader pdfReader = new PdfReader(os.toByteArray());
......@@ -162,8 +162,8 @@ public class JavaToPdfHtmlFreeMarker {
renderer.setDocument(htmlFile);
// 解决中文不显示问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"simhei2.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"font/simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fontResolver.addFont(ResourceUtils.getURL("classpath:").getPath()+"font/simhei2.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
PdfReader pdfReader = new PdfReader(os.toByteArray());
......
差异被折叠。
差异被折叠。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Document</title>
<style>
body{
font-family:SimHei;
}
/*@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;*/
}
#footer {
font-size: 90%; font-style: italic;
position: absolute; top: 0; left: 0;
-fs-move-to-flow: "footer";
}
#pagenumber:before {
content: counter(page);
}
#pagecount:before {content: counter(pages);
}
.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 0 15px;
padding:0 20px;
box-sizing: border-box;
}
.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: 28px;
color: #000000;
margin-bottom: 20px;
text-align: center;
}
table.altrowstable {
width: 100%;
font-size:20px;
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: 0px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.altrowstable td {
border-width: 0px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
/*word-break:break-all;*/
/*word-wrap : break-word;*/
}
.oddrowcolor{
background-color:#fff;
}
.evenrowcolor{
background-color:#fafafa;
}
.person{
color: #4a475b;
text-align: right;
font-size: 18pt;
}
.person > span{
display: inline-block;
margin-right: 30pt;
}
tr:nth-child(odd) {
background: #fafafa;
}
</style>
</head>
<body>
<!--<div id="footer" style=""> Page <span id="pagenumber"/> of <span id="pagecount"/> </div>-->
<div class="returnTablePrint">
<div class="content">
<div>
<div class="listWrapper">
<div class="list">
<p class="title">
<div class="main-title">
<span>
${title}
</span>
</div>
</p>
<table class="altrowstable" id="alternatecolor">
<tr>
<th>序号</th><th>型号</th><th>形态</th><th>密级</th><th>应用领域</th><th>装备序列号</th>
</tr>
<#list documentDevices as dev>
<tr>
<td>${dev.model}</td><td>${dev.model}</td><td>${dev.parts}</td><td>${dev.category}</td><td>${dev.securityClassification}</td><td>${dev.applicationField}</td>
</tr>
</#list>
</table>
</div>
<p class="person" style="margin-top: 50px">
<span style="width: 200px;text-align: left">经办人:</span>
<span style="width: 200px;text-align: left">审核人:</span>
</p>
</div>
</div>
</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>Title</title>
<style>
body{
font-family:SimHei;
}
.blue{
color: blue;
}
</style>
</head>
<body>
<div class="blue">
你好,${name}
</div>
<div>
<#list userList as user>
用户名:${user.name}
密 码:${user.code}
年 龄: ${user.age}
</#list>
</div>
</body>
</html>
\ No newline at end of file
差异被折叠。
No preview for this file type
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论