Forráskód Böngészése

测试bug修复-0804

xiaof 4 éve
szülő
commit
4629bf7f5d
17 módosított fájl, 203 hozzáadás és 35 törlés
  1. 67 0
      sql/美术阅卷表结构修改-202006.sql
  2. 10 4
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/StudentApi.java
  3. 11 2
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/UserApi.java
  4. 3 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/utils/BultInAccountUtil.java
  5. 8 0
      stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/ImageServerConfig.java
  6. 5 1
      stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/SystemConfig.java
  7. 15 0
      stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/utils/excel/ExcelReader.java
  8. 2 0
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Level.java
  9. 1 0
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ExamQuestionRepo.java
  10. 2 0
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/StudentRepo.java
  11. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java
  12. 9 9
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java
  13. 3 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java
  14. 23 13
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java
  15. 14 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkerAssembler.java
  16. 27 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/MarkerDTO.java
  17. 2 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

+ 67 - 0
sql/美术阅卷表结构修改-202006.sql

@@ -0,0 +1,67 @@
+ALTER TABLE `student` ADD COLUMN `school` VARCHAR(255) NULL COMMENT '学校' AFTER `exam_room`;
+ALTER TABLE `student` ADD COLUMN `relate_exam_number` VARCHAR(50) NULL COMMENT '关联考号' AFTER `is_test`;
+
+ALTER TABLE `mark_subject` ADD COLUMN `enable` TINYINT(1) NULL default '1' COMMENT '是否启用 0:禁用 1:启用' AFTER `all_level`;
+
+
+CREATE TABLE `param_setting` (
+  `id` BIGINT(10) NOT NULL AUTO_INCREMENT,
+  `work_id` BIGINT(10) NULL COMMENT '工作id',
+  `package_scan` TINYINT(1) NULL COMMENT '是否整包扫描1:是 0:否',
+  `image_encrypt` TINYINT(1) NULL COMMENT '是否加密1:是 0:否',
+  `name_rule` TINYINT(1) NULL COMMENT '图片命名规则(0:考号命名、1:随机码命名)',
+  `paper_stage` TINYINT(1) NULL COMMENT '试卷档位状态(1:已知、0:未知)',
+  `deviation` int(2) NULL COMMENT '仲裁档位差',
+  `auto_callback` TINYINT(1) NULL COMMENT '是否自动打回(1:是、0:否)',
+  `majority` TINYINT(1) NULL COMMENT '是否过半定档(1:是、0:否)',
+  `cumulative_error` int(3) NULL COMMENT '打回累计误差',
+  `level_show_all_paper` TINYINT(1) NULL COMMENT '分档阶段阅卷员是否显示所有试卷(1:是、0:否)',
+  `round_up` TINYINT(1) NULL COMMENT '分数处理方式(1:四舍五入、0:非零进一)',
+  `change_stage` TINYINT(1) NULL COMMENT '改档及改档打分(1:显示、0:不显示)',
+  `score_show_all_paper` TINYINT(1) NULL COMMENT '打分阶段阅卷员是否显示所有试卷(1:是、0:否)',
+  PRIMARY KEY (`id`))
+COMMENT = '参数设置';
+
+CREATE TABLE `change_level` (
+  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
+  `work_id` BIGINT(20) NULL,
+  `subject` VARCHAR(50) NULL,
+  `paper_id` BIGINT(20) NULL,
+  `original_level` VARCHAR(45) NULL COMMENT '原档位',
+  `suggest_level` VARCHAR(45) NULL COMMENT '建议档位',
+  `audit_status` INT(1) NULL COMMENT '改档审核:0-申请,1-同意,2-不同意',
+  `create_id` BIGINT(20) NULL COMMENT '申请改档用户id',
+  `create_date` DATETIME NULL COMMENT '申请改档时间',
+  `audit_id` BIGINT(20) NULL COMMENT '审核用户id',
+  `audit_date` DATETIME NULL COMMENT '审核时间',
+  PRIMARY KEY (`id`))
+COMMENT = '改档记录表';
+
+CREATE TABLE `task_publish_setting` (
+  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
+  `work_id` BIGINT(20) NULL,
+  `subject` VARCHAR(50) NULL,
+  `code` VARCHAR(45) NULL COMMENT '档位',
+  `total_count` INT NULL COMMENT '总数量',
+  `success_count` INT NULL COMMENT '已评数量',
+  `wait_count` VARCHAR(45) NULL COMMENT '待评数量',
+  `sort_rule` TINYINT(1) NULL COMMENT '排序规则:0-乱序,1-定序',
+  `display_number` TINYINT(1) NULL COMMENT '是否显示序号:0-否,1-是',
+  `task_count` INT NULL COMMENT '本次任务数',
+  `batch_no` BIGINT(45) NULL DEFAULT NULL COMMENT '本次任务数',
+  `publish_count` INT NULL COMMENT '发布次数',
+  PRIMARY KEY (`id`))
+COMMENT = '发布打分任务';
+
+ALTER TABLE `mark_user` ADD COLUMN `display_count` INT(1) NULL COMMENT '显示数量:4-四张显示,6-六张显示,8-八张显示' AFTER `level_callback`;
+ALTER TABLE `mark_user` ADD COLUMN `default_account` TINYINT(1) NULL COMMENT '是否默认账号(采集账号)' AFTER `display_count`;
+
+ALTER TABLE `mark_task` ADD COLUMN `serial_number` VARCHAR(10) NULL COMMENT '叫号序号' AFTER `batch_no`;
+ALTER TABLE `mark_task` ADD COLUMN `display_number` TINYINT(1) NULL DEFAULT b'0' COMMENT '是否显示序号:0-否,1-是' AFTER `serial_number`;
+
+ALTER TABLE `paper` ADD COLUMN `score_batch_no` BIGINT(45) NULL DEFAULT NULL COMMENT '打分任务发布批次号' AFTER `batch_no`;
+ALTER TABLE `paper` ADD COLUMN `is_shift` BIT(1) NULL DEFAULT b'0' COMMENT '是否改档' AFTER `score_batch_no`,ADD COLUMN `is_shift_score` BIT(1) NULL DEFAULT b'0' COMMENT '是否改档打分' AFTER `is_shift`;
+ALTER TABLE `paper` ADD COLUMN `is_one_click` BIT(1) NULL DEFAULT b'0' COMMENT '是否一键定档' AFTER `is_shift_score`;
+
+
+INSERT INTO `mark_user` (`id`,`enabled`,`last_login_time`,`login_name`,`name`,`password`,`pw_changed_count`,`session_id`,`group_id`,`mark_right`,`role`,`subject`,`work_id`,`inspect_sc`,`inspect_sm`,`inspect_sx`,`weight`,`one_click_level`,`standard_volume`,`level_callback`,`display_count`,`default_account`) VALUES (50,B'1',NULL,'scan01','scan01','111111',0,NULL,NULL,NULL,'COLLECTOR','SC',0,NULL,NULL,NULL,NULL,B'0',B'0',B'0',NULL,NULL);

