|
@@ -1,8 +1,11 @@
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
-import java.util.Set;
|
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -11,12 +14,18 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.boot.core.exception.ParameterException;
|
|
import com.qmth.boot.core.exception.ParameterException;
|
|
import com.qmth.teachcloud.mark.bean.scananswer.SheetUploadVo;
|
|
import com.qmth.teachcloud.mark.bean.scananswer.SheetUploadVo;
|
|
|
|
+import com.qmth.teachcloud.mark.bean.scanpackage.ScanPackageQuery;
|
|
|
|
+import com.qmth.teachcloud.mark.bean.scanpackage.ScanPackageVo;
|
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
import com.qmth.teachcloud.mark.entity.ScanPackage;
|
|
import com.qmth.teachcloud.mark.entity.ScanPackage;
|
|
import com.qmth.teachcloud.mark.mapper.ScanPackageMapper;
|
|
import com.qmth.teachcloud.mark.mapper.ScanPackageMapper;
|
|
import com.qmth.teachcloud.mark.service.FileService;
|
|
import com.qmth.teachcloud.mark.service.FileService;
|
|
|
|
+import com.qmth.teachcloud.mark.service.MarkPaperService;
|
|
import com.qmth.teachcloud.mark.service.ScanFilePropertyService;
|
|
import com.qmth.teachcloud.mark.service.ScanFilePropertyService;
|
|
import com.qmth.teachcloud.mark.service.ScanPackageService;
|
|
import com.qmth.teachcloud.mark.service.ScanPackageService;
|
|
|
|
|
|
@@ -34,7 +43,9 @@ public class ScanPackageServiceImpl extends ServiceImpl<ScanPackageMapper, ScanP
|
|
private FileService fileService;
|
|
private FileService fileService;
|
|
@Autowired
|
|
@Autowired
|
|
private ScanFilePropertyService scanFilePropertyService;
|
|
private ScanFilePropertyService scanFilePropertyService;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkPaperService markPaperService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public int getCount(Long examId) {
|
|
public int getCount(Long examId) {
|
|
QueryWrapper<ScanPackage> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<ScanPackage> wrapper = new QueryWrapper<>();
|
|
@@ -58,10 +69,15 @@ public class ScanPackageServiceImpl extends ServiceImpl<ScanPackageMapper, ScanP
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
- public SheetUploadVo imageUpload(Long examId, Set<String> coursePaperIds, String packageCode, Integer packageNo,
|
|
|
|
- MultipartFile file, String md5) {
|
|
|
|
|
|
+ public SheetUploadVo imageUpload(Long examId, String packageCode, Integer packageNo, MultipartFile file,
|
|
|
|
+ String md5) {
|
|
SheetUploadVo vo = null;
|
|
SheetUploadVo vo = null;
|
|
- for (String coursePaperId : coursePaperIds) {
|
|
|
|
|
|
+ List<MarkPaper> mps = markPaperService.listByExamAndPackage(examId, packageCode);
|
|
|
|
+ if (CollectionUtils.isEmpty(mps)) {
|
|
|
|
+ throw new ParameterException("未找到科目信息");
|
|
|
|
+ }
|
|
|
|
+ for (MarkPaper mp : mps) {
|
|
|
|
+ String coursePaperId = mp.getCoursePaperId();
|
|
try {
|
|
try {
|
|
String path = fileService.uploadPackage(file.getInputStream(), md5, examId, coursePaperId, packageCode,
|
|
String path = fileService.uploadPackage(file.getInputStream(), md5, examId, coursePaperId, packageCode,
|
|
packageNo);
|
|
packageNo);
|
|
@@ -70,8 +86,8 @@ public class ScanPackageServiceImpl extends ServiceImpl<ScanPackageMapper, ScanP
|
|
}
|
|
}
|
|
ScanPackage sp = getByExamIdAndCoursePaperIdAndPackageCodeAndPackageNo(examId, coursePaperId,
|
|
ScanPackage sp = getByExamIdAndCoursePaperIdAndPackageCodeAndPackageNo(examId, coursePaperId,
|
|
packageCode, packageNo);
|
|
packageCode, packageNo);
|
|
- if(sp==null) {
|
|
|
|
- sp=new ScanPackage();
|
|
|
|
|
|
+ if (sp == null) {
|
|
|
|
+ sp = new ScanPackage();
|
|
sp.setExamId(examId);
|
|
sp.setExamId(examId);
|
|
sp.setCoursePaperId(coursePaperId);
|
|
sp.setCoursePaperId(coursePaperId);
|
|
sp.setPackageCode(packageCode);
|
|
sp.setPackageCode(packageCode);
|
|
@@ -102,4 +118,39 @@ public class ScanPackageServiceImpl extends ServiceImpl<ScanPackageMapper, ScanP
|
|
wrapper.last("LIMIT 1");
|
|
wrapper.last("LIMIT 1");
|
|
return this.getOne(wrapper);
|
|
return this.getOne(wrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private List<ScanPackage> getByExamIdAndCoursePaperId(Long examId, String coursePaperId) {
|
|
|
|
+ QueryWrapper<ScanPackage> wrapper = new QueryWrapper<>();
|
|
|
|
+ LambdaQueryWrapper<ScanPackage> lw = wrapper.lambda();
|
|
|
|
+ lw.eq(ScanPackage::getExamId, examId);
|
|
|
|
+ lw.eq(ScanPackage::getCoursePaperId, coursePaperId);
|
|
|
|
+ lw.orderByAsc(ScanPackage::getPackageNo);
|
|
|
|
+ return this.list(wrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public IPage<ScanPackageVo> imagePage(ScanPackageQuery query) {
|
|
|
|
+ IPage<ScanPackageVo> iPage = this.baseMapper.page(new Page<>(query.getPageNumber(), query.getPageSize()),
|
|
|
|
+ query);
|
|
|
|
+ if(CollectionUtils.isNotEmpty(iPage.getRecords())) {
|
|
|
|
+ List<ScanPackage> sps=getByExamIdAndCoursePaperId(query.getExamId(), query.getCoursePaperId());
|
|
|
|
+ if(CollectionUtils.isNotEmpty(sps)) {
|
|
|
|
+ Map<String,List<String>> map=new HashMap<>();
|
|
|
|
+ for(ScanPackage sp:sps) {
|
|
|
|
+ List<String> tem=map.get(sp.getPackageCode());
|
|
|
|
+ if(tem==null) {
|
|
|
|
+ tem=new ArrayList<>();
|
|
|
|
+ map.put(sp.getPackageCode(), tem);
|
|
|
|
+ }
|
|
|
|
+ tem.add(sp.getPath());
|
|
|
|
+ }
|
|
|
|
+ for(ScanPackageVo vo:iPage.getRecords()) {
|
|
|
|
+ List<String> pages=map.get(vo.getPackageCode());
|
|
|
|
+ vo.setPages(pages);
|
|
|
|
+ vo.setPagesCount(pages.size());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return iPage;
|
|
|
|
+ }
|
|
}
|
|
}
|