From 2f737df6f8e482540a465445bdb003d98103db54 Mon Sep 17 00:00:00 2001
From: linzhijie <19970921lzj>
Date: 星期一, 12 四月 2021 23:41:17 +0800
Subject: [PATCH] 第二次无注释的源码

---
 src/main/resources/mybatis/exam/TExamReportMapper.xml                          |   60 +++++
 src/main/java/com/ots/project/exam/domain/EntTestMember.java                   |    1 
 src/main/resources/templates/exam/userpaper/edit.html                          |    2 
 src/main/resources/templates/exam/testMember/testMember.html                   |    2 
 src/main/java/com/ots/OtsApplication.java                                      |   26 --
 src/main/resources/templates/main.html                                         |  232 +-------------------
 src/main/resources/mybatis/exam/EntTestMemberMapper.xml                        |    6 
 src/main/java/com/ots/project/exam/controller/TExamReportController.java       |   23 ++
 src/main/resources/mailConfig.properties                                       |    6 
 pom.xml                                                                        |   73 ------
 src/main/resources/templates/exam/test_package/test_package.html               |    4 
 src/main/resources/templates/exam/enterprise/add.html                          |    2 
 /dev/null                                                                      |    0 
 src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java    |   44 +++
 src/main/java/com/ots/project/exam/service/ITExamReportService.java            |    1 
 src/main/resources/static/i18n/messages_zh_CN.properties                       |    6 
 src/main/java/com/ots/project/exam/mapper/TExamReportMapper.java               |    1 
 src/main/resources/static/ots.jpg                                              |    0 
 src/main/resources/templates/exam/userpaper/userPaper.html                     |    2 
 src/main/java/com/ots/project/exam/controller/EntTestMemberController.java     |   16 +
 src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java |    6 
 src/main/resources/application-sand.yml                                        |   40 ++
 src/main/resources/application.yml                                             |   57 ++++
 src/main/java/com/ots/project/exam/controller/EnterpriseController.java        |   10 
 24 files changed, 274 insertions(+), 346 deletions(-)

diff --git a/README.md b/README.md
deleted file mode 100644
index e69de29..0000000
--- a/README.md
+++ /dev/null
diff --git a/pom.xml b/pom.xml
index 6896115..d737afd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -248,13 +248,7 @@
 			<artifactId>springfox-swagger-ui</artifactId>
 			<version>${swagger.version}</version>
 		</dependency>
-
-		<dependency>
-			<groupId>com.github.ulisesbocchio</groupId>
-			<artifactId>jasypt-spring-boot-starter</artifactId>
-			<version>2.0.0</version>
-		</dependency>
-
+		
 		<!-- 鑾峰彇绯荤粺淇℃伅 -->
 		<dependency>
 			<groupId>com.github.oshi</groupId>
@@ -360,75 +354,12 @@
             <version>13.0</version>
             <scope>compile</scope>
         </dependency>
-
 		<dependency>
 			<groupId>com.ots</groupId>
 			<artifactId>tai-ots-framework</artifactId>
 			<version>1.0</version>
 		</dependency>
 
-    </dependencies>
-
-<!--	<build>-->
-<!--		<finalName>${project.artifactId}</finalName>-->
-<!--		<plugins>-->
-<!--			<plugin>-->
-<!--				<groupId>org.springframework.boot</groupId>-->
-<!--				<artifactId>spring-boot-maven-plugin</artifactId>-->
-<!--				<configuration>-->
-<!--					<fork>true</fork> &lt;!&ndash; 濡傛灉娌℃湁璇ラ厤缃紝devtools涓嶄細鐢熸晥 &ndash;&gt;-->
-<!--				</configuration>-->
-<!--			</plugin>-->
-<!--		</plugins>-->
-<!--	</build>-->
-
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.8</source>
-					<target>1.8</target>
-					<encoding>utf-8</encoding>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.springframework.boot</groupId>
-				<artifactId>spring-boot-maven-plugin</artifactId>
-				<configuration>
-					<mainClass>com.ots.OtsApplication</mainClass>
-					<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
-					<fork>true</fork> <!-- 濡傛灉娌℃湁璇ラ厤缃紝devtools涓嶄細鐢熸晥 -->
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-
-	<repositories>
-		<repository>
-			<id>public</id>
-			<name>aliyun nexus</name>
-			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-		</repository>
-	</repositories>
-
-	<pluginRepositories>
-		<pluginRepository>
-			<id>public</id>
-			<name>aliyun nexus</name>
-			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-		</pluginRepository>
-	</pluginRepositories>
+	</dependencies>
 
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/ots/OtsApplication.java b/src/main/java/com/ots/OtsApplication.java
index 37c99c0..c74e789 100644
--- a/src/main/java/com/ots/OtsApplication.java
+++ b/src/main/java/com/ots/OtsApplication.java
@@ -1,28 +1,10 @@
 package com.ots;
-import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
-import org.jasypt.encryption.StringEncryptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.env.Environment;
 
 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
-@EnableEncryptableProperties
-public class OtsApplication implements CommandLineRunner {
-
-    private static final Logger l = LoggerFactory.getLogger(OtsApplication.class);
-
-    @Autowired
-    private StringEncryptor stringEncryptor;
-
-    @Autowired
-    private ApplicationContext applicationContext;
-
+public class OtsApplication {
     public static void main(String[] args) {
         
         SpringApplication.run(OtsApplication.class, args);
@@ -34,11 +16,5 @@
         builder.append("**     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^      **\n");
         builder.append("********************************************************************\n");
         System.out.println(builder.toString());
-    }
-
-    @Override
-    public void run(String... args) throws Exception {
-        Environment environment = applicationContext.getEnvironment();
-        l.info(stringEncryptor.encrypt(environment.getProperty("password")));
     }
 }
diff --git a/src/main/java/com/ots/project/exam/controller/EntTestMemberController.java b/src/main/java/com/ots/project/exam/controller/EntTestMemberController.java
index d435946..51373fd 100644
--- a/src/main/java/com/ots/project/exam/controller/EntTestMemberController.java
+++ b/src/main/java/com/ots/project/exam/controller/EntTestMemberController.java
@@ -1,6 +1,7 @@
 package com.ots.project.exam.controller;
 import com.ots.common.constant.UserConstants;
 import com.ots.common.enums.SenderType;
+import com.ots.common.enums.TestMemberStatusEnum;
 import com.ots.common.enums.TestPackageStatusEnum;
 import com.ots.common.enums.UserTypeEnum;
 import com.ots.common.utils.MessageUtils;
@@ -31,6 +32,7 @@
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+import static com.ots.common.enums.TestMemberStatusEnum.*;
 import static com.ots.common.enums.UserTypeEnum.SYS_USER;
 
 @Controller
@@ -137,6 +139,20 @@
         if (!SYS_USER.getUserType().equals(sysUser.getUserType())) {
             entTestMember.setUserId(sysUser.getUserId());
         }
+        List<String> recyclingStatus = Arrays.asList( TestMemberStatusEnum.completed.getCode(), timeOut.getCode());
+        entTestMember.setStatusList(recyclingStatus);
+        return getDataTable(entTestMemberService.selectEntTestMemberTopList(entTestMember));
+    }
+    @PostMapping("/listTopAnswering2")
+    @ResponseBody
+    public TableDataInfo listTopAnswering2(EntTestMember entTestMember) {
+        startPage();
+        User sysUser = ShiroUtils.getSysUser();
+        if (!SYS_USER.getUserType().equals(sysUser.getUserType())) {
+            entTestMember.setUserId(sysUser.getUserId());
+        }
+        List<String> recyclingStatus = Arrays.asList( answering.getCode());
+        entTestMember.setStatusList(recyclingStatus);
         return getDataTable(entTestMemberService.selectEntTestMemberTopList(entTestMember));
     }
     @PostMapping("/queryList")
