소스 검색

1.0.5 优化

haogh 10 달 전
부모
커밋
76940cdebc

+ 28 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperLibrary.java

@@ -57,6 +57,18 @@ public class PaperLibrary extends BaseEntity implements Serializable {
     @TableField("batch_no")
     private String batchNo;
 
+    /**
+     * 学校ID
+     */
+    @TableField("school_id")
+    private Long schoolId;
+
+    /**
+     * 扫描日期 yyyy-MM-dd
+     */
+    @TableField("create_date")
+    private String createDate;
+
     public Long getPaperScanTaskId() {
         return paperScanTaskId;
     }
@@ -112,4 +124,20 @@ public class PaperLibrary extends BaseEntity implements Serializable {
     public void setBatchNo(String batchNo) {
         this.batchNo = batchNo;
     }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
 }

+ 2 - 2
paper-library-business/src/main/java/com/qmth/paper/library/business/mapper/PaperLibraryMapper.java

@@ -27,11 +27,11 @@ public interface PaperLibraryMapper extends BaseMapper<PaperLibrary> {
     @MapKey(value = "studentId")
     List<Map> listMaxSequenceByPaperScanTaskId(@Param("paperScanTaskId") Long paperScanTaskId);
 
-    IPage<ScanStatResult> listScanStat(@Param("page") Page<ScanStatResult> page, @Param("schoolId") Long schoolId, @Param("scanDate") String scanDate, @Param("scanner") String scanner);
+    IPage<ScanStatResult> listScanStat(@Param("page") Page<ScanStatResult> page, @Param("schoolId") Long schoolId, @Param("scanDate") String scanDate, @Param("userId") Long userId);
 
     int countScanStudentByScannerAndDate(@Param("createId") Long createId, @Param("scanDate") String scanDate);
 
-    List<ScanStatExportResult> listScanStatExport(@Param("schoolId") Long schoolId, @Param("scanDateStr") String scanDateStr, @Param("scanner") String scanner);
+    List<ScanStatExportResult> listScanStatExport(@Param("schoolId") Long schoolId, @Param("scanDateStr") String scanDateStr, @Param("userId") Long userId);
 
     List<String> listBatchNo(@Param("studentId") Long studentId);
 }

+ 4 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/ClientServiceImpl.java

@@ -20,11 +20,13 @@ import com.qmth.paper.library.common.service.BasicBatchNumberService;
 import com.qmth.paper.library.common.service.SysPrivilegeService;
 import com.qmth.paper.library.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -109,6 +111,8 @@ public class ClientServiceImpl implements ClientService {
             paperLibrary.setBatchNo(batchNo); // 提交批次号
             paperLibrary.setCreateId(scanUserId);
             paperLibrary.setCreateTime(System.currentTimeMillis());
+            paperLibrary.setSchoolId(paperScanTask.getSchoolId());
+            paperLibrary.setCreateDate(DateFormatUtils.format(new Date(), SystemConstant.SHORT_DATE_PATTERN));
             // 校验是否存在,不存在创建考生并绑定上
             ExamStudent examStudent = examStudentService.getByExamIdAndCourseCodeAndStudentCode(paperScanTask.getExamId(), paperScanTask.getCourseCode(), recognitionVo.getBindResult());
             if (examStudent == null) {

+ 32 - 2
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanStatServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.paper.library.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,9 +11,13 @@ import com.qmth.paper.library.business.mapper.PaperLibraryMapper;
 import com.qmth.paper.library.business.service.PaperLibraryService;
 import com.qmth.paper.library.business.service.PaperScanStatService;
 import com.qmth.paper.library.common.contant.SystemConstant;
+import com.qmth.paper.library.common.entity.SysUser;
+import com.qmth.paper.library.common.service.SysUserService;
 import com.qmth.paper.library.common.util.ServletUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.DateUtils;
+import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -30,15 +35,22 @@ public class PaperScanStatServiceImpl extends ServiceImpl<PaperLibraryMapper, Pa
     @Resource
     private PaperLibraryService paperLibraryService;
 
+    @Resource
+    private SysUserService sysUserService;
+
     @Override
     public IPage<ScanStatResult> pageScanStat(Long scanDate, String scanner, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        //日期转换
         String scanDateStr = null;
         if(scanDate != null && scanDate > 0) {
             scanDateStr = DateFormatUtils.format(scanDate, SystemConstant.SHORT_DATE_PATTERN);
         }
 
-        IPage<ScanStatResult> scanStatPage = baseMapper.listScanStat(new Page<>(pageNumber, pageSize), schoolId, scanDateStr, scanner);
+        //获取查询条件中的用户
+        Long userId = getUserId(scanner);
+
+        IPage<ScanStatResult> scanStatPage = baseMapper.listScanStat(new Page<>(pageNumber, pageSize), schoolId, scanDateStr, userId);
         for (ScanStatResult scanStatResult : scanStatPage.getRecords()) {
             //设置扫描学生数
             int studentCount = paperLibraryService.countScanStudentByScannerAndDate(scanStatResult.getCreateId(), scanStatResult.getScanDateStr());
@@ -56,7 +68,10 @@ public class PaperScanStatServiceImpl extends ServiceImpl<PaperLibraryMapper, Pa
             scanDateStr = DateFormatUtils.format(scanDate, SystemConstant.SHORT_DATE_PATTERN);
         }
 
-        List<ScanStatExportResult> scanStatList = baseMapper.listScanStatExport(schoolId, scanDateStr, scanner);
+        //获取查询条件中的用户
+        Long userId = getUserId(scanner);
+
+        List<ScanStatExportResult> scanStatList = baseMapper.listScanStatExport(schoolId, scanDateStr, userId);
         for(ScanStatExportResult scanStatExportResult : scanStatList) {
             //设置扫描学生数
             int studentCount = paperLibraryService.countScanStudentByScannerAndDate(scanStatExportResult.getCreateId(), scanStatExportResult.getScanDateStr());
@@ -66,6 +81,21 @@ public class PaperScanStatServiceImpl extends ServiceImpl<PaperLibraryMapper, Pa
         return scanStatList;
     }
 
+    private @Nullable Long getUserId(String scanner) {
+        Long userId = null;
+        if (StringUtils.isNotEmpty(scanner)) {
+            LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(SysUser::getLoginName, scanner.trim());
+            SysUser user = sysUserService.getOne(queryWrapper);
+            if (user != null) {
+                userId = user.getId();
+            } else {
+                userId = -1L;
+            }
+        }
+        return userId;
+    }
+
     private Long getLongDate(String dateStr) {
         Date date;
         try {

+ 27 - 29
paper-library-business/src/main/resources/mapper/PaperLibraryMapper.xml

@@ -69,29 +69,28 @@
 
     <select id="listScanStat" resultType="com.qmth.paper.library.business.bean.result.ScanStatResult">
         SELECT
-            concat(u.login_name,'(',u.real_name,')') scanner,
+            concat( u.login_name, '(', u.real_name, ')' ) scanner,
             p.create_id createId,
-            date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d' ) scanDateStr,
+            p.create_date scanDateStr,
             count( 1 ) pictureCount
         FROM
             paper_library p,
-            paper_scan_task t,
             sys_user u
         WHERE
-          p.paper_scan_task_id = t.id
-          AND u.id = p.create_id
-          AND t.school_id = #{schoolId}
-        <if test="scanDate != null and scanDate != ''">
-            and  date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')=#{scanDate}
-        </if>
-        <if test="scanner != null and scanner != ''">
-            and  u.login_name=#{scanner}
-        </if>
+            p.school_id = #{schoolId}
+            AND p.create_id = u.id
+            <if test="userId != null">
+                and u.id=#{userId}
+            </if>
+            <if test="scanDate != null and scanDate != ''">
+                and p.create_date=#{scanDate}
+            </if>
         GROUP BY
-        u.login_name,
-        p.create_id,
-        date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')
-        order by date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')
+            u.login_name,
+            p.create_id,
+            p.create_date
+        ORDER BY
+            p.create_date
     </select>
 
     <select id="countScanStudentByScannerAndDate" resultType="java.lang.Integer">
@@ -100,34 +99,33 @@
         FROM
             paper_library pl
         WHERE
-            pl.create_id = #{createId} and  date_format( FROM_UNIXTIME( pl.create_time / 1000 ), '%Y-%m-%d')=#{scanDate}
+            pl.create_id = #{createId} and pl.create_date=#{scanDate}
     </select>
 
     <select id="listScanStatExport" resultType="com.qmth.paper.library.business.bean.result.ScanStatExportResult">
         SELECT
-        concat(u.login_name,'(',u.real_name,')') scanner,
+        concat( u.login_name, '(', u.real_name, ')' ) scanner,
         p.create_id createId,
-        date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d' ) scanDateStr,
+        p.create_date scanDateStr,
         count( 1 ) pictureCount
         FROM
         paper_library p,
-        paper_scan_task t,
         sys_user u
         WHERE
-        p.paper_scan_task_id = t.id
-        AND u.id = p.create_id
-        AND t.school_id = #{schoolId}
-        <if test="scanDateStr != null and scanDateStr != ''">
-            and  date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')=#{scanDateStr}
+        p.school_id = #{schoolId}
+        AND p.create_id = u.id
+        <if test="userId != null">
+            and u.id=#{userId}
         </if>
-        <if test="scanner != null and scanner != ''">
-            and  u.login_name=#{scanner}
+        <if test="scanDate != null and scanDate != ''">
+            and p.create_date=#{scanDate}
         </if>
         GROUP BY
         u.login_name,
         p.create_id,
-        date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')
-        order by date_format( FROM_UNIXTIME( p.create_time / 1000 ), '%Y-%m-%d')
+        p.create_date
+        ORDER BY
+        p.create_date
     </select>
 
     <select id="listBatchNo" resultType="java.lang.String">

+ 3 - 1
paper-library/install/mysql/init/paper_library_db.sql

@@ -245,14 +245,16 @@ CREATE TABLE IF NOT EXISTS `paper_library` (
   `bind_result` varchar(200) DEFAULT NULL COMMENT 'OCR或者条码识别结果使用值',
   `recognize_result` mediumtext COMMENT 'OCR或者条码识别结果(原始值)',
   `batch_no` varchar(20) DEFAULT NULL COMMENT '批次号',
+  `school_id` bigint(20) DEFAULT NULL COMMENT '学校ID',
   `create_id` bigint(20) DEFAULT NULL COMMENT '创建人',
   `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间',
+  `create_date` varchar(10) DEFAULT NULL COMMENT '创建日期',
   `update_id` bigint(20) DEFAULT NULL COMMENT '更新人',
   `update_time` bigint(20) DEFAULT NULL COMMENT '更新时间',
   PRIMARY KEY (`id`) USING BTREE,
   KEY `idx_1` (`paper_scan_task_id`,`student_id`),
   KEY `idx_2` (`student_id`),
-  KEY `idx_3` (`create_id`)
+  KEY `idx_3` (`school_id`,`create_id` , `create_date`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='其它文件库';
 
 -- ----------------------------

+ 7 - 0
paper-library/install/mysql/upgrade/1.0.5.sql

@@ -112,3 +112,10 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 
 UPDATE `sys_privilege` SET `enable` = '0' WHERE (`id` = '12');
 UPDATE `sys_privilege` SET `enable` = '0' WHERE (`id` = '512');
+
+ALTER TABLE `paper_library` ADD COLUMN `school_id` bigint NULL COMMENT '学校ID' AFTER `batch_no`;
+ALTER TABLE `paper_library` ADD COLUMN `create_date` varchar(10) NULL COMMENT '创建日期' AFTER `create_time`;
+ALTER TABLE `paper_library` DROP INDEX `idx_3`, ADD INDEX `idx_3`(`school_id`,`create_id` , `create_date`) USING BTREE;
+
+UPDATE paper_library p,paper_scan_task t SET p.school_id=t.school_id WHERE p.paper_scan_task_id=t.id;
+UPDATE paper_library SET create_date=date_format( FROM_UNIXTIME( create_time / 1000 ), '%Y-%m-%d');