Explorar el Código

调试Bug修改

xiaof hace 3 años
padre
commit
4a09cba6cf

+ 4 - 1
src/main/java/cn/com/qmth/print/manage/controller/ExamController.java

@@ -53,7 +53,10 @@ public class ExamController extends BaseController {
      * @return
      */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Object save(ExamEntity exam) {
+    public Object save(@RequestAttribute PmSession accessEntity, ExamEntity exam) {
+        Long userId = getAccessUserId(accessEntity);
+        exam.setCreatorId(userId);
+        exam.setUpdaterId(userId);
         return examService.saveExam(exam);
     }
 

+ 8 - 2
src/main/java/cn/com/qmth/print/manage/controller/UserController.java

@@ -1,9 +1,11 @@
 package cn.com.qmth.print.manage.controller;
 
 import cn.com.qmth.print.manage.entity.UserEntity;
+import cn.com.qmth.print.manage.service.PmSession;
 import cn.com.qmth.print.manage.service.UserService;
 import cn.com.qmth.print.manage.service.query.UserQuery;
 
+import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonNullFormatVisitor;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
@@ -12,6 +14,7 @@ import com.qmth.boot.core.exception.StatusException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -24,7 +27,7 @@ import java.util.Date;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/user")
 @Aac(strict = BOOL.FALSE, auth = BOOL.TRUE)
-public class UserController {
+public class UserController extends BaseController {
 
     @Autowired
     private UserService userService;
@@ -57,7 +60,8 @@ public class UserController {
      * @return
      */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Object save(UserEntity user) {
+    public Object save(@RequestAttribute PmSession accessEntity, UserEntity user) {
+        Long userId = getAccessUserId(accessEntity);
         if (user.getId() != null) {
             UserEntity userEntity = userService.getById(user.getId());
             if (userEntity == null) {
@@ -70,7 +74,9 @@ public class UserController {
         if(StringUtils.isBlank(user.getName())){
             user.setName(user.getLoginName());
         }
+        user.setCreatorId(userId);
         user.setCreateTime(new Date());
+        user.setUpdaterId(userId);
         user.setUpdateTime(new Date());
         return userService.saveOrUpdate(user);
     }

+ 11 - 0
src/main/java/cn/com/qmth/print/manage/entity/BreakRecordEntity.java

@@ -4,6 +4,7 @@ import cn.com.qmth.print.manage.entity.base.AuditingEntity;
 import cn.com.qmth.print.manage.enums.RecordStatus;
 import cn.com.qmth.print.manage.enums.GroupType;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 @TableName("pm_break_record")
@@ -25,6 +26,9 @@ public class BreakRecordEntity extends AuditingEntity {
 
     private RecordStatus status;
 
+    @TableField(exist = false)
+    private String userName;
+
     public Long getOrgId() {
         return orgId;
     }
@@ -81,4 +85,11 @@ public class BreakRecordEntity extends AuditingEntity {
         this.status = status;
     }
 
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 }

+ 11 - 0
src/main/java/cn/com/qmth/print/manage/entity/CheckRecordEntity.java

@@ -4,6 +4,7 @@ import cn.com.qmth.print.manage.entity.base.AuditingEntity;
 import cn.com.qmth.print.manage.enums.RecordStatus;
 import cn.com.qmth.print.manage.enums.GroupType;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 @TableName("pm_check_record")
@@ -25,6 +26,9 @@ public class CheckRecordEntity extends AuditingEntity {
 
     private RecordStatus status;
 
+    @TableField(exist = false)
+    private String userName;
+
     public Long getOrgId() {
         return orgId;
     }
@@ -81,4 +85,11 @@ public class CheckRecordEntity extends AuditingEntity {
         this.status = status;
     }
 
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 }

+ 11 - 0
src/main/java/cn/com/qmth/print/manage/entity/ExamEntity.java

@@ -27,6 +27,9 @@ public class ExamEntity extends AuditingEntity {
     @TableField(exist = false)
     private String userIds;
 
+    @TableField(exist = false)
+    private String orgName;
+
     public Long getOrgId() {
         return orgId;
     }
@@ -74,4 +77,12 @@ public class ExamEntity extends AuditingEntity {
     public void setUserIds(String userIds) {
         this.userIds = userIds;
     }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
 }

+ 19 - 9
src/main/java/cn/com/qmth/print/manage/service/impl/BreakRecordServiceImpl.java

@@ -1,30 +1,30 @@
 package cn.com.qmth.print.manage.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.print.manage.dao.BreakRecordDao;
 import cn.com.qmth.print.manage.entity.BreakRecordEntity;
 import cn.com.qmth.print.manage.entity.ExamEntity;
 import cn.com.qmth.print.manage.entity.ExamStudentEntity;
+import cn.com.qmth.print.manage.entity.UserEntity;
 import cn.com.qmth.print.manage.enums.GroupType;
 import cn.com.qmth.print.manage.enums.RecordStatus;
 import cn.com.qmth.print.manage.service.BreakRecordService;
 import cn.com.qmth.print.manage.service.ExamService;
 import cn.com.qmth.print.manage.service.ExamStudentService;
+import cn.com.qmth.print.manage.service.UserService;
 import cn.com.qmth.print.manage.service.query.RecordQuery;
 import cn.com.qmth.print.manage.vo.BreakRecordVo;
-
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.core.exception.StatusException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRecordEntity> implements
@@ -39,6 +39,9 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
     @Autowired
     private ExamService examService;
 
+    @Autowired
+    private UserService userService;
+
     @Override
     public BreakRecordVo start(Long userId, Long examId, String startNumber) {
         ExamEntity exam = examService.getById(examId);
@@ -111,7 +114,14 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
         lw.eq(BreakRecordEntity::getExamId, query.getExamId());
         lw.orderByAsc(BreakRecordEntity::getId);
         Page<BreakRecordEntity> page = new Page<>(query.getPageNumber(), query.getPageSize());
-        return breakRecordDao.selectPage(page, wrapper);
+        Page<BreakRecordEntity> entityPage = breakRecordDao.selectPage(page, wrapper);
+        for (BreakRecordEntity record : entityPage.getRecords()) {
+            if (record.getUpdaterId() != null) {
+                UserEntity userEntity = userService.getById(record.getUpdaterId());
+                record.setUserName(userEntity.getName());
+            }
+        }
+        return entityPage;
     }
 
     @Override

+ 22 - 10
src/main/java/cn/com/qmth/print/manage/service/impl/CheckRecordServiceImpl.java

@@ -1,31 +1,32 @@
 package cn.com.qmth.print.manage.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.print.manage.dao.CheckRecordDao;
 import cn.com.qmth.print.manage.entity.CheckRecordEntity;
 import cn.com.qmth.print.manage.entity.ExamEntity;
 import cn.com.qmth.print.manage.entity.ExamStudentEntity;
+import cn.com.qmth.print.manage.entity.UserEntity;
 import cn.com.qmth.print.manage.enums.CheckSort;
 import cn.com.qmth.print.manage.enums.GroupType;
+import cn.com.qmth.print.manage.enums.RecordStatus;
 import cn.com.qmth.print.manage.service.CheckRecordService;
 import cn.com.qmth.print.manage.service.ExamService;
 import cn.com.qmth.print.manage.service.ExamStudentService;
+import cn.com.qmth.print.manage.service.UserService;
 import cn.com.qmth.print.manage.service.query.RecordQuery;
 import cn.com.qmth.print.manage.vo.CheckRecordVo;
-
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.core.exception.StatusException;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRecordEntity> implements
@@ -40,6 +41,9 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
     @Autowired
     private ExamService examService;
 
+    @Autowired
+    private UserService userService;
+
     @Override
     public CheckRecordVo start(Long userId, Long examId, String startNumber) {
         ExamEntity exam = examService.getById(examId);
@@ -101,6 +105,7 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
         checkRecord.setEndNumber(endNumber);
         checkRecord.setUpdaterId(userId);
         checkRecord.setUpdateTime(new Date());
+        checkRecord.setStatus(RecordStatus.NORMAL);
         saveOrUpdate(checkRecord);
         return new CheckRecordVo(checkRecord, student);
     }
@@ -135,7 +140,14 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
         lw.eq(CheckRecordEntity::getExamId, query.getExamId());
         lw.orderByAsc(CheckRecordEntity::getId);
         Page<CheckRecordEntity> page = new Page<>(query.getPageNumber(), query.getPageSize());
-        return checkRecordDao.selectPage(page, wrapper);
+        Page<CheckRecordEntity> entityPage = checkRecordDao.selectPage(page, wrapper);
+        for (CheckRecordEntity record : entityPage.getRecords()) {
+            if (record.getUpdaterId() != null) {
+                UserEntity userEntity = userService.getById(record.getUpdaterId());
+                record.setUserName(userEntity.getName());
+            }
+        }
+        return entityPage;
     }
 
     @Override

+ 15 - 20
src/main/java/cn/com/qmth/print/manage/service/impl/ExamStudentServiceImpl.java

@@ -31,10 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.StringJoiner;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
@@ -190,32 +187,30 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStud
         if (!data.isEmpty()) {
             this.saveBatch(data);
         }
+        Map<String, List<ExamStudentEntity>> groupCollection = null;
 
+        if (examEntity.getGroupType().equals(GroupType.COURSE)) {
+            groupCollection = studentList.stream().collect(Collectors.groupingBy(ExamStudentEntity::getCourseCode));
+        } else if (examEntity.getGroupType().equals(GroupType.EXAM_SITE)) {
+            groupCollection = studentList.stream().collect(Collectors.groupingBy(ExamStudentEntity::getExamSite));
+        } else if (examEntity.getGroupType().equals(GroupType.EXAM_ROOM)) {
+            groupCollection = studentList.stream().collect(Collectors.groupingBy(ExamStudentEntity::getExamRoom));
+        }
         // 添加校验数据
-        List<CheckRecordEntity> checkRecordEntities = studentList.stream().map(m->{
+
+        List<CheckRecordEntity> checkRecordEntities = new ArrayList<>();
+        for (Map.Entry<String, List<ExamStudentEntity>> entry : groupCollection.entrySet()) {
             CheckRecordEntity checkRecordEntity = new CheckRecordEntity();
             checkRecordEntity.setOrgId(examEntity.getOrgId());
             checkRecordEntity.setExamId(examEntity.getId());
             checkRecordEntity.setGroupType(examEntity.getGroupType());
-            checkRecordEntity.setGroupName(examEntity.getGroupType().getName());
+            checkRecordEntity.setGroupName(entry.getKey());
             checkRecordEntity.setStatus(RecordStatus.NONE);
             checkRecordEntity.setCreateTime(new Date());
             checkRecordEntity.setUpdateTime(new Date());
-            return checkRecordEntity;
-        }).collect(Collectors.toList());
-
-        List<CheckRecordEntity> data1 = new ArrayList<>();
-        for (CheckRecordEntity stu : checkRecordEntities) {
-            if (data1.size() == 2000) {
-                checkRecordService.saveBatch(data1);
-                data1.clear();
-            }
-            data1.add(stu);
-        }
-        // 将剩下的数据也导入
-        if (!data1.isEmpty()) {
-            checkRecordService.saveBatch(data1);
+            checkRecordEntities.add(checkRecordEntity);
         }
+        checkRecordService.saveBatch(checkRecordEntities);
     }
 
     /**

+ 9 - 22
src/main/java/cn/com/qmth/print/manage/service/impl/OrgServiceImpl.java

@@ -18,8 +18,6 @@ import org.springframework.util.CollectionUtils;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
 
 @Service
 public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements OrgService {
@@ -53,18 +51,14 @@ public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements Or
     public void pull() {
         List<Map> mapList = solarUtils.pullSchool();
         List<OrgEntity> orgEntities = this.list();
-        List<OrgEntity> notExist;
-        if (CollectionUtils.isEmpty(mapList)) {
-            notExist = orgEntities;
-        } else {
-            List<String> codeList = mapList.stream().map(m -> m.get("code").toString()).collect(Collectors.toList());
-            notExist = orgEntities.stream().map(m -> {
-                if (!codeList.contains(m.getCode())) {
-                    return m;
-                }
-                return null;
-            }).filter(Objects::nonNull).collect(Collectors.toList());
-
+        // 不在中心的学校,本地全部禁用
+        if (!CollectionUtils.isEmpty(orgEntities)) {
+            for (OrgEntity orgEntity : orgEntities) {
+                orgEntity.setEnable(false);
+                this.updateById(orgEntity);
+            }
+        }
+        if (!CollectionUtils.isEmpty(mapList)) {
             for (Map map : mapList) {
                 Long orgId = Long.valueOf(String.valueOf(map.get("id"))); // 机构中心的id
                 String code = String.valueOf(map.get("code"));
@@ -75,7 +69,7 @@ public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements Or
 
                 OrgEntity entity = null;
                 if (!CollectionUtils.isEmpty(orgEntities)) {
-                    entity = orgEntities.stream().filter(m -> m.getCode().equals(code)).findFirst().get();
+                    entity = orgEntities.stream().filter(m -> m.getCode().equals(code)).findFirst().orElse(null);
                 }
                 if (entity == null) {
                     entity = new OrgEntity();
@@ -96,12 +90,5 @@ public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements Or
                 this.saveOrUpdate(entity);
             }
         }
-        // 不在中心的学校,本地全部禁用
-        if (!CollectionUtils.isEmpty(notExist)) {
-            for (OrgEntity orgEntity : notExist) {
-                orgEntity.setEnable(false);
-                this.updateById(orgEntity);
-            }
-        }
     }
 }

+ 3 - 1
src/main/resources/mapper/ExamDao.xml

@@ -4,6 +4,7 @@
     <select id="pageExam" resultType="cn.com.qmth.print.manage.vo.ExamVo">
         SELECT
             pe.id,
+            pe.org_id orgId,
             pe.enable,
             pe.name,
             pe.group_type groupType,
@@ -26,9 +27,10 @@
     
      <select id="listByUserId" resultType="cn.com.qmth.print.manage.entity.ExamEntity">
         SELECT
-            pe
+            *, po.name orgName
         FROM
             pm_exam pe
+            left join pm_org po on pe.org_id = po.id
         <where>
             pe.id in (
 				SELECT ue.exam_id