diff --git a/src/main/java/com/ots/project/exam/controller/EnterpriseController.java b/src/main/java/com/ots/project/exam/controller/EnterpriseController.java
index 2dcb141..95afff2 100644
--- a/src/main/java/com/ots/project/exam/controller/EnterpriseController.java
+++ b/src/main/java/com/ots/project/exam/controller/EnterpriseController.java
@@ -128,6 +128,16 @@
     public AjaxResult editSave(@PathVariable("userId") Long userId, @PathVariable("addNum") Long addNum) {
         return toAjax(sysUserExtendService.updateTestNum(userId, addNum));
     }
+    @PostMapping("/checkUser")
+    @ResponseBody
+    public AjaxResult checkUser() {
+        User sysUser = ShiroUtils.getSysUser();
+        int result = 0;
+        if ("02".equals(sysUser.getUserType())) {
+            result = 1;
+        }
+        return toAjax(result);
+    }
     @RequiresPermissions("exam:enterprise:remove")
     @PostMapping("/remove")
     @ResponseBody
diff --git a/src/main/java/com/ots/project/exam/controller/TExamReportController.java b/src/main/java/com/ots/project/exam/controller/TExamReportController.java
index 0ed95ee..ce1df23 100644
--- a/src/main/java/com/ots/project/exam/controller/TExamReportController.java
+++ b/src/main/java/com/ots/project/exam/controller/TExamReportController.java
@@ -350,7 +350,8 @@
         
         setSysHeadToEnglish(tExamReportList, reportResultMap, reportType);
         
-        writeFile(fileNameResult, reportResultMap);
+        
+        writeMutiFile(fileNameResult, reportResultMap);
         
         return AjaxResult.success(examUtilService.getLangOrLocalLangString("", tExamReportList.get(0).getProductName()) + "_DateReport.xlsx");
     }
@@ -447,6 +448,22 @@
             writer.close();
         }
     }