+ 10 - 4
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/StudentApi.java

@@ -99,14 +99,20 @@ public class StudentApi {
     public Student create(@RequestBody Student domain) throws Exception {
         try {
             domain.setTest("0");
+            //关联考号默认为考号
+            domain.setRelateExamNumber(domain.getExamNumber());
+            Student student = studentRepo.findByWorkIdAndAreaCodeAndExamNumber(domain.getWorkId(), domain.getAreaCode(), domain.getExamNumber());
+            if(student != null){
+                throw new RuntimeException("添加失败,同一个考区不允许有重复的考号");
+            }
             return studentRepo.save(domain);
         } catch (Exception e) {
-            if (e instanceof DataIntegrityViolationException) {
-                throw new Exception("修改失败,同一个考区不允许有重复的考号");
-            }
+//            if (e instanceof DataIntegrityViolationException) {
+//                throw new Exception("失败,同一个考区不允许有重复的考号");
+//            }
             e.printStackTrace();
+            throw new RuntimeException(e.getMessage());
         }
-        return null;
     }
 
     /**

+ 11 - 2
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/UserApi.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.stmms.ms.admin.api;
 
+import cn.com.qmth.stmms.ms.admin.dto.MarkUserDTO;
 import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
 import cn.com.qmth.stmms.ms.core.domain.MarkLog;
 import cn.com.qmth.stmms.ms.core.domain.MarkStage;
@@ -12,6 +13,8 @@ import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
+import cn.com.qmth.stmms.ms.marking.assembler.MarkerAssembler;
+import cn.com.qmth.stmms.ms.marking.dto.MarkerDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -48,6 +51,9 @@ public class UserApi {
     @Autowired
     private MarkLogRepo markLogRepo;
 
+    @Autowired
+    MarkerAssembler markerAssembler;
+
     @RequestMapping(value = "{userId}", method = RequestMethod.DELETE)
     public void remove(@PathVariable Long userId) {
         long count = markTaskRepo.countByMarkerId(userId);
@@ -129,8 +135,11 @@ public class UserApi {
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
         };
         Page<MarkUser> markUsers = markUserRepo.findAll(specification, pageable);
-
-        return new PageableDTO(markUsers, markUsers.getTotalElements(), markUsers.getTotalPages(), pageable.getPageNumber());
+        List<MarkerDTO> userDTOList = new ArrayList<>();
+        markUsers.getContent().forEach(m -> {
+            userDTOList.add(markerAssembler.toScanDTO(m));
+        });
+        return new PageableDTO(userDTOList, markUsers.getTotalElements(), markUsers.getTotalPages(), pageable.getPageNumber());
     }
 
     /**

+ 3 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/utils/BultInAccountUtil.java

@@ -29,7 +29,9 @@ public class BultInAccountUtil {
                         if (markUser != null) {
                             continue;
                         }
-                        String password = randomPassword();
+                        //默认密码123456
+                        //随机密码randomPassword()
+                        String password = "123456";
                         markUser = new MarkUser(loginName, password, 0L, Subject.SC, loginName, Role.findByName((String) map.get("name")), null);
                         userList.add(markUser);
                     }

+ 8 - 0
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/ImageServerConfig.java

@@ -66,6 +66,14 @@ public class ImageServerConfig {
         }
     }
 
+    public String getFileServer() {
+        if (aliyunOss) {
+            return aliYunOssConfig.getUrl() + File.separator + this.getDir();
+        } else {
+            return "http://" + this.getIp() + ":" + this.getPort();
+        }
+    }
+
     public AliYunOssConfig getAliYunOssConfig() {
         return aliYunOssConfig;
     }

+ 5 - 1
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/SystemConfig.java

@@ -78,7 +78,11 @@ public class SystemConfig {
     }
 
     public String getLocalhostPathUrl() {
-        return imageServerConfig.getImageServer() + File.separator + getLocalhostPath() + "/files/";
+        return imageServerConfig.getImageServer();
+    }
+
+    public String getFilesUrl() {
+        return imageServerConfig.getFileServer();
     }
 
     public String getThumbUrl(Long workId, String subject, String areaCode, String examNumber) {

+ 15 - 0
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/utils/excel/ExcelReader.java

@@ -5,6 +5,7 @@ import java.io.InputStream;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
@@ -35,6 +36,20 @@ public class ExcelReader extends ExcelUtils {
 		try {
 			Workbook wb = WorkbookFactory.create(inputStream);
 			Sheet sheet = wb.getSheetAt(0);
+			//校验表头信息
+			Row row0 = sheet.getRow(0);
+			for (int j = 0; j < this.getColumnSettings().size(); j++) {
+				ColumnSetting columnSetting = this.getColumnSettings().get(j);
+				Cell cell = row0.getCell(columnSetting.getIndex() - 1);
+				String obj = String.valueOf(convert(cell));
+				if(!Objects.equals(columnSetting.getHeader(), obj)){
+					ExcelError error = new ExcelError();
+					error.setRow(1);
+					error.setExcelErrorType("表格格式有误");
+					excelErrors.add(error);
+					return excelErrors;
+				}
+			}
 			for (int i = 1; i <= sheet.getLastRowNum(); i++) {
 				Row row = sheet.getRow(i);
 				if (row == null) {

+ 2 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Level.java

@@ -102,6 +102,8 @@ public class Level implements Serializable{
         this.minScore = minScore;
         this.levelType = levelType;
         this.weight = weight;
+        this.pt = 100;
+        this.kdpt = 100;
     }
 
     public String getCode() {

+ 1 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ExamQuestionRepo.java

@@ -14,6 +14,7 @@ public interface ExamQuestionRepo extends JpaRepository<ExamQuestion, Long> {
 
     List<ExamQuestion> findByWorkIdAndSubject(Long workId, Subject subject);
 
+    @Query("select count(distinct s.areaCode) from ExamQuestion s where s.workId = ?1 and s.test = ?2")
     long countByWorkIdAndTest(Long workId, int test);
 
     long countByWorkIdAndAreaCode(Long workId, String areaCode);

+ 2 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/StudentRepo.java

@@ -35,4 +35,6 @@ public interface StudentRepo extends JpaRepository<Student, Long>, JpaSpecificat
 
 //    @Query("select distinct s.areaName, s.school, s.examRoom from Student s where s.workId = ?1")
     List<Student> findByWorkId(Long workId);
+
+    Student findByWorkIdAndAreaCodeAndExamNumber(Long workId, String areaCode, String examNumber);
 }

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java

@@ -402,7 +402,7 @@ public class MakrerApi {
             progressDTO.setSuccessCount((int) c);
             progressDTO.setTotalCount((int) stuTotalCount);
             progressDTO.setWaitCount((int) (stuTotalCount - c));
-            BigDecimal progress = new BigDecimal(c * 100).divide(new BigDecimal(stuTotalCount), 2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal progress = stuTotalCount == 0 ? new BigDecimal("0") : new BigDecimal(c * 100).divide(new BigDecimal(stuTotalCount), 2, BigDecimal.ROUND_HALF_UP);
             progressDTO.setProgress(progress.doubleValue());
             objectMap.put("totalProgress", progressDTO);
         } else {

+ 9 - 9
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java

@@ -151,7 +151,7 @@ public class MarkSubjectApi {
         long total = paperRepo.countByWorkIdAndQuestionId(markSubject.getWorkId(), questionId);
         levelStatDTOs.forEach(o -> {
             if (o.getId() != null) {
-                double p = (double) o.getCount() / total;
+                double p = total == 0 ? 0 : (double) o.getCount() / total;
                 BigDecimal bd = new BigDecimal(p).setScale(3, RoundingMode.HALF_EVEN);
                 o.setPercent(bd.doubleValue());
             }
@@ -328,10 +328,10 @@ public class MarkSubjectApi {
     @RequestMapping(value = "{markSubject}/updateEnable", method = RequestMethod.POST)
     public ResponseEntity updateEnable(@PathVariable MarkSubject markSubject) {
         //有采集数据,不能禁用
-//        List<Paper> papers = paperRepo.findByWorkIdAndSubject(markSubject.getWorkId(), markSubject.getSubject());
-//        if (papers == null || papers.isEmpty()) {
-//            throw new RuntimeException("已有数据,不可" + (markSubject.isEnable() ? "禁用" : "启用"));
-//        }
+        List<Paper> papers = paperRepo.findByWorkIdAndSubject(markSubject.getWorkId(), markSubject.getSubject());
+        if (papers != null && papers.size() > 0) {
+            throw new RuntimeException("已有采集数据,不可" + (markSubject.isEnable() ? "禁用" : "启用"));
+        }
         markSubject.setEnable(!markSubject.isEnable());
         markSubjectRepo.saveAndFlush(markSubject);
         return new ResponseEntity(HttpStatus.OK);
@@ -346,10 +346,10 @@ public class MarkSubjectApi {
     public ResponseEntity updateName(@PathVariable String subjectId, MarkSubject markSubject) {
         MarkSubject markSubjectT = markSubjectRepo.findOne(subjectId);
         //有采集数据,不能禁用
-//        List<Paper> papers = paperRepo.findByWorkIdAndSubject(markSubjectT.getWorkId(), markSubjectT.getSubject());
-//        if (papers == null || papers.isEmpty()) {
-//            throw new RuntimeException("已有数据,不能修改科目名称");
-//        }
+        List<Paper> papers = paperRepo.findByWorkIdAndSubject(markSubjectT.getWorkId(), markSubjectT.getSubject());
+        if (papers != null && papers.size() > 0) {
+            throw new RuntimeException("已有采集数据,不能修改科目名称");
+        }
         markSubjectT.setName(markSubject.getName());
         markSubjectRepo.saveAndFlush(markSubjectT);
         return new ResponseEntity(HttpStatus.OK);

+ 3 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -11,6 +11,7 @@ import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
+import cn.com.qmth.stmms.ms.marking.assembler.MarkerAssembler;
 import cn.com.qmth.stmms.ms.marking.dto.LevelDetailDTO;
 import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
 import cn.com.qmth.stmms.ms.marking.service.MarkingService;
@@ -365,7 +366,7 @@ public class MarkTaskApi {
             //数量
             long count = papers.stream().filter(m -> Objects.nonNull(m.getLevel()) && Objects.equals(level.getCode(), m.getLevel())).count();
             levelDetailDTO.setLevelCount((int) count);
-            BigDecimal prop = new BigDecimal(String.valueOf(count * 100)).divide(new BigDecimal(String.valueOf(papers.size())), 2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal prop = papers.size() == 0 ? new BigDecimal("0") : new BigDecimal(String.valueOf(count * 100)).divide(new BigDecimal(String.valueOf(papers.size())), 2, BigDecimal.ROUND_HALF_UP);
             //占比
             levelDetailDTO.setLevelProp(prop.doubleValue());
             //预设占比
@@ -377,7 +378,7 @@ public class MarkTaskApi {
             int sumCount = (int) (list.stream().mapToInt(LevelDetailDTO::getLevelCount).sum() + count);
             levelDetailDTO.setCumulateCount(sumCount);
             //累计占比
-            BigDecimal cumulateProp = new BigDecimal(String.valueOf(sumCount * 100)).divide(new BigDecimal(String.valueOf(papers.size())), 2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal cumulateProp = papers.size() == 0 ? new BigDecimal("0") : new BigDecimal(String.valueOf(sumCount * 100)).divide(new BigDecimal(String.valueOf(papers.size())), 2, BigDecimal.ROUND_HALF_UP);
             levelDetailDTO.setCumulateProp(cumulateProp.doubleValue());
 
             //调整

+ 23 - 13
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java

@@ -17,6 +17,7 @@ import cn.com.qmth.stmms.ms.marking.assembler.PaperAssembler;
 import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
 import cn.com.qmth.stmms.ms.marking.dto.PaperDTO;
 import cn.com.qmth.stmms.ms.marking.service.MarkingService;
+import javafx.beans.binding.ObjectExpression;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -400,15 +401,15 @@ public class PaperApi {
                 subjectMap.put("enable", subject.isEnable());
                 //上传路径,已有上传,取文件路径,没有为null
                 String subjectUrl = null;
-                String url = systemConfig.getLocalhostPathUrl() + File.separator + workId + File.separator + question[0] + File.separator + subject.getSubject().name();
-                File path = new File(url);
-                if (path.exists()) {
-                    File[] file = path.listFiles();
+                String path = systemConfig.getLocalhostPath() + File.separator + "files" + File.separator + workId + File.separator + question[0] + File.separator + subject.getSubject().name();
+                File pathFile = new File(path);
+                if (pathFile.exists()) {
+                    File[] file = pathFile.listFiles();
                     if (file.length > 0) {
-                        subjectUrl = file[0].getAbsolutePath();
+                        subjectUrl = file[0].getPath();
                     }
                 }
-                subjectMap.put("url", subjectUrl);
+                subjectMap.put("url", Objects.isNull(subjectUrl) ? null : systemConfig.getFilesUrl() + File.separator + subjectUrl);
                 subjectList.add(subjectMap);
             }
             map.put("subjects", subjectList);
@@ -448,11 +449,20 @@ public class PaperApi {
         }
         InputStream inputStream = file.getInputStream();
         //保存
-        String savePath = systemConfig.getLocalhostPathUrl() + File.separator + workId + File.separator + questionId + File.separator + subject.name();
+        String savePath = systemConfig.getLocalhostPath() + File.separator + "files"+ File.separator + workId + File.separator + questionId + File.separator + subject.name();
         File fileSave = new File(savePath);
         if (!fileSave.exists()) {
             fileSave.mkdirs();
         }
+        //删除原文件
+        File[] oldFiles = fileSave.listFiles();
+        if (oldFiles.length > 0) {
+            for (File oldFile : oldFiles) {
+                if(oldFile.exists()) {
+                    oldFile.delete();
+                }
+            }
+        }
         File outSheetFile = new File(savePath + File.separator + DigestUtils.md5Hex(workId + "-" + questionId + "-" + subject.name()) + format);
         OutputStream outputSheetStream = new FileOutputStream(outSheetFile);
         int index = 0;
@@ -496,15 +506,15 @@ public class PaperApi {
             map.put("subjectName", markSubject.getName());
             //上传路径,已有上传,取文件路径,没有为null
             String subjectUrl = null;
-            String url = systemConfig.getLocalhostPathUrl() + File.separator + workId + File.separator + question.getAreaCode() + File.separator + markSubject.getSubject().name();
-            File path = new File(url);
-            if (path.exists()) {
-                File[] file = path.listFiles();
+            String path = systemConfig.getLocalhostPath() + File.separator + "files" + File.separator + workId + File.separator + question.getAreaCode() + File.separator + markSubject.getSubject().name();
+            File pathFile = new File(path);
+            if (pathFile.exists()) {
+                File[] file = pathFile.listFiles();
                 if (file.length > 0) {
-                    subjectUrl = file[0].getAbsolutePath();
+                    subjectUrl = file[0].getPath();
                 }
             }
-            map.put("url", subjectUrl);
+            map.put("url", systemConfig.getFilesUrl() + File.separator + subjectUrl);
             mapList.add(map);
         }
         return mapList;

+ 14 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkerAssembler.java

@@ -34,4 +34,18 @@ public class MarkerAssembler {
         }
         return markerDTO;
     }
+
+    public MarkerDTO toScanDTO(MarkUser marker){
+        MarkerDTO markerDTO = null;
+        if(marker != null){
+            markerDTO = new MarkerDTO();
+            markerDTO.setId(marker.getId());
+            markerDTO.setLoginName(marker.getLoginName());
+            markerDTO.setName(marker.getName());
+            markerDTO.setWorkId(marker.getWorkId());
+            markerDTO.setPassword(marker.getPassword());
+            markerDTO.setEnabled(marker.isEnabled());
+        }
+        return markerDTO;
+    }
 }

+ 27 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/MarkerDTO.java

@@ -23,6 +23,9 @@ public class MarkerDTO implements Serializable{
     private MarkStage markStage;
     private MarkRight markRight;
     private String groupId;
+    private String loginName;
+    private String password;
+    private boolean enabled;
 
     public Long getId() {
         return id;
@@ -87,4 +90,28 @@ public class MarkerDTO implements Serializable{
     public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
 }

+ 2 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

@@ -316,7 +316,7 @@ public class StageControlService {
             throw new RuntimeException("没有分档完成");
         }
         //todo 待修改
-//        this.isPtFull(workId, markSubject);
+        this.isPtFull(workId, markSubject);
         List<MarkerGroup> markerGroups = markerGroupRepo.findByWorkIdAndSubject(workId, subject);
         if (markerGroups.size() == 0) {
             statusMap.put(markSubject.getId(), false);
@@ -340,7 +340,7 @@ public class StageControlService {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有分档完成");
         }
-//        this.isPtFull(workId, markSubject);
+        this.isPtFull(workId, markSubject);
         List<MarkerGroup> markerGroups = markerGroupRepo.findByWorkIdAndSubject(workId, subject);
         if (markerGroups.size() == 0) {
             statusMap.put(markSubject.getId(), false);