xiatian 2 lat temu
rodzic
commit
8f433c67cc

+ 1 - 1
src/main/java/cn/com/qmth/mps/bean/PaperDetailUnit.java

@@ -9,7 +9,7 @@ public class PaperDetailUnit {
 	private Double score;
 	@ApiModelProperty("给分间隔")
 	private Double scoreStep;
-	@ApiModelProperty("是否在当前分组")
+	@ApiModelProperty("是否在分组")
 	private Boolean inGroup;
 	public Integer getNumber() {
 		return number;

+ 5 - 5
src/main/java/cn/com/qmth/mps/bean/PaperGroupUnit.java

@@ -4,14 +4,14 @@ import io.swagger.annotations.ApiModelProperty;
 
 public class PaperGroupUnit {
 	@ApiModelProperty("大题号")
-	private Integer deatailNumber;
+	private Integer detailNumber;
 	@ApiModelProperty("小题号")
 	private Integer detailUnitNumber;
-	public Integer getDeatailNumber() {
-		return deatailNumber;
+	public Integer getDetailNumber() {
+		return detailNumber;
 	}
-	public void setDeatailNumber(Integer deatailNumber) {
-		this.deatailNumber = deatailNumber;
+	public void setDetailNumber(Integer detailNumber) {
+		this.detailNumber = detailNumber;
 	}
 	public Integer getDetailUnitNumber() {
 		return detailUnitNumber;

+ 2 - 0
src/main/java/cn/com/qmth/mps/service/PaperGroupUnitService.java

@@ -21,4 +21,6 @@ public interface PaperGroupUnitService  extends IService<PaperGroupUnitEntity> {
 
 	void clearByPaperId(Long paperId);
 
+	List<PaperGroupUnitEntity> getByPaperId(Long paperId);
+
 }

+ 60 - 41
src/main/java/cn/com/qmth/mps/service/impl/PaperDetailServiceImpl.java

@@ -2,8 +2,10 @@ package cn.com.qmth.mps.service.impl;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -22,10 +24,12 @@ import cn.com.qmth.mps.bean.User;
 import cn.com.qmth.mps.dao.PaperDetailDao;
 import cn.com.qmth.mps.entity.PaperDetailEntity;
 import cn.com.qmth.mps.entity.PaperEntity;
+import cn.com.qmth.mps.entity.PaperGroupUnitEntity;
 import cn.com.qmth.mps.enums.Role;
 import cn.com.qmth.mps.service.PaperDetailService;
 import cn.com.qmth.mps.service.PaperDetailUnitService;
 import cn.com.qmth.mps.service.PaperGroupService;
+import cn.com.qmth.mps.service.PaperGroupUnitService;
 import cn.com.qmth.mps.service.PaperService;
 import cn.com.qmth.mps.util.Calculator;
 import cn.com.qmth.mps.vo.paper.StructDomain;
@@ -35,7 +39,8 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		implements PaperDetailService {
 	@Autowired
 	private PaperGroupService paperGroupService;
-	
+	@Autowired
+	private PaperGroupUnitService paperGroupUnitService;
 	@Autowired
 	private PaperDetailUnitService paperDetailUnitService;
 	@Autowired
@@ -48,21 +53,35 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		if (CollectionUtils.isEmpty(es)) {
 			return ret;
 		}
-		Map<Long,PaperDetail> map=new HashMap<>();
-		for(PaperDetailEntity e:es) {
-			PaperDetail vo=new PaperDetail();
+		Map<Long, PaperDetail> map = new HashMap<>();
+		for (PaperDetailEntity e : es) {
+			PaperDetail vo = new PaperDetail();
 			vo.setName(e.getName());
 			vo.setNumber(e.getNumber());
 			map.put(e.getId(), vo);
 			ret.add(vo);
 		}
-		Map<Long,List<PaperDetailUnit>> units=paperDetailUnitService.getStructInfo(paperId);
-		if (units==null||units.size()==0) {
+		Map<Long, List<PaperDetailUnit>> units = paperDetailUnitService.getStructInfo(paperId);
+		if (units == null || units.size() == 0) {
 			return ret;
 		}
-		for(Long key:units.keySet()) {
+		for (Long key : units.keySet()) {
 			map.get(key).setUnits(units.get(key));
 		}
+		List<PaperGroupUnitEntity> gs = paperGroupUnitService.getByPaperId(paperId);
+		Set<String> unitSet = new HashSet<>();
+		for (PaperGroupUnitEntity u : gs) {
+			unitSet.add(u.getDetailNumber() + "-" + u.getDetailUnitNumber());
+		}
+		for (PaperDetail pd : ret) {
+			for (PaperDetailUnit u : pd.getUnits()) {
+				if (unitSet.contains(pd.getNumber() + "-" + u.getNumber())) {
+					u.setInGroup(true);
+				} else {
+					u.setInGroup(false);
+				}
+			}
+		}
 		return ret;
 	}
 
@@ -83,11 +102,11 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		if (domain.getTotalScore() == null) {
 			throw new StatusException("试卷满分不能为空");
 		}
-		if (domain.getTotalScore()<=0) {
+		if (domain.getTotalScore() <= 0) {
 			throw new StatusException("试卷满分必须大于0");
 		}
-		String total=domain.getTotalScore().toString();
-		if (total.indexOf(".")<total.length()-2) {
+		String total = domain.getTotalScore().toString();
+		if (total.indexOf(".") < total.length() - 2) {
 			throw new StatusException("试卷满分只能有一位小数");
 		}
 		if (CollectionUtils.isEmpty(domain.getStructInfo())) {
@@ -97,25 +116,25 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 			if (u.getNumber() == null || StringUtils.isBlank(u.getName())) {
 				throw new StatusException("大题号、大题名称不能为空");
 			}
-			if (u.getNumber()<=0) {
+			if (u.getNumber() <= 0) {
 				throw new StatusException("大题号必须大于0");
 			}
 			if (CollectionUtils.isEmpty(u.getUnits())) {
 				throw new StatusException("小题信息不能为空");
 			}
 			for (PaperDetailUnit unit : u.getUnits()) {
-				if (unit.getNumber()== null ||unit.getScore()==null||unit.getScoreStep()==null) {
+				if (unit.getNumber() == null || unit.getScore() == null || unit.getScoreStep() == null) {
 					throw new StatusException("小题号、小题满分、给分间隔不能为空");
 				}
-				if (unit.getNumber()<=0) {
+				if (unit.getNumber() <= 0) {
 					throw new StatusException("小题号必须大于0");
 				}
-				String score=unit.getScore().toString();
-				if (score.indexOf(".")<score.length()-2) {
+				String score = unit.getScore().toString();
+				if (score.indexOf(".") < score.length() - 2) {
 					throw new StatusException("小题满分只能有一位小数");
 				}
-				String scoreStep=unit.getScoreStep().toString();
-				if (scoreStep.indexOf(".")<scoreStep.length()-2) {
+				String scoreStep = unit.getScoreStep().toString();
+				if (scoreStep.indexOf(".") < scoreStep.length() - 2) {
 					throw new StatusException("给分间隔只能有一位小数");
 				}
 			}
@@ -134,28 +153,28 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		paper.setTotalScore(domain.getTotalScore());
 		paper.setSubjectiveScore(domain.getTotalScore());
 		paperService.updateById(paper);
-		for(PaperDetail pd:domain.getStructInfo()) {
-			PaperDetailEntity e=new PaperDetailEntity();
+		for (PaperDetail pd : domain.getStructInfo()) {
+			PaperDetailEntity e = new PaperDetailEntity();
 			e.setName(pd.getName());
 			e.setNumber(pd.getNumber());
 			e.setPaperId(domain.getPaperId());
 			this.save(e);
-			paperDetailUnitService.saveUnit(e,pd.getUnits());
+			paperDetailUnitService.saveUnit(e, pd.getUnits());
 		}
 	}
-	
+
 	private void clearPaperSruct(Long paperId) {
 		clearByPaperId(paperId);
 		paperDetailUnitService.clearByPaperId(paperId);
 	}
-	
+
 	private void clearByPaperId(Long paperId) {
 		QueryWrapper<PaperDetailEntity> wrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<PaperDetailEntity> lw = wrapper.lambda();
 		lw.eq(PaperDetailEntity::getPaperId, paperId);
 		this.remove(wrapper);
 	}
-	
+
 	@Transactional
 	@Override
 	public void structSubmit(StructDomain domain, User user) {
@@ -165,11 +184,11 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		if (domain.getTotalScore() == null) {
 			throw new StatusException("试卷满分不能为空");
 		}
-		if (domain.getTotalScore()<=0) {
+		if (domain.getTotalScore() <= 0) {
 			throw new StatusException("试卷满分必须大于0");
 		}
-		String total=domain.getTotalScore().toString();
-		if (total.indexOf(".")<total.length()-2) {
+		String total = domain.getTotalScore().toString();
+		if (total.indexOf(".") < total.length() - 2) {
 			throw new StatusException("试卷满分只能有一位小数");
 		}
 		if (CollectionUtils.isEmpty(domain.getStructInfo())) {
@@ -183,18 +202,18 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 				throw new StatusException("小题信息不能为空");
 			}
 			for (PaperDetailUnit unit : u.getUnits()) {
-				if (unit.getNumber()== null ||unit.getScore()==null||unit.getScoreStep()==null) {
+				if (unit.getNumber() == null || unit.getScore() == null || unit.getScoreStep() == null) {
 					throw new StatusException("小题号、小题满分、给分间隔不能为空");
 				}
-				if (unit.getNumber()<=0) {
+				if (unit.getNumber() <= 0) {
 					throw new StatusException("小题号必须大于0");
 				}
-				String score=unit.getScore().toString();
-				if (score.indexOf(".")<score.length()-2) {
+				String score = unit.getScore().toString();
+				if (score.indexOf(".") < score.length() - 2) {
 					throw new StatusException("小题满分只能有一位小数");
 				}
-				String scoreStep=unit.getScoreStep().toString();
-				if (scoreStep.indexOf(".")<scoreStep.length()-2) {
+				String scoreStep = unit.getScoreStep().toString();
+				if (scoreStep.indexOf(".") < scoreStep.length() - 2) {
 					throw new StatusException("给分间隔只能有一位小数");
 				}
 			}
@@ -215,24 +234,24 @@ public class PaperDetailServiceImpl extends ServiceImpl<PaperDetailDao, PaperDet
 		paper.setSubjectiveScore(domain.getTotalScore());
 		paper.setStructFinish(true);
 		paperService.updateById(paper);
-		for(PaperDetail pd:domain.getStructInfo()) {
-			PaperDetailEntity e=new PaperDetailEntity();
+		for (PaperDetail pd : domain.getStructInfo()) {
+			PaperDetailEntity e = new PaperDetailEntity();
 			e.setName(pd.getName());
 			e.setNumber(pd.getNumber());
 			e.setPaperId(domain.getPaperId());
 			this.save(e);
-			paperDetailUnitService.saveUnit(e,pd.getUnits());
+			paperDetailUnitService.saveUnit(e, pd.getUnits());
 		}
 	}
-	
+
 	private void checkTotalScore(StructDomain domain) {
-		double total=0.0;
-		for(PaperDetail detial:domain.getStructInfo()) {
-			for(PaperDetailUnit unit:detial.getUnits()) {
-				total=Calculator.add(total, unit.getScore(),1);
+		double total = 0.0;
+		for (PaperDetail detial : domain.getStructInfo()) {
+			for (PaperDetailUnit unit : detial.getUnits()) {
+				total = Calculator.add(total, unit.getScore(), 1);
 			}
 		}
-		if(total!=domain.getTotalScore()) {
+		if (total != domain.getTotalScore()) {
 			throw new StatusException("试卷满分与小题分不一致");
 		}
 	}

+ 9 - 9
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupServiceImpl.java

@@ -122,7 +122,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 			if (CollectionUtils.isNotEmpty(unit)) {
 				Set<Integer> set = new LinkedHashSet<>();
 				for (PaperGroupUnit u : unit) {
-					set.add(u.getDeatailNumber());
+					set.add(u.getDetailNumber());
 				}
 				StringBuilder numSb = new StringBuilder();
 				StringBuilder nameSb = new StringBuilder();
@@ -164,19 +164,19 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 		Set<Integer> detailSet=new HashSet<>();
 		Set<String> unitSet=new HashSet<>();
 		for(PaperGroupUnit unit:units) {
-			detailSet.add(unit.getDeatailNumber());
-			unitSet.add(unit.getDeatailNumber()+"-"+unit.getDetailUnitNumber());
+			detailSet.add(unit.getDetailNumber());
+			unitSet.add(unit.getDetailNumber()+"-"+unit.getDetailUnitNumber());
 		}
 		for(PaperDetail pd:pds) {
 			if(detailSet.contains(pd.getNumber())) {
 				ret.add(pd);
+				List<PaperDetailUnit> us=new ArrayList<>();
 				for(PaperDetailUnit u:pd.getUnits()) {
 					if(unitSet.contains(pd.getNumber()+"-"+u.getNumber())) {
-						u.setInGroup(true);
-					}else {
-						u.setInGroup(false);
+						us.add(u);
 					}
 				}
+				pd.setUnits(us);
 			}
 		}
 		return ret;
@@ -204,7 +204,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 			throw new StatusException("分组信息不能为空");
 		}
 		for (PaperGroupUnit u : domain.getGroupUnits()) {
-			if (u.getDeatailNumber() == null || u.getDetailUnitNumber() == null) {
+			if (u.getDetailNumber() == null || u.getDetailUnitNumber() == null) {
 				throw new StatusException("大题号、小题号不能为空");
 			}
 		}
@@ -244,7 +244,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 
 	private void checkStructExists(List<PaperDetail> pds, PaperGroupUnit groupUnit) {
 		for (PaperDetail pd : pds) {
-			if (pd.getNumber().equals(groupUnit.getDeatailNumber())) {
+			if (pd.getNumber().equals(groupUnit.getDetailNumber())) {
 				for (PaperDetailUnit u : pd.getUnits()) {
 					if (u.getNumber().equals(groupUnit.getDetailUnitNumber())) {
 						return;
@@ -253,7 +253,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 			}
 		}
 		throw new StatusException(
-				"试卷结构中大题号:" + groupUnit.getDeatailNumber() + " 小题号:" + groupUnit.getDetailUnitNumber() + "不存在");
+				"试卷结构中大题号:" + groupUnit.getDetailNumber() + " 小题号:" + groupUnit.getDetailUnitNumber() + "不存在");
 	}
 
 	@Transactional

+ 5 - 4
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupUnitServiceImpl.java

@@ -24,7 +24,7 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 
 	@Override
 	public Map<Long, List<PaperGroupUnit>> getGroupInfo(Long paperId) {
-		List<PaperGroupUnitEntity> list=getStructUnitInfo(paperId);
+		List<PaperGroupUnitEntity> list=getByPaperId(paperId);
 		if(CollectionUtils.isEmpty(list)) {
 			return null;
 		}
@@ -36,13 +36,14 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 				ret.put(e.getGroupId(), tem);
 			}
 			PaperGroupUnit vo=new PaperGroupUnit();
-			vo.setDeatailNumber(e.getDetailNumber());
+			vo.setDetailNumber(e.getDetailNumber());
 			vo.setDetailUnitNumber(e.getDetailUnitNumber());
 			tem.add(vo);
 		}
 		return ret;
 	}
-	private List<PaperGroupUnitEntity> getStructUnitInfo(Long paperId) {
+	@Override
+	public List<PaperGroupUnitEntity> getByPaperId(Long paperId) {
 		QueryWrapper<PaperGroupUnitEntity> wrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<PaperGroupUnitEntity> lw = wrapper.lambda();
 		lw.eq(PaperGroupUnitEntity::getPaperId, paperId);
@@ -67,7 +68,7 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 			PaperGroupUnitEntity e=new PaperGroupUnitEntity();
 			e.setPaperId(group.getPaperId());
 			e.setGroupId(group.getId());
-			e.setDetailNumber(unit.getDeatailNumber());
+			e.setDetailNumber(unit.getDetailNumber());
 			e.setDetailUnitNumber(unit.getDetailUnitNumber());
 			ret.add(e);
 		}