+    private void writeMutiFile(String fileNameResult, Map<String, List<List<Object>>> reportResultMap) {
+        FileUtil.del(fileNameResult);
+        ExcelWriter writer = null;
+        for (Map.Entry<String, List<List<Object>>> entryReport : reportResultMap.entrySet()) {
+            if (Objects.isNull(writer)) {
+                writer = new ExcelWriter(fileNameResult,entryReport.getKey());
+            }
+            writer.setSheet(entryReport.getKey());
+            StyleSet styleSet = writer.getStyleSet();
+            styleSet.setBorder(BorderStyle.NONE, IndexedColors.OLIVE_GREEN);
+            writer.write(entryReport.getValue(), true);
+            writer.autoSizeColumnAll();
+            writer.setSheet(entryReport.getKey());
+        }
+        writer.close();
+    }
     private void setReportResultList(List<Object> demographyHeadSystem, List<List<Object>> reportResultList, Map<String, Object> textMap) {
         
         List<Object> reportValue = new ArrayList<>();
@@ -476,6 +493,10 @@
     private String getReportType(TExamReport tExamReport) {
         String reportType = ReportTypeEnum.RuiLin.getCode();
         TExamPaper tExamPaper = itExamPaperService.selectTExamPaperById(tExamReport.getProductId());
+        tExamPaper.getName();
+        if (tExamPaper.getName().indexOf("鐫块偦")>0 || tExamPaper.getName().indexOf("RuiLin")>0 ) {
+            return reportType;
+        }
         List<TReportTemplate> tReportTemplateList = itReportTemplateService.selectTReportTemplates(tExamPaper.getReportTemplateId());
         for (TReportTemplate tReportTemplate : tReportTemplateList) {
             if (Objects.isNull(tReportTemplate.getReportType())) {
diff --git a/src/main/java/com/ots/project/exam/domain/EntTestMember.java b/src/main/java/com/ots/project/exam/domain/EntTestMember.java
index 44ea33d..4beed96 100644
--- a/src/main/java/com/ots/project/exam/domain/EntTestMember.java
+++ b/src/main/java/com/ots/project/exam/domain/EntTestMember.java
@@ -45,6 +45,7 @@
     private Date emailTime;
     
     private String status;
+    private List<String> statusList;
     private String firstName;
     private String lastName;
     private String userName;
diff --git a/src/main/java/com/ots/project/exam/mapper/TExamReportMapper.java b/src/main/java/com/ots/project/exam/mapper/TExamReportMapper.java
index eddc90d..54a5d87 100644
--- a/src/main/java/com/ots/project/exam/mapper/TExamReportMapper.java
+++ b/src/main/java/com/ots/project/exam/mapper/TExamReportMapper.java
@@ -8,6 +8,7 @@
     TExamReport selectTExamReportById(Long id);
     
     List<TExamReport> selectTExamReportList(TExamReport tExamReport);
+    List<TExamReport> selectTExamReportNoStatusList(TExamReport tExamReport);
     List<TExamReport> selectTExamHrEmailiReportList(TExamReport tExamReport);
     List<TExamReport> selectViewReportList(TExamReport tExamReport);
     List<TExamReport> selectHrResendTask(TExamReport tExamReport);
diff --git a/src/main/java/com/ots/project/exam/service/ITExamReportService.java b/src/main/java/com/ots/project/exam/service/ITExamReportService.java
index e310940..20e076a 100644
--- a/src/main/java/com/ots/project/exam/service/ITExamReportService.java
+++ b/src/main/java/com/ots/project/exam/service/ITExamReportService.java
@@ -13,6 +13,7 @@
     TExamReport selectTExamReportById(Long id);
     
     List<TExamReport> selectTExamReportList(TExamReport tExamReport);
+    List<TExamReport> selectTExamReportNoStatusList(TExamReport tExamReport);
     
     List<TExamReport> selectViewReportList(TExamReport tExamReport);
     
diff --git a/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java
index e52b8cd..e05e973 100644
--- a/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java
+++ b/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java
@@ -9,6 +9,8 @@
 import org.springframework.stereotype.Component;
 import java.util.*;
 import java.util.stream.Collectors;
+import static com.ots.common.enums.TestMemberStatusEnum.answering;
+import static com.ots.common.enums.TestMemberStatusEnum.timeOut;
 
 @Component
 public class CountCalculateServiceImpl implements CountCalculateService {
@@ -66,7 +68,7 @@
             if (Objects.nonNull(testMembers)) {
                 total = Long.valueOf(testMembers.size());
                 finishNum = testMembers.stream().filter(testMember -> TestMemberStatusEnum.completed.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum();
-                testIngNum = testMembers.stream().filter(testMember -> TestMemberStatusEnum.answering.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum();
+                testIngNum = testMembers.stream().filter(testMember -> answering.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum();
                 unTestNum = total - testIngNum - finishNum;
             }
             numberOfUsersByPackage.setTestNum(total);
@@ -84,7 +86,7 @@
         Map map = new HashMap();
         map.put("testIds", collect);
         
-        List<String> recyclingStatus = Arrays.asList(TestMemberStatusEnum.unprocessed.getCode(), TestMemberStatusEnum.completed.getCode(), TestMemberStatusEnum.answering.getCode());
+        List<String> recyclingStatus = Arrays.asList(TestMemberStatusEnum.unprocessed.getCode(), TestMemberStatusEnum.completed.getCode(), answering.getCode(), timeOut.getCode());
         map.put("status", recyclingStatus);
         return entTestMemberMapper.selectEntTestMemberListByMap(map);
     }
diff --git a/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
index 37ec5d8..bf215da 100644
--- a/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
+++ b/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ots.project.exam.service.impl;
 import cn.hutool.core.collection.CollUtil;
+import lombok.extern.slf4j.Slf4j;
 import com.ots.common.enums.LangTypeEnum;
 import com.ots.common.enums.ReportTypeEnum;
 import com.ots.common.enums.TemplateTypeEnum;
@@ -35,6 +36,7 @@
 import com.ots.project.tool.exam.JsonUtil;
 import com.ots.project.tool.report.CAQ.CAQReport;
 import com.ots.project.tool.report.MAQ.MAQReport;
+import com.ots.project.tool.report.MAQNEW.MAQReport_V2;
 import com.ots.project.tool.report.ReportResultData;
 import com.ots.project.tool.report.RuilinMAQ.RuilinMAQReport;
 import com.ots.project.tool.report.SAQ.SAQReport;
@@ -60,6 +62,7 @@
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class TExamReportServiceImpl implements ITExamReportService {
     @Autowired
     private TExamReportMapper tExamReportMapper;
@@ -89,6 +92,10 @@
     @Override
     public List<TExamReport> selectTExamReportList(TExamReport tExamReport) {
         return tExamReportMapper.selectTExamReportList(tExamReport);
+    }
+    @Override
+    public List<TExamReport> selectTExamReportNoStatusList(TExamReport tExamReport) {
+        return tExamReportMapper.selectTExamReportNoStatusList(tExamReport);
     }
     @Override
     public List<TExamReport> selectViewReportList(TExamReport tExamReport) {
@@ -249,6 +256,8 @@
             resultData = getSAQReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
         } else if (Objects.equals(reportType, ReportTypeEnum.JAQ.getCode())) {
             resultData = getJAQReportData(entry.getValue());
+        } else if(Objects.equals(reportType, ReportTypeEnum.MAQV2.getCode())){
+            resultData = getMAQ_V2ReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
         } else {
             resultData = getMAQReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
         }
@@ -293,6 +302,7 @@
         dataMap.put("password", tExamReport.getTokenId());
         dataMap.put("reportId", tExamReport.getId().toString());
         dataMap.put("userName", tExamReport.getUserName());
+        dataMap.put("memberName", tExamReport.getMemberName());
         dataMap.put("reportTemplateId", tExamReport.getReportTemplateId());
         dataMap.put("Begin Time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, tExamReport.getCreateTime()));
         dataMap.put("End Time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, tExamReport.getUpdateTime()));
@@ -300,6 +310,9 @@
         dataMap.put("Test Package", ExamUtil.getLangString(tExamReport.getLangType(), tExamReport.getTestName()));
         dataMap.put("Test", ExamUtil.getLangString(tExamReport.getLangType(), tExamReport.getProductName()));
         EntTestMember entTestMember = entTestMemberService.selectEntTestMemberById(tExamReport.getMemberId().longValue());
+        if (Objects.isNull(entTestMember)) {
+            return;
+        }
         dataMap.put("reportGenerationDate", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, entTestMember.getEndTime()));
         List<ReportAPIResult> interfaceContentList = JsonUtil.parseArray(tExamReport.getInterfaceContent(), ReportAPIResult.class);
         
@@ -377,6 +390,19 @@
             }
         }
         return "";
+    }
+    public ReportResultData getMAQ_V2ReportData(String langType, ReportTypeEnum reportTypeEnum, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
+        MAQReport_V2 report = new MAQReport_V2();
+        report.setQuestionnaireTaker(entry.getValue().get("memberName"));
+        report.setQuestionnaireID(entry.getValue().get("password"));
+        report.setReportGenerationDate(entry.getValue().get("reportGenerationDate"));
+        report.setQuestionnaireEmail(entry.getValue().get("testEmail"));
+        report.setUserName(entry.getValue().get("userName"));
+        report.setQuestionnaireStartTime(entry.getValue().get("beginTime"));
+        report.setQuestionnaireEndTime(entry.getValue().get("endTime"));
+        tExamReport.setId(Long.valueOf(entry.getValue().get("reportId")));
+        ReportResultData resultData = report.getTemplateParameters(entry.getValue(), reportTypeEnum, LangTypeEnum.codeOf(langType));
+        return resultData;
     }
     public ReportResultData getMAQReportData(String langType, ReportTypeEnum reportTypeEnum, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
         MAQReport report = new MAQReport();
@@ -500,6 +526,9 @@
         String[] waterDropPicture = key.split("_");
         
         String waterDropName =StringUtils.isNotEmpty(ExamUtil.getWaterDropPictureMap(waterDropPicture[0])) ? ExamUtil.getWaterDropPictureMap(waterDropPicture[0]) : ExamUtil.getWaterDropPictureMap(key);
+        if(waterDropPicture[1].equals("V2")){
+        	waterDropName = ExamUtil.getWaterDropPictureMap("ResponseFidelityDiagnosis_V2");
+        }
         if (StringUtils.isEmpty(waterDropName)) {
             return;
         }
@@ -512,9 +541,17 @@
         deleteStrList.add(EssConfig.getProfile() + "/" + key + "_" + id + "_" + floatValue.toString() + "_" + suffixDate + ".png");
         
         if (StringUtils.equals(key.split("_")[0], "ResponseFidelityDiagnosis")) {
-            wordParam.setPicWidth(446);
-            wordParam.setPicHeight(33); 
-        } else if (StringUtils.equals(key.split("_")[0], "RuilinTestResultValidityDiagnosisContext")) {
+        	if(StringUtils.equals(key.split("_")[1], "V2")){
+	    		wordParam.setPicWidth(210);
+	    		wordParam.setPicHeight(50); 
+        	}else{
+        		wordParam.setPicWidth(446);
+        		wordParam.setPicHeight(33); 
+        	}
+        } else if (StringUtils.equals(key.split("_")[0], "ResponseFidelityDiagnosisV2")){
+        	wordParam.setPicWidth(210);
+    		wordParam.setPicHeight(33); 
+        }else if (StringUtils.equals(key.split("_")[0], "RuilinTestResultValidityDiagnosisContext")) {
             wordParam.setPicWidth(450);
             wordParam.setPicHeight(35);
             wordParam.setX(-13.75);
@@ -549,6 +586,7 @@
                 fileNameResult.add(EssConfig.getProfile() + "/" + fileNameTemp);
             }
         } catch (Exception e) {
+        	log.error("鍙戠敓寮傚父:{}", e);
             return false;
         }
         return true;
diff --git a/src/main/resources/application-sand.yml b/src/main/resources/application-sand.yml
index cdac1ce..debb31a 100644
--- a/src/main/resources/application-sand.yml
+++ b/src/main/resources/application-sand.yml
@@ -1,35 +1,56 @@
+# 椤圭洰鐩稿叧閰嶇疆
 ots:
+    # 鍚嶇О
     name: ots
+    # 鐗堟湰
     version: 1.0.5
+    # 鐗堟潈骞翠唤
     copyrightYear: 2020
+    # 瀹炰緥婕旂ず寮�鍏�
     demoEnabled: false
+    # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ots/uploadPath锛孡inux閰嶇疆 /home/data/ots/uploadPath锛�
     profile: /home/data/ots/uploadPath
+    # 鍥剧墖鐨剈rl锛屽:vue绔http://139.199.11.114/images鍦板潃
     imagePath: http://120.24.39.179:8090/profile/images
+    # 鑾峰彇ip鍦板潃寮�鍏�
     addressEnabled: true
+    # 鎶ュ憡妯$増鍦板潃
     reportTemplates: /home/data/ots/reportTemplates/
+    # http profile
     httpProfilePath: http://120.24.39.179:8090/profile
-
+# 鏁版嵁婧愰厤缃�
 spring:
     datasource:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.cj.jdbc.Driver
         druid:
+            # 涓诲簱鏁版嵁婧�
             master:
-                url: jdbc:mysql://120.24.39.179:3306/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://127.0.0.1:3306/ots-sand?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: TAI@2019#Zjun
+            # 浠庡簱鏁版嵁婧�
             slave:
+                # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
                 enabled: false
                 url: 
                 username: 
-                password:
+                password: 
+            # 鍒濆杩炴帴鏁�
             initialSize: 5
+            # 鏈�灏忚繛鎺ユ睜鏁伴噺
             minIdle: 10
+            # 鏈�澶ц繛鎺ユ睜鏁伴噺
             maxActive: 20
+            # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
             maxWait: 60000
+            # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
             timeBetweenEvictionRunsMillis: 60000
+            # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
             minEvictableIdleTimeMillis: 300000
+            # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
             maxEvictableIdleTimeMillis: 900000
+            # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
             validationQuery: SELECT 1 FROM DUAL
             testWhileIdle: true
             testOnBorrow: false
@@ -38,29 +59,30 @@
                 enabled: true
             statViewServlet:
                 enabled: true
+                # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
                 allow:
                 url-pattern: /druid/*
+                # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
                 login-username: 
                 login-password: 
             filter:
                 stat:
                     enabled: true
+                    # 鎱QL璁板綍
                     log-slow-sql: true
                     slow-sql-millis: 1000
                     merge-sql: true
                 wall:
                     config:
                         multi-statement-allow: true
-
+# 閭欢鏈嶅姟
 mail:
 
+# VUE绔闂湴鍧�
 vue:
     url: http://120.24.39.179/exam-stu/#/ots/{0}/login
 
+# 杩滅▼娉板浗璁$畻鏈嶅姟
 ATSTai:
     host: 127.0.0.1
-    port: 9123
-jasypt:
-    encryptor:
-        password: 5ciqxnka5s02w9qu
-        algorithm: PBEWithMD5AndDES
\ No newline at end of file
+    port: 9123
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bdfe337..a4ec783 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,78 +1,125 @@
+# 鐜閰嶇疆
 server:
+  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负80
   port: 8090
   servlet:
+    # 搴旂敤鐨勮闂矾寰�
     context-path: /
   tomcat:
+    # tomcat鐨刄RI缂栫爜
     uri-encoding: UTF-8
+    # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
     max-threads: 800
+    # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�25
     min-spare-threads: 30
-
+# 鏃ュ織閰嶇疆
 logging:
   level:
     com.ots: debug
     org.springframework: warn
 
+# 鐢ㄦ埛閰嶇疆
 user:
   password:
+    # 瀵嗙爜閿欒{maxRetryCount}娆¢攣瀹�10鍒嗛挓
     maxRetryCount: 5
 
+# Spring閰嶇疆
 spring:
+  # 妯℃澘寮曟搸
   thymeleaf:
     mode: HTML
     encoding: utf-8
+    # 绂佺敤缂撳瓨
     cache: false
+  # 璧勬簮淇℃伅
   messages:
+    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
     basename: static/i18n/messages
   jackson:
     time-zone: GMT+8
     date-format: yyyy-MM-dd HH:mm:ss
   profiles: 
-    active: sand
+    active: dev
+  # 鏂囦欢涓婁紶
   servlet:
      multipart:
+       # 鍗曚釜鏂囦欢澶у皬
        max-file-size:  10MB
+       # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
        max-request-size:  20MB
+  # 鏈嶅姟妯″潡
   devtools:
     restart:
+      # 鐑儴缃插紑鍏�
       enabled: true
 
+# MyBatis
 mybatis:
+    # 鎼滅储鎸囧畾鍖呭埆鍚�
     typeAliasesPackage: com.ots.project
+    # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
     mapperLocations: classpath:mybatis/**/*Mapper.xml
+    # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
     configLocation: classpath:mybatis/mybatis-config.xml
 
+# PageHelper鍒嗛〉鎻掍欢
 pagehelper: 
   helperDialect: mysql
   reasonable: true
   supportMethodsArguments: true
   params: count=countSql 
 
+# Shiro
 shiro:
   user:
+    # 鐧诲綍鍦板潃
     loginUrl: /login
+    # 鏉冮檺璁よ瘉澶辫触鍦板潃
     unauthorizedUrl: /unauth
+    # 棣栭〉鍦板潃
     indexUrl: /index
+    # 楠岃瘉鐮佸紑鍏�
     captchaEnabled: true
+    # 楠岃瘉鐮佺被鍨� math 鏁扮粍璁$畻 char 瀛楃
     captchaType: math
   cookie:
-    domain:
+    # 璁剧疆Cookie鐨勫煙鍚� 榛樿绌猴紝鍗冲綋鍓嶈闂殑鍩熷悕
+    domain: 
+    # 璁剧疆cookie鐨勬湁鏁堣闂矾寰�
     path: /
+    # 璁剧疆HttpOnly灞炴��
     httpOnly: true
+    # 璁剧疆Cookie鐨勮繃鏈熸椂闂达紝澶╀负鍗曚綅
     maxAge: 30
   session:
+    # Session瓒呮椂鏃堕棿锛堥粯璁�30鍒嗛挓锛�
     expireTime: 30
+    # 鍚屾session鍒版暟鎹簱鐨勫懆鏈燂紙榛樿1鍒嗛挓锛�
     dbSyncPeriod: 1
+    # 鐩搁殧澶氫箙妫�鏌ヤ竴娆ession鐨勬湁鏁堟�э紝榛樿灏辨槸10鍒嗛挓
     validationInterval: 10
+    # 鍚屼竴涓敤鎴锋渶澶т細璇濇暟锛屾瘮濡�2鐨勬剰鎬濇槸鍚屼竴涓处鍙峰厑璁告渶澶氬悓鏃朵袱涓汉鐧诲綍锛堥粯璁�-1涓嶉檺鍒讹級
     maxSession: -1
+    # 韪㈠嚭涔嬪墠鐧诲綍鐨�/涔嬪悗鐧诲綍鐨勭敤鎴凤紝榛樿韪㈠嚭涔嬪墠鐧诲綍鐨勭敤鎴�
     kickoutAfter: false
 
-xss:
+# 闃叉XSS鏀诲嚮
+xss: 
+  # 杩囨护寮�鍏�
   enabled: true
+  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
   excludes: /system/notice/*
+  # 鍖归厤閾炬帴
   urlPatterns: /system/*,/monitor/*,/tool/*
 
-gen:
+# 浠g爜鐢熸垚
+gen: 
+  # 浣滆��
   author: ots
+  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
   packageName: com.ots.project
+  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
   autoRemovePre: true
+  # 琛ㄥ墠缂�(绫诲悕涓嶄細鍖呭惈琛ㄥ墠缂�)
   tablePrefix: sys_
diff --git a/src/main/resources/mailConfig.properties b/src/main/resources/mailConfig.properties
index 8f631bb..6129cba 100644
--- a/src/main/resources/mailConfig.properties
+++ b/src/main/resources/mailConfig.properties
@@ -3,13 +3,13 @@
 #\u7AEF\u53E3\u53F7
 mailPort=25
 #\u90AE\u7BB1\u8D26\u53F7
-mailUsername=xxxxx
+mailUsername=
 #\u90AE\u7BB1\u6388\u6743\u7801
-mailPassword=xxxxxx
+mailPassword=
 #\u65F6\u95F4\u5EF6\u8FDF
 mailTimeout=25000
 #\u53D1\u9001\u4EBA
-mailFrom=xxxxx
+mailFrom=
 #\u53D1\u4EF6\u4EBA
 personal=\u9ED1\u767D\u8272\u8C03
 #\u4E3B\u9898
diff --git a/src/main/resources/mybatis/exam/EntTestMemberMapper.xml b/src/main/resources/mybatis/exam/EntTestMemberMapper.xml
index 0a10334..bd7c75d 100644
--- a/src/main/resources/mybatis/exam/EntTestMemberMapper.xml
+++ b/src/main/resources/mybatis/exam/EntTestMemberMapper.xml
@@ -69,7 +69,11 @@
             <if test="memberEmail != null  and memberEmail != ''"> and m.member_email like concat('%',   #{memberEmail}, '%')</if>
             <if test="memberPhone != null  and memberPhone != ''"> and m.member_phone like concat('%',   #{memberPhone}, '%')</if>
             <if test="testId != null "> and m.test_id = #{testId}</if>
-            <if test="status != null  and status != ''"> and m.status = #{status}</if>
+            <if test="statusList != null "> and m.status in
+                <foreach item="status" collection="statusList" open="(" separator="," close=")">
+                    #{status}
+                </foreach>
+            </if>
             <if test="userId != null  and userId != ''"> and u.user_id = #{userId}</if>
         </where>
     </select>
diff --git a/src/main/resources/mybatis/exam/TExamReportMapper.xml b/src/main/resources/mybatis/exam/TExamReportMapper.xml
index 670b0fb..6781d8c 100644
--- a/src/main/resources/mybatis/exam/TExamReportMapper.xml
+++ b/src/main/resources/mybatis/exam/TExamReportMapper.xml
@@ -72,6 +72,34 @@
         left join sys_user_extend e on e.user_id = u.user_id
     </sql>
 
+    <sql id = "selectTExamReportListVoForReport">
+        select m.member_dept,p.status,t.id, t.product_id, t.product_name, t.content, t.token_id, t.create_time, t.update_time, t.states,
+        t.last_content,t.choice,t.do_time, t.question_count, t.member_id,t.user_id,t.parent_id,t.downloadTimes,t.verifyStatus,t.test_id,
+        t.finish,m.member_name,p.test_name,u.user_name,t.question_order, t.question_report, t.question_template_id, t.interface_content,
+        t.lang_type, t.report_address, p.report_template_id, t.send_hr_status, t.send_tester_status, m.member_email, p.test_email,
+        t.member_name, p.auto_send_report, e.hr_email, e.mail_content, t.option_order, t.remain_part_time,
+         t.report_address_new,t.hrReportEmail,t.hrTitle,t.hrSendTime,t.hrUpdateTime,t.retriesTime
+         from t_exam_report t
+        left join sys_user u on u.user_id = t.user_id
+        right join ent_test_member m on m.member_id = t.member_id and m.status = '1'
+        left join ent_test_package p on p.id = t.test_id
+        left join sys_user_extend e on e.user_id = u.user_id
+    </sql>
+
+    <sql id = "selectTExamReportListNoStatusVo">
+        select m.member_dept,p.status,t.id, t.product_id, t.product_name, t.content, t.token_id, t.create_time, t.update_time, t.states,
+        t.last_content,t.choice,t.do_time, t.question_count, t.member_id,t.user_id,t.parent_id,t.downloadTimes,t.verifyStatus,t.test_id,
+        t.finish,m.member_name,p.test_name,u.user_name,t.question_order, t.question_report, t.question_template_id, t.interface_content,
+        t.lang_type, t.report_address, p.report_template_id, t.send_hr_status, t.send_tester_status, m.member_email, p.test_email,
+        t.member_name, p.auto_send_report, e.hr_email, e.mail_content, t.option_order, t.remain_part_time,
+         t.report_address_new,t.hrReportEmail,t.hrTitle,t.hrSendTime,t.hrUpdateTime,t.retriesTime
+         from t_exam_report t
+        left join sys_user u on u.user_id = t.user_id
+        right join ent_test_member m on m.member_id = t.member_id
+        left join ent_test_package p on p.id = t.test_id
+        left join sys_user_extend e on e.user_id = u.user_id
+    </sql>
+
     <select id="selectTExamReportList" parameterType="TExamReport" resultMap="TExamReportResult">
         <include refid="selectTExamReportListVo"/>
         <where>  
@@ -104,6 +132,38 @@
         </where>
     </select>
 
+    <select id="selectTExamReportNoStatusList" parameterType="TExamReport" resultMap="TExamReportResult">
+        <include refid="selectTExamReportListVo"/>
+        <where>
+            <if test="id != null "> and t.id = #{id}</if>
+            <if test="productId != null "> and t.product_id = #{productId}</if>
+            <if test="tokenId != null  and tokenId != ''"> and t.token_id = #{tokenId}</if>
+            <if test="downloadTimes != null "> and t.downloadTimes = #{downloadTimes}</if>
+            <if test="verifyStatus != null "> and t.verifyStatus = #{verifyStatus}</if>
+            <if test="memberId != null  and memberId != ''"> and t.member_id = #{memberId}</if>
+            <if test="productName != null  and productName != ''"> and t.product_name like concat('%', #{productName}, '%')</if>
+            <if test="userName != null  and userName != ''"> and u.user_name like concat('%', #{userName}, '%')</if>
+            <if test="testName != null  and testName != ''"> and u.test_name like concat('%', #{testName}, '%')</if>
+            <if test="memberName != null  and memberName != ''"> and m.member_name like concat('%', #{memberName}, '%')</if>
+            <if test="testId != null  and testId != ''"> and t.test_id = #{testId}</if>
+            <if test="status != null  and status != ''"> and p.status = #{status}</if>
+            <if test="finish != null  and finish != ''"> and t.finish = #{finish}</if>
+            <if test="sendTesterStatus != null"> and t.send_tester_status = #{sendTesterStatus}</if>
+            <if test="hrReportEmail != null"> and t.hrReportEmail = #{hrReportEmail}</if>
+            <if test="sendHrStatus != null"> and t.send_hr_status = #{sendHrStatus}</if>
+            <if test="sendHrStatusList != null"> and t.send_hr_status in
+                <foreach collection="sendHrStatusList" item="sendStatus" open="(" separator="," close=")">
+                    #{sendStatus}
+                </foreach>
+            </if>
+            <if test="userIds != null"> and t.user_id in
+                <foreach collection="userIds" item="userId" open="(" separator="," close=")">
+                    #{userId}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
     <select id="selectTExamHrEmailiReportList" parameterType="TExamReport" resultMap="TExamReportResult">
         select id, product_id, product_name, content, token_id, create_time, update_time, states,last_content,choice,do_time, question_count, member_id,user_id,parent_id,downloadTimes,verifyStatus,test_id,finish, question_order, question_report, question_template_id, interface_content, lang_type, report_address, report_template_id, send_hr_status, send_tester_status, member_name, option_order, remain_part_time from t_exam_report
         <where>
diff --git a/src/main/resources/static/i18n/messages_zh_CN.properties b/src/main/resources/static/i18n/messages_zh_CN.properties
index 1e78853..5e4f0e0 100644
--- a/src/main/resources/static/i18n/messages_zh_CN.properties
+++ b/src/main/resources/static/i18n/messages_zh_CN.properties
@@ -308,7 +308,7 @@
 jsp.exam.report.userCode=\u7528\u6237\u7F16\u7801
 jsp.exam.report.downloadPermissions=\u4E0B\u8F7D\u6743\u9650
 jsp.exam.report.answerStatus=\u7B54\u9898\u72B6\u6001
-jsp.exam.report.exportEvaluationUserAnswerRecords=\u5BFC\u51FA\u8BC4\u6D4B\u7528\u6237\u7B54\u9898\u8BB0\u5F55
+jsp.exam.report.exportEvaluationUserAnswerRecords=\u5BFC\u51FA\u6D4B\u8BD5\u6570\u636E
 jsp.exam.report.exportBaseReport=\u91CD\u65B0\u751F\u6210(\u57FA\u7840)\u62A5\u544A\u5E76\u5BFC\u51FA
 jsp.exam.report.exportVerboseReport=\u91CD\u65B0\u751F\u6210(\u8BE6\u7EC6)\u62A5\u544A\u5E76\u5BFC\u51FA
 jsp.exam.report.requestToDownloadTheSecondTestReport=\u7533\u8BF7\u4E0B\u8F7D\u7B2C\u4E8C\u4EFD\u6D4B\u8BD5\u62A5\u544A
@@ -924,7 +924,7 @@
 dict.ic14113=\u5730\u5740\u65E0\u6548
 dict.ic14114=\u5DF2\u7ECF\u6253\u5F00
 confirm.the.need.for.recycling=\u786E\u8BA4\u9700\u8981\u56DE\u6536
-confirm.the.need.for.recycling.apend=\u5417? \u6D4B\u8BD5\u5305\u4E2D\u672A\u767B\u5F55\u8FC7\u7684\u4EBA\u5458\u5C06\u5931\u6548\uFF01=\u5417? \u6D4B\u8BD5\u5305\u4E2D\u672A\u767B\u5F55\u8FC7\u7684\u4EBA\u5458\u5C06\u5931\u6548\uFF01
+confirm.the.need.for.recycling.apend=\u5417? \u6D4B\u8BD5\u5305\u4E2D\u672A\u767B\u5F55\u8FC7\u7684\u4EBA\u5458\u5C06\u5931\u6548\uFF01
 in.special.cases=\u7279\u6B8A\u60C5\u51B5\u4E0B\uFF0C\u8BBE\u7F6E\u4E3A\u201C\u81EA\u5B9A\u6570\u636E\u6743\u9650\u201D
 task.message.202008001=\u786E\u8BA4\u8981\u7ACB\u5373\u6267\u884C\u4E00\u6B21\u4EFB\u52A1\u5417\uFF1F
 task.message.202008002=\u786E\u8BA4\u8981\u505C\u7528\u4EFB\u52A1\u5417\uFF1F
@@ -952,7 +952,7 @@
 test.user.name.dict2=\u6309\u90AE\u7BB1\u641C\u7D22\u6D4B\u8BD5\u7528\u6237
 test.user.name.dict3=\u6309\u624B\u673A\u53F7\u7801\u641C\u7D22\u6D4B\u8BD5\u7528\u6237
 test.user.name.dict4=\u6309\u5BC6\u7801\u641C\u7D22\u6D4B\u8BD5\u7528\u6237
-jsp.main.other.001=\u6700\u8FD1\u5B8C\u6210\u6D4B\u8BD5\u8BB0\u5F55
+jsp.main.other.001=\u6700\u8FD1\u5B8C\u6210\u7684\u6D4B\u8BD5\u8BB0\u5F55
 jsp.main.other.002=\u672A\u5B8C\u6210\u7684\u6D4B\u8BD5\u8BB0\u5F55\uFF08\u6B63\u5728\u7B54\u9898\u6216\u8005\u6682\u65F6\u653E\u5F03\u7B54\u9898\uFF09
 jsp.main.other.003=\u6700\u8FD1\u521B\u5EFA\u7684\u6D4B\u8BD5\u5305
 jsp.main.other.004=\u6700\u540E\u72B6\u6001\u65F6\u95F4
diff --git a/src/main/resources/static/ots.jpg b/src/main/resources/static/ots.jpg
index d3bc2aa..cfdb39b 100644
--- a/src/main/resources/static/ots.jpg
+++ b/src/main/resources/static/ots.jpg
Binary files differ
diff --git a/src/main/resources/templates/exam/enterprise/add.html b/src/main/resources/templates/exam/enterprise/add.html
index 52de553..3d38916 100644
--- a/src/main/resources/templates/exam/enterprise/add.html
+++ b/src/main/resources/templates/exam/enterprise/add.html
@@ -168,7 +168,7 @@
                 <div class="form-group">
                     <label class="col-sm-4 control-label">[[#{jsp.exam.enterprise.availabletesters}]]锛�</label>
                     <div class="col-sm-8">
-                        <input name="testNum" class="form-control" type="number">
+                        <input name="testNum" class="form-control" type="number" required>
                     </div>
                 </div>
             </div>
diff --git a/src/main/resources/templates/exam/testMember/testMember.html b/src/main/resources/templates/exam/testMember/testMember.html
index 24ec4ce..c360842 100644
--- a/src/main/resources/templates/exam/testMember/testMember.html
+++ b/src/main/resources/templates/exam/testMember/testMember.html
@@ -23,7 +23,7 @@
                             <input type="text" id="testIdSh" name="testIdSh" readonly th:value="${packageTestName}">
                         </li>
                         <li>
-                            <p>[[#{basis.name}]]</p>
+                            <p>[[#{jsp.testPackage.name}]]</p>
                             <input type="text" name="memberName"/>
                         </li>
                         <!--<li>
diff --git a/src/main/resources/templates/exam/test_package/test_package.html b/src/main/resources/templates/exam/test_package/test_package.html
index 682f0eb..cdf460a 100644
--- a/src/main/resources/templates/exam/test_package/test_package.html
+++ b/src/main/resources/templates/exam/test_package/test_package.html
@@ -15,7 +15,7 @@
                             <input type="text" name="userName"/>
                         </li>
                         <li>
-                            <p>[[#{basis.name}]]锛�</p>
+                            <p>[[#{jsp.exam.report.TestPackage}]]锛�</p>
                             <input type="text" name="testName"/>
                         </li>
                         <li>
@@ -94,7 +94,7 @@
                class="btn" onclick="javascript:recover()" shiro:hasPermission="exam:test_package:recover">
                 <i class="fa fa-address-book"></i> [[#{jsp.exam.test_package.006}]]
             </a>
-            <a style="background-color: #7b76b7;border-color: #7b76b7;color: #FFFFFF"
+            <a style="background-color:#b459d4;color:#ffffff"
                 class="btn" onclick="javascript:testReport()" shiro:hasPermission="exam:test_package:testreport">
                 <i class="fa fa-download"></i> [[#{jsp.exam.test_package.007}]]
             </a>
diff --git a/src/main/resources/templates/exam/userpaper/edit.html b/src/main/resources/templates/exam/userpaper/edit.html
index 5324011..5b7cd29 100644
--- a/src/main/resources/templates/exam/userpaper/edit.html
+++ b/src/main/resources/templates/exam/userpaper/edit.html
@@ -49,7 +49,7 @@
         <div class="form-group">
             <label class="col-sm-1 control-label"></label>
             <div class="col-sm-2">
-                <a class="btn btn-success" onclick="insertRow()">
+                <a class="btn btn-success" onclick="insertRow()" >
                     <i class="fa fa-plus"></i> [[#{jsp.product.package.authorization}]]
                 </a>
             </div>
diff --git a/src/main/resources/templates/exam/userpaper/userPaper.html b/src/main/resources/templates/exam/userpaper/userPaper.html
index fb6ecec..b0c1f13 100644
--- a/src/main/resources/templates/exam/userpaper/userPaper.html
+++ b/src/main/resources/templates/exam/userpaper/userPaper.html
@@ -120,7 +120,7 @@
                     align: 'center',
                     formatter: function (value, row, index) {
                         var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs href="javascript:void(0)" onclick="$.operate.edit(\'' + row.userId + '\')"><i class="fa fa-edit"></i>'+[[#{jsp.product.package.authorization}]]+'</a> ');
+                        actions.push('<a style="background-color: #a87242;border-color: #a87242;color: #FFFFFF" class="btn btn-success btn-xs href="javascript:void(0)" onclick="$.operate.edit(\'' + row.userId + '\')"><i class="fa fa-edit"></i>'+[[#{jsp.product.package.authorization}]]+'</a> ');
                         return actions.join('');
                     }
                 }]
diff --git a/src/main/resources/templates/main.html b/src/main/resources/templates/main.html
index d40f39d..1ea20c0 100644
--- a/src/main/resources/templates/main.html
+++ b/src/main/resources/templates/main.html
@@ -10,11 +10,11 @@
             <form id="post-form1">
                 <div class="select-list">
                     <ul>
-                        <li>
+                        <li id="hideA">
                             <p>[[#{jsp.exam.enterprise.companyname}]]锛�</p><input type="text" name="userName"
                                                                                  id="userName" value=""/>
                         </li>
-                        <li><a class="btn btn-primary btn-rounded btn-sm" onclick="openUserList()"><i
+                        <li id="hideB"><a class="btn btn-primary btn-rounded btn-sm" onclick="openUserList()"><i
                                 class="fa fa-search"></i>&nbsp;[[#{menu.exam.enterprise.view1}]]</a></li>
                         <li>
                             <input type="text" name="queryValue" id="queryValue" value=""/>
@@ -29,14 +29,6 @@
                 </div>
             </form>
         </div>
-<!--        <div class="col-sm-12 select-table" id="enterpriseInfo">-->
-<!--            <p class="select-title" align="center">浼佷笟淇℃伅</p>-->
-<!--            <table id="bootstrap-table1" data-mobile-responsive="true"></table>-->
-<!--        </div>-->
-<!--        <div class="col-sm-12 select-table" id="memberInfo">-->
-<!--            <p class="select-title" align="center">鐢ㄦ埛淇℃伅</p>-->
-<!--            <table id="bootstrap-table2" data-mobile-responsive="true"></table>-->
-<!--        </div>-->
         <div class="col-sm-12 select-table">
             <p class="select-title" align="center">[[#{jsp.main.other.001}]]</p>
             <table id="bootstrap-table-form1" data-mobile-responsive="true"></table>
@@ -67,72 +59,18 @@
     var statusDatas = [[${@dict.getType('test_status')}]];
     var userId = [[${user.userId}]];
 
-    // $(function () {
-    //     var options = {
-    //         id: "bootstrap-table1",
-    //         url: ctx + "exam/extend/list2?userType=02",
-    //         showSearch: false,
-    //         showRefresh: false,
-    //         showToggle: false,
-    //         showColumns: false,
-    //         createUrl: ctx + "exam/enterprise/add",
-    //         updateUrl: ctx + "exam/enterprise/edit/{id}",
-    //         removeUrl: ctx + "exam/enterprise/remove",
-    //         exportUrl: ctx + "exam/enterprise/export",
-    //         modalName: [[#{jsp.exam.demographyParam.businessuser}]],
-    //         // showRefresh: true,
-    //         queryParams: queryParams,
-    //         pageSize: 10,
-    //         pageList: [10, 50, 100],
-    //         columns: [
-    //             {
-    //                 field: 'userId',
-    //                 title: 'ID'
-    //             },
-    //             {
-    //                 field: 'loginName',
-    //                 title: [[#{jsp.exam.distributor.loginname}]]
-    //             },
-    //             {
-    //                 field: 'userName',
-    //                 title: [[#{jsp.exam.enterprise.companyname}]]
-    //             },
-    //             {
-    //                 field: 'businessManager',
-    //                 title: [[#{jsp.exam.distributor.businessmanager}]]
-    //             },
-    //             {
-    //                 field: 'testNum',
-    //                 title: [[#{jsp.exam.enterprise.usetimes}]],
-    //                 formatter: function (value, row, index) {
-    //                     return '<a href="javascript:void(0)" onclick="modifyUsageCount(\'' + row.id + '\')">' + value + '</a>';
-    //                 }
-    //             },
-    //             {
-    //                 field: 'effectTime',
-    //                 title: [[#{jsp.exam.enterprise.effectivetime}]]
-    //             },
-    //             {
-    //                 field: 'invalidTime',
-    //                 title: [[#{jsp.exam.distributor.termcooperation}]]
-    //             },
-    //             {
-    //                 field: 'legalPerson',
-    //                 title: [[#{jsp.exam.enterprise.corporate}]]
-    //             },
-    //             {
-    //                 title: [[#{basis.operate}]],
-    //                 align: 'center',
-    //                 formatter: function (value, row, index) {
-    //                     var actions = [];
-    //                     actions.push('<a class="btn btn-danger btn-xs " href="javascript:void(0)" onclick="freelogin(\'' + row.userId + '\')"><i class="fa fa-eye"></i>' + [[#{basis.freelogin}]] + '</a>');
-    //                     return actions.join('');
-    //                 }
-    //             }
-    //         ]
-    //     };
-    //     $.table.init(options);
-    // });
+    $(function(){ //浠g爜閮ㄥ垎
+        $.ajax({
+            type: "post",
+            url: ctx + "exam/enterprise/checkUser",
+            success: function (data) {
+                if(data.code=='0') {
+                    $("#hideA").css('display','none');
+                    $("#hideB").css('display','none');
+                }
+            }
+        });
+    })
 
     function freelogin(id) {
         $.ajax({
@@ -170,146 +108,6 @@
         }
         $("#" + tableId).bootstrapTable('refresh', params);
     }
-
-    // function searchDefine2() {
-    //     var tableId = 'bootstrap-table2';
-    //     var params = {
-    //         queryValue: $("#queryValue").val(),
-    //         queryType: $("#queryType").val(),
-    //         limit: 10,
-    //     }
-    //     $("#" + tableId).bootstrapTable('refresh', params);
-    // }
-    //
-    // $(function () {
-    //     var options = {
-    //         id: "bootstrap-table2",
-    //         url: ctx + "exam/testMember" + "/list",
-    //         showSearch: false,
-    //         showRefresh: false,
-    //         showToggle: false,
-    //         showColumns: false,
-    //         createUrl: ctx + "exam/testMember" + "/add/" + $("#testId").val(),
-    //         updateUrl: ctx + "exam/testMember" + "/edit/{id}",
-    //         removeUrl: ctx + "exam/testMember" + "/remove",
-    //         exportUrl: ctx + "exam/testMember" + "/export",
-    //         exportUrlLinkTest: ctx + "exam/testMember" + "/exportLinkTest",
-    //         importUrl: ctx + "exam/testMember" + "/importData/" + $("#testId").val(),
-    //         importTemplateUrl: ctx + "exam/testMember" + "/importTemplate",
-    //         modalName: [[#{jsp.exam.test_package.032}]],
-    //         pageSize: 10,
-    //         pageList: [10, 50, 100],
-    //         queryParams: queryParams2,
-    //         // queryParams: function (params) {
-    //         //     var temp = {
-    //         //         queryValue:$("#queryValue").val(),
-    //         //         queryType: $("#queryType").val(),
-    //         //     }
-    //         //     return temp;
-    //         // },
-    //         columns: [
-    //             {
-    //                 field: 'memberId',
-    //                 title: [[#{jsp.exam.test_package.033}]],
-    //                 visible: false
-    //             },
-    //             {
-    //                 field: 'memberName',
-    //                 title: [[#{jsp.exam.report.008}]]
-    //             },
-    //             {
-    //                 field: 'memberDept',
-    //                 title: [[#{jsp.system.dept.002}]],
-    //                 sortable: true
-    //
-    //             },
-    //             {
-    //                 field: 'memberEmail',
-    //                 title: [[#{jsp.system.user.profile.005}]]
-    //             },
-    //             {
-    //                 field: 'memberPhone',
-    //                 title: [[#{jsp.system.user.profile.003}]]
-    //             },
-    //             {
-    //                 field: 'testId',
-    //                 title: [[#{jsp.exam.report.014}]],
-    //                 visible: false
-    //             },
-    //             {
-    //                 field: 'startTime',
-    //                 title: [[#{jsp.exam.test_package.startTime}]]
-    //             },
-    //             {
-    //                 field: 'endTime',
-    //                 title: [[#{jsp.exam.test_package.endTime}]]
-    //             },
-    //             {
-    //                 field: 'smsStatus',
-    //                 title: [[#{jsp.exam.test_package.035}]],
-    //                 formatter: function (value, row, index) {
-    //                     return $.table.selectDictLabel(sms_type, value);
-    //                 }
-    //             },
-    //             {
-    //                 field: 'smsTime',
-    //                 title: [[#{jsp.exam.test_package.036}]]
-    //             },
-    //             {
-    //                 field: 'emailStatus',
-    //                 title: [[#{jsp.exam.test_package.037}]],
-    //                 formatter: function (value, row, index) {
-    //                     return $.table.selectDictLabel(email_status, value);
-    //                 }
-    //             },
-    //             {
-    //                 field: 'emailTime',
-    //                 title: [[#{jsp.exam.test_package.038}]]
-    //             },
-    //             {
-    //                 field: 'status',
-    //                 title: [[#{basis.state}]],
-    //                 formatter: function (value, row, index) {
-    //                     return $.table.selectDictLabel(test_member_status, value);
-    //                 }
-    //             },
-    //             {
-    //                 field: 'remark',
-    //                 title: [[#{basis.remark}]]
-    //             },
-    //             {
-    //                 field: 'token',
-    //                 title: [[#{jsp.exam.test_package.testtoken}]],
-    //                 visible: false
-    //             },
-    //             {
-    //                 field: 'hrEmailStatus',
-    //                 title: [[#{hr.mailbox.status}]],
-    //                 formatter: function (value, row, index) {
-    //                     if (value == 1) {
-    //                         return [[#{dict.ic138}]];
-    //                     } else if (value == 2) {
-    //                         return [[#{dict.ic140}]];
-    //                     } else {
-    //                         return "-";
-    //                     }
-    //                 },
-    //                 visible: false
-    //             },
-    //             {
-    //                 title: [[#{basis.operate}]],
-    //                 align: 'center',
-    //                 formatter: function (value, row, index) {
-    //                     var actions = [];
-    //                     actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="openTestDetail(\'' + row.token + '\')"><i class="fa fa-edit"></i>[[#{jsp.exam.test_package.testinfo}]]</a> ');
-    //                     actions.push('<a class="btn btn-warning btn-xs " href="javascript:void(0)" onclick="openMemberReport(' + row.memberId + "," + row.testId + ')"><i class="fa fa-edit"></i>[[#{view.report}]]</a> ');
-    //                     return actions.join('');
-    //                 }
-    //             }
-    //         ]
-    //     };
-    //     $.table.init(options);
-    // });
 
     // 鏌ョ湅娴嬭瘯杩涘害
     function openTestDetail(token) {
@@ -422,7 +220,7 @@
     $(function () {
         var options = {
             id: "bootstrap-table-form2",
-            url: "/exam/testMember/listTopAnswering",
+            url: "/exam/testMember/listTopAnswering2",
             showSearch: false,
             showRefresh: false,
             showToggle: false,

--
Gitblit v1.9.1