Selaa lähdekoodia

1.0.2,bug修改

xiaofei 2 vuotta sitten
vanhempi
commit
ddf15bb855

+ 7 - 7
paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperScanTaskDetail.java

@@ -43,9 +43,9 @@ public class PaperScanTaskDetail extends BaseEntity implements Serializable {
     @TableField("teacher_name")
     private String teacherName;
 
-    @ApiModelProperty(value = "是否绑定图片")
-    @TableField("is_bind")
-    private Boolean isBind;
+    @ApiModelProperty(value = "绑定图片")
+    @TableField("bind_count")
+    private Integer bindCount;
 
     public Long getSchoolId() {
         return schoolId;
@@ -87,11 +87,11 @@ public class PaperScanTaskDetail extends BaseEntity implements Serializable {
         this.teacherName = teacherName;
     }
 
-    public Boolean getBind() {
-        return isBind;
+    public Integer getBindCount() {
+        return bindCount;
     }
 
-    public void setBind(Boolean bind) {
-        isBind = bind;
+    public void setBindCount(Integer bindCount) {
+        this.bindCount = bindCount;
     }
 }

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

@@ -32,7 +32,7 @@ public interface PaperLibraryMapper extends BaseMapper<PaperLibrary> {
 
     List<PaperLibrary> listUnBindData(@Param("paperScanTaskId") Long paperScanTaskId);
 
-    List<PaperLibrary> selectBatchData(@Param("schoolId") Long schoolId, @Param("userId") Long userId);
+    List<PaperLibrary> selectBatchData(@Param("paperScanTaskId") Long paperScanTaskId, @Param("userId") Long userId);
 
     IPage<TaskStudentResult> listByStudentCode(@Param("page") Page<TaskStudentResult> page, @Param("schoolId") Long schoolId, @Param("studentCode") String studentCode);
 

+ 8 - 2
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/ClientServiceImpl.java

@@ -204,6 +204,12 @@ public class ClientServiceImpl implements ClientService {
                     if (paperScanTaskDetail != null) {
                         paperLibrary.setPaperScanTaskDetailId(paperScanTaskDetail.getId());
                         paperLibrary.setWordsResult(studentCode);
+
+                        // 绑定数量加1
+                        UpdateWrapper<PaperScanTaskDetail> updateWrapper = new UpdateWrapper<>();
+                        updateWrapper.lambda().set(PaperScanTaskDetail::getBindCount, paperScanTaskDetail.getBindCount() + 1)
+                                .eq(PaperScanTaskDetail::getId, paperScanTaskDetail.getId());
+                        paperScanTaskDetailService.update(updateWrapper);
                     }
                 }
                 // 绑定失败,不进异常数据,直接在未处理里,手工绑定
@@ -225,8 +231,8 @@ public class ClientServiceImpl implements ClientService {
             }
             return true;
 
-        } catch (IOException e) {
-            throw ExceptionResultEnum.ERROR.exception("上传图片失败:" + e.getMessage());
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception("保存图片失败:" + e.getMessage());
         }
     }
 

+ 14 - 9
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryServiceImpl.java

@@ -132,10 +132,11 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
             PaperScanTaskDetail oldPaperScanTaskDetail = paperScanTaskDetailService.getById(paperLibrary.getPaperScanTaskDetailId());
             // 查询是否有绑定试卷
             int count = this.baseMapper.countByPaperScanTaskDetailId(paperLibrary.getPaperScanTaskDetailId());
-            oldPaperScanTaskDetail.setBind(count > 0);
+            oldPaperScanTaskDetail.setBindCount(count);
             paperScanTaskDetailService.updateById(oldPaperScanTaskDetail);
         }
-        paperScanTaskDetail.setBind(true);
+        int count = this.baseMapper.countByPaperScanTaskDetailId(paperScanTaskDetailId);
+        paperScanTaskDetail.setBindCount(count);
         paperScanTaskDetailService.updateById(paperScanTaskDetail);
 
         // 任务下所有任务绑定完,更新状态
@@ -229,9 +230,9 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
         Long schoolId = SystemConstant.convertIdToLong(String.valueOf(ServletUtil.getRequestHeaderSchoolId()));
 
         // 查询下一个待绑定任务
-        List<PaperLibrary> waitPaperLibraryList = this.baseMapper.selectBatchData(schoolId, userId);
+        List<PaperLibrary> waitPaperLibraryList = this.baseMapper.selectBatchData(paperScanTaskId, userId);
         if (waitPaperLibraryList.isEmpty()) {
-            waitPaperLibraryList = createBindData(userId, schoolId, paperScanTaskId);
+            waitPaperLibraryList = createBindData(userId, paperScanTaskId);
         }
 
         List<PaperLibraryResult> paperLibraryResultList = new ArrayList<>();
@@ -424,11 +425,11 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
         return this.baseMapper.maxSequence(paperScanTaskId);
     }
 
