From b56c3c0f1bc87935a8b59f6ee39f78b4796250ff Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期三, 06 十一月 2024 15:01:02 +0800
Subject: [PATCH] 修改前台页面对应的后台效果,新增学习记录的自然时间差

---
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThCertQuery.java                             |    3 +
 exam-system/src/main/resources/mapper/institutionaccess/ThCertMapper.xml                                             |    3 +
 exam-system/src/main/resources/mapper/institutionaccess/ThStudyDetailMapper.xml                                      |    7 +++
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/vo/ThStudyDetailVO.java                            |    2 +
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java  |   68 +++++++++++++++++-----------------
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java |    4 ++
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThStudyDetailQuery.java                      |    4 ++
 7 files changed, 57 insertions(+), 34 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThCertQuery.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThCertQuery.java
index 7e610dd..6cc7f54 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThCertQuery.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThCertQuery.java
@@ -15,6 +15,9 @@
     //证书生成结束时间
     private String endTime;
 
+    //身份证号
+    private String  idcard;
+
     //机构代码
     private String trainOrgName;
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThStudyDetailQuery.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThStudyDetailQuery.java
index 1b67ddc..ce50c8e 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThStudyDetailQuery.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/query/ThStudyDetailQuery.java
@@ -17,6 +17,10 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
 
+    //0 全部  1正常记录  2异常记录
+    private Long status;
+
+
     private Integer pageNum;
 
     /** 每页显示记录数 */
diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/vo/ThStudyDetailVO.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/vo/ThStudyDetailVO.java
index 84ebf89..2430a2f 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/vo/ThStudyDetailVO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/model/vo/ThStudyDetailVO.java
@@ -29,6 +29,8 @@
     private Byte finishStatus;
     private Long duration;
     private String durationDesc;
+    private Long difference;
+    private String differenceDesc;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime startTime;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
index 0d5d89f..2cd842a 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
@@ -28,6 +28,7 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
+import java.time.Duration;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -78,6 +79,9 @@
             List<String> idcards = thStudyDetailVOS.stream().map(ThStudyDetailVO::getIdcard).collect(Collectors.toList());
             List<ThStudent> studentList = studentService.getNameByIdcards(idcards);
             for(ThStudyDetailVO thStudyDetailVO : thStudyDetailVOS){
+                Duration between = Duration.between(thStudyDetailVO.getStartTime(), thStudyDetailVO.getFinishTime());
+                thStudyDetailVO.setDifference(between.getSeconds());
+                thStudyDetailVO.setDifferenceDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getDifference()));
                 thStudyDetailVO.setDurationDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getDuration()));
                 thStudyDetailVO.setStartPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getStartPosition()));
                 thStudyDetailVO.setFinishPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getFinishPosition()));
diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
index e6d9fff..b2fd30d 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java
@@ -1363,20 +1363,20 @@
                 errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"结束位置不可为空"));
                 continue;
             }
-            if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){
-                errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空"));
-                continue;
-            }
+//            if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){
+//                errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空"));
+//                continue;
+//            }
             //认证记录集合
 //            if(CollectionUtils.isEmpty(studentDetailReqDTO.getAuthList())){
 //                errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"认证记录集合不可为空"));
 //                continue;
 //            }
             //学习轨迹集合
-            if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){
-                errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空"));
-                continue;
-            }
+//            if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){
+//                errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空"));
+//                continue;
+//            }
 
             /*boolean authFlag = false;
             for(ThStudytAuthReqDTO item : studentDetailReqDTO.getAuthList()){
@@ -1409,32 +1409,32 @@
             if(authFlag){
                 continue;
             }*/
-            boolean trackFlag = false;
-            for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){
-                if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){
-                    trackFlag = true;
-                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范"));
-                    break;
-                }
-                if(item.getStartTime() == null){
-                    trackFlag = true;
-                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空"));
-                    break;
-                }
-                if(item.getEndTime() == null){
-                    trackFlag = true;
-                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空"));
-                    break;
-                }
-                if(item.getTimeInterval() == null) {
-                    trackFlag = true;
-                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空"));
-                    break;
-                }
-            }
-            if(trackFlag){
-                continue;
-            }
+//            boolean trackFlag = false;
+//            for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){
+//                if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){
+//                    trackFlag = true;
+//                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范"));
+//                    break;
+//                }
+//                if(item.getStartTime() == null){
+//                    trackFlag = true;
+//                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空"));
+//                    break;
+//                }
+//                if(item.getEndTime() == null){
+//                    trackFlag = true;
+//                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空"));
+//                    break;
+//                }
+//                if(item.getTimeInterval() == null) {
+//                    trackFlag = true;
+//                    errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空"));
+//                    break;
+//                }
+//            }
+//            if(trackFlag){
+//                continue;
+//            }
             saveStudyDetailReqDTOS.add(studentDetailReqDTO);
 
             //判断需要修改的批次学生
diff --git a/exam-system/src/main/resources/mapper/institutionaccess/ThCertMapper.xml b/exam-system/src/main/resources/mapper/institutionaccess/ThCertMapper.xml
index 6763a25..ae52354 100644
--- a/exam-system/src/main/resources/mapper/institutionaccess/ThCertMapper.xml
+++ b/exam-system/src/main/resources/mapper/institutionaccess/ThCertMapper.xml
@@ -20,6 +20,9 @@
             <if test="trainOrgName!=null and trainOrgName!=''">
                 and a.train_org_name =#{trainOrgName}
             </if>
+            <if test="idcard!=null and idcard!=''">
+                and a.idcard like concat('%',#{idcard},'%')
+            </if>
         </where>
         order by a.create_time desc
     </select>
diff --git a/exam-system/src/main/resources/mapper/institutionaccess/ThStudyDetailMapper.xml b/exam-system/src/main/resources/mapper/institutionaccess/ThStudyDetailMapper.xml
index 19c708b..cd6c189 100644
--- a/exam-system/src/main/resources/mapper/institutionaccess/ThStudyDetailMapper.xml
+++ b/exam-system/src/main/resources/mapper/institutionaccess/ThStudyDetailMapper.xml
@@ -37,6 +37,13 @@
         <if test="query.endTime != null"><!-- 结束时间检索 -->
             and date_format(d.create_time,'%y-%m-%d') &lt;= date_format(#{query.endTime},'%y-%m-%d')
         </if>
+        <if test="query.status == 0"></if>
+        <if test="query.status == 1">
+            and TIMESTAMPDIFF(SECOND, start_time, finish_time) = d.duration
+        </if>
+        <if test="query.status == 2">
+            and TIMESTAMPDIFF(SECOND, start_time, finish_time) &lt; d.duration
+        </if>
         ORDER BY
         d.id DESC
 

--
Gitblit v1.9.2