-    private List<PaperLibrary> createBindData(Long userId, Long schoolId, Long paperScanTaskId) {
+    private List<PaperLibrary> createBindData(Long userId, Long paperScanTaskId) {
         try {
-            lockService.waitlock(LockType.BIND_PAPER_TASK, schoolId);
+            lockService.waitlock(LockType.BIND_PAPER_TASK, paperScanTaskId);
             PaperScanTask paperScanTask = paperScanTaskService.getById(paperScanTaskId);
-            if (paperScanTask.getCheckUserId() != null && userId != paperScanTask.getCheckUserId()) {
+            if (paperScanTask.getCheckUserId() != null && !userId.equals(paperScanTask.getCheckUserId())) {
                 throw ExceptionResultEnum.ERROR.exception("该任务已被其它人绑定,请刷新数据");
             }
 
@@ -439,14 +440,18 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
 
             List<PaperLibrary> paperLibraryList = this.baseMapper.listUnBindData(paperScanTaskId);
             if (!paperLibraryList.isEmpty()) {
-                paperLibraryList.forEach(m -> m.setUserId(userId));
+                paperLibraryList.forEach(m -> {
+                    if (m.getPaperScanTaskDetailId() == null) {
+                        m.setUserId(userId);
+                    }
+                });
                 this.updateBatchById(paperLibraryList);
             }
             return paperLibraryList;
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
-            lockService.unlock(LockType.BIND_PAPER_TASK, schoolId);
+            lockService.unlock(LockType.BIND_PAPER_TASK, paperScanTaskId);
         }
         return new ArrayList<>();
     }

+ 3 - 4
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java

@@ -238,17 +238,16 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         // 要删除的图片数据集合
         List<PaperLibrary> willDeletePaperLibraryList = paperLibraryService.list(new QueryWrapper<PaperLibrary>()
                 .lambda()
-                .eq(PaperLibrary::getSchoolId, schoolId)
                 .eq(PaperLibrary::getPaperScanTaskId, paperScanTaskId));
 
-        if (willDeletePaperLibraryList.size() > 0) {
+        if (!willDeletePaperLibraryList.isEmpty()) {
             // 已绑定的扫描任务校验
             List<PaperLibrary> cantDeleteList = willDeletePaperLibraryList
                     .stream()
                     .filter(e -> SystemConstant.longNotNull(e.getPaperScanTaskDetailId()))
                     .collect(Collectors.toList());
 
-            if (cantDeleteList.size() > 0) {
+            if (!cantDeleteList.isEmpty()) {
                 throw ExceptionResultEnum.ERROR.exception("所选的扫描任务已经进行了数据检验,不能删除");
             }
 
@@ -256,7 +255,7 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
             paperLibraryService.removeByIds(willDeletePaperLibraryList.stream().map(PaperLibrary::getId).collect(Collectors.toList()));
 
             // 清除扫描量
-            paperScanTask.setScanCount(null);
+            paperScanTask.setScanCount(0);
             paperScanTask.updateInfo(requestUser.getId());
             this.updateById(paperScanTask);
         }

+ 6 - 1
paper-library-business/src/main/resources/mapper/PaperArchivesMapper.xml

@@ -144,7 +144,12 @@
                 and pstd.teach_clazz_name = #{teachClazzName}
             </if>
             <if test="isBind != null">
-                and pstd.is_bind = #{isBind}
+                <if test="isBind == true">
+                    and pstd.bind_count > 0
+                </if>
+                <if test="isBind == false">
+                    and pstd.bind_count = 0
+                </if>
             </if>
             <if test="param != null and param != ''">
                 and (bs.student_name like concat('%',#{param},'%') or bs.student_code like concat('%',#{param},'%'))

+ 10 - 16
paper-library-business/src/main/resources/mapper/PaperLibraryMapper.xml

@@ -49,19 +49,10 @@
             pst.course_code courseCode,
             pst.course_name courseName,
             pst.create_time createTime,
-            pl.paper_scan_task_detail_id paperScanTaskDetailId,
-            pl.bind_count bindCount
+            pstd.id paperScanTaskDetailId,
+            pstd.bind_count bindCount
         FROM
-            (SELECT
-                 school_id, paper_scan_task_detail_id, COUNT(1) bind_count
-             FROM
-                 paper_library
-             WHERE
-                 paper_scan_task_detail_id IS NOT NULL
-            GROUP BY school_id, paper_scan_task_detail_id) pl
-                JOIN
-            paper_scan_task_detail pstd ON pl.school_id = pstd.school_id
-                AND pl.paper_scan_task_detail_id = pstd.id
+            paper_scan_task_detail pstd
                 LEFT JOIN
             paper_scan_task pst ON pstd.school_id = pst.school_id
                 AND pstd.paper_scan_task_id = pst.id
@@ -83,6 +74,7 @@
             <if test="scanTaskName != null and scanTaskName != ''">
                 and pst.scan_task_name like concat(#{scanTaskName}, '%')
             </if>
+            and pstd.bind_count > 0
         </where>
     </select>
     <select id="countBindData" resultType="java.lang.Integer">
@@ -151,18 +143,20 @@
         <include refid="Base_Column_List"></include>
         <where>
              paper_scan_task_id = #{paperScanTaskId}
+             and user_id is null
+             and abnormal = false
         </where>
-        ORDER BY paper_scan_task_id, sequence
+        ORDER BY sequence, create_time
     </select>
     <select id="selectBatchData" resultMap="BaseResultMap">
         <include refid="Base_Column_List"></include>
         <where>
-            school_id = #{schoolId}
+            paper_scan_task_id = #{paperScanTaskId}
             AND user_id = #{userId}
             AND paper_scan_task_detail_id is null
             AND abnormal = false
-            order by paper_scan_task_id, sequence
-            limit 1
+            order by sequence, create_time
+            limit 10
         </where>
     </select>
     <select id="listByStudentCode" resultType="com.qmth.paper.library.business.bean.result.TaskStudentResult">

+ 3 - 11
paper-library-business/src/main/resources/mapper/PaperScanTaskMapper.xml

@@ -66,19 +66,13 @@
             pst.course_name AS courseName,
             pstd.teacher_name AS teacherName,
             pstd.teach_clazz_name AS teachClazzName,
-            pl.scan_count AS scanCount
+            pst.scan_count AS scanCount
         FROM
             paper_scan_task pst
                 LEFT JOIN
             paper_scan_task_detail pstd ON pst.id = pstd.paper_scan_task_id
                 LEFT JOIN
             basic_student bs ON bs.id = pstd.student_id
-                LEFT JOIN
-            (SELECT
-                 COUNT(*) AS scan_count, paper_scan_task_detail_id
-             FROM
-                 paper_library
-             GROUP BY paper_scan_task_detail_id) pl ON pl.paper_scan_task_detail_id = pstd.id
         <where>
             <if test="schoolId != null">
                 AND pst.school_id = #{schoolId}
@@ -107,10 +101,8 @@
              FROM
                  paper_library
              <where>
-                 user_id > 0
-                 <if test="paperScanTaskId != null and paperScanTaskId != ''">
-                     AND paper_scan_task_id = #{paperScanTaskId}
-                 </if>
+                 paper_scan_task_id = #{paperScanTaskId}
+                 and user_id is not null
              </where>
              GROUP BY user_id) pl
                 LEFT JOIN

+ 7 - 0
sql/1.0.2修改内容.txt

@@ -46,3 +46,10 @@ ALTER TABLE `paper_scan_task`
 ADD COLUMN `abnormal_count` INT NULL DEFAULT '0' COMMENT '异常数量' AFTER `bind_count`;
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('267', '新增', 'Add', 'BUTTON', '244', '13', 'AUTH', '245', '1', '0', '1');
 UPDATE `sys_privilege` SET `name` = '新增' WHERE (`id` = '245');
+
+
+
+---以上已更新
+
+ALTER TABLE paper_scan_task_detail`
+CHANGE COLUMN `is_bind` `bind_count` INT NULL DEFAULT '0' COMMENT '绑定图片数量' ;

+ 3 - 3
sql/paper_library_db.sql

@@ -229,8 +229,8 @@ CREATE TABLE `paper_scan_task`  (
   `teach_clazz_name` varchar(64) DEFAULT NULL COMMENT '教学班名称',
   `scan_user_id` bigint(20) DEFAULT NULL COMMENT '扫描员id',
   `check_user_id` BIGINT(20) NULL COMMENT '数据校验员Id',
-  `student_count` int(11) DEFAULT 0 COMMENT '扫描量(份)',
-  `scan_count` int(11) DEFAULT 0 COMMENT '扫描数量',
+  `student_count` INT(11) DEFAULT 0 COMMENT '扫描量(份)',
+  `scan_count` INT(11) DEFAULT 0 COMMENT '扫描数量',
   `bind_count` INT(11) NULL DEFAULT 0 COMMENT '已绑定数量',
   `abnormal_count` INT NULL DEFAULT '0' COMMENT '异常数量',
   `progress` DOUBLE NULL DEFAULT 0 COMMENT '绑定进度',
@@ -253,7 +253,7 @@ CREATE TABLE `paper_scan_task_detail`  (
   `student_id` bigint(20) NOT NULL COMMENT '学生id',
   `teach_clazz_name` VARCHAR(100) NULL COMMENT '教学班',
   `teacher_name` VARCHAR(45) NULL COMMENT '任课老师',
-  `is_bind` tinyint(1) DEFAULT 0 COMMENT '是否绑定图片(大于1张)',
+  `bind_count` INT(11) DEFAULT 0 COMMENT '绑定图片数量',
   `create_id` bigint(20) DEFAULT NULL COMMENT '创建人',
   `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间',
   `update_id` bigint(20) DEFAULT NULL COMMENT '更新人',