|
@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
|
|
|
import com.qmth.distributed.print.business.bean.dto.excel.GradePaperDimensionAbilityDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.excel.GradePaperDimensionKnowledgeDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.open.PaperDimension;
|
|
|
+import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDimensionDatasource;
|
|
|
import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDimensionParam;
|
|
|
import com.qmth.distributed.print.business.bean.result.analyze.GradePaperDimensionResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.analyze.SecondDimensionResult;
|
|
@@ -50,29 +51,25 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void saveGradePaperDimensionBatch(List<GradePaperDimensionParam> gradePaperDimensionParamList, SysUser requestUser) {
|
|
|
- List<String> paperNumberList = gradePaperDimensionParamList.stream().map(GradePaperDimensionParam::getPaperNumber).distinct().collect(Collectors.toList());
|
|
|
- if (paperNumberList.size() != 1) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("一次只能提交同一个试卷编号下的试卷维度数据");
|
|
|
- }
|
|
|
- List<String> paperTypeList = gradePaperDimensionParamList.stream().map(GradePaperDimensionParam::getPaperType).distinct().collect(Collectors.toList());
|
|
|
- if (paperTypeList.size() != 1) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("一次只能提交同一个试卷类型下的试卷维度数据");
|
|
|
- }
|
|
|
- String paperNumber = paperNumberList.get(0);
|
|
|
- String paperType = paperTypeList.get(0);
|
|
|
+ public void saveGradePaperDimensionBatch(GradePaperDimensionParam gradePaperDimensionParam, SysUser requestUser) {
|
|
|
+ String paperNumber = gradePaperDimensionParam.getPaperNumber();
|
|
|
+ String paperType = gradePaperDimensionParam.getPaperType();
|
|
|
+ String paperName = gradePaperDimensionParam.getPaperName();
|
|
|
+ DimensionEnum dimensionType = gradePaperDimensionParam.getDimensionType();
|
|
|
+ List<GradePaperDimensionDatasource> datasource = gradePaperDimensionParam.getDatasource();
|
|
|
gradeBatchPaperService.checkOperateAuth(requestUser.getSchoolId(), paperNumber, paperType);
|
|
|
- List<GradePaperDimension> gradePaperDimensionList = this.checkAndBuildGradePaperDimensionList(gradePaperDimensionParamList, requestUser);
|
|
|
+ List<GradePaperDimension> gradePaperDimensionList = this.checkAndBuildGradePaperDimensionList(datasource, paperNumber, paperType, paperName, dimensionType, requestUser);
|
|
|
this.remove(new QueryWrapper<GradePaperDimension>().lambda()
|
|
|
.eq(GradePaperDimension::getSchoolId, requestUser.getSchoolId())
|
|
|
.eq(GradePaperDimension::getPaperNumber, paperNumber)
|
|
|
- .eq(GradePaperDimension::getPaperType, paperType));
|
|
|
+ .eq(GradePaperDimension::getPaperType, paperType)
|
|
|
+ .eq(GradePaperDimension::getDimensionType, dimensionType));
|
|
|
this.saveBatch(gradePaperDimensionList);
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void importGradePaperKnowledgeDimension(MultipartFile file, String paperNumber, String paperType, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
|
+ public void importGradePaperKnowledgeDimension(MultipartFile file, String paperNumber, String paperType, String paperName, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
|
if (Objects.isNull(file)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("找不到附件");
|
|
|
}
|
|
@@ -83,7 +80,7 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
}
|
|
|
return finalExcelList;
|
|
|
});
|
|
|
- List<GradePaperDimensionParam> gradePaperDimensionParamList = new ArrayList<>();
|
|
|
+ List<GradePaperDimensionDatasource> gradePaperDimensionDatasourceList = new ArrayList<>();
|
|
|
|
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
@@ -94,25 +91,28 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
if (importList.get(y) instanceof GradePaperDimensionKnowledgeDto) {
|
|
|
GradePaperDimensionKnowledgeDto gradePaperDimensionKnowledgeDto = (GradePaperDimensionKnowledgeDto) importList.get(y);
|
|
|
|
|
|
- GradePaperDimensionParam gradePaperDimensionParam = new GradePaperDimensionParam();
|
|
|
- gradePaperDimensionParam.setPaperNumber(paperNumber);
|
|
|
- gradePaperDimensionParam.setPaperType(paperType);
|
|
|
- gradePaperDimensionParam.setDimensionType(DimensionEnum.KNOWLEDGE);
|
|
|
- gradePaperDimensionParam.setCodePrimary(gradePaperDimensionKnowledgeDto.getCodePrimary());
|
|
|
- gradePaperDimensionParam.setNamePrimary(gradePaperDimensionKnowledgeDto.getNamePrimary());
|
|
|
- gradePaperDimensionParam.setCodeSecond(gradePaperDimensionKnowledgeDto.getCodeSecond());
|
|
|
- gradePaperDimensionParam.setNameSecond(gradePaperDimensionKnowledgeDto.getNameSecond());
|
|
|
- gradePaperDimensionParamList.add(gradePaperDimensionParam);
|
|
|
+ GradePaperDimensionDatasource gradePaperDimensionDatasource = new GradePaperDimensionDatasource();
|
|
|
+ gradePaperDimensionDatasource.setCodePrimary(gradePaperDimensionKnowledgeDto.getCodePrimary());
|
|
|
+ gradePaperDimensionDatasource.setNamePrimary(gradePaperDimensionKnowledgeDto.getNamePrimary());
|
|
|
+ gradePaperDimensionDatasource.setCodeSecond(gradePaperDimensionKnowledgeDto.getCodeSecond());
|
|
|
+ gradePaperDimensionDatasource.setNameSecond(gradePaperDimensionKnowledgeDto.getNameSecond());
|
|
|
+ gradePaperDimensionDatasourceList.add(gradePaperDimensionDatasource);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- this.saveGradePaperDimensionBatch(gradePaperDimensionParamList, requestUser);
|
|
|
+ GradePaperDimensionParam gradePaperDimensionParam = new GradePaperDimensionParam();
|
|
|
+ gradePaperDimensionParam.setDatasource(gradePaperDimensionDatasourceList);
|
|
|
+ gradePaperDimensionParam.setPaperNumber(paperNumber);
|
|
|
+ gradePaperDimensionParam.setPaperType(paperType);
|
|
|
+ gradePaperDimensionParam.setPaperName(paperName);
|
|
|
+ gradePaperDimensionParam.setDimensionType(DimensionEnum.KNOWLEDGE);
|
|
|
+ this.saveGradePaperDimensionBatch(gradePaperDimensionParam, requestUser);
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void importGradePaperAbilityDimension(MultipartFile file, String paperNumber, String paperType, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
|
+ public void importGradePaperAbilityDimension(MultipartFile file, String paperNumber, String paperType, String paperName, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
|
if (Objects.isNull(file)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("找不到附件");
|
|
|
}
|
|
@@ -123,7 +123,7 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
}
|
|
|
return finalExcelList;
|
|
|
});
|
|
|
- List<GradePaperDimensionParam> gradePaperDimensionParamList = new ArrayList<>();
|
|
|
+ List<GradePaperDimensionDatasource> gradePaperDimensionDatasourceList = new ArrayList<>();
|
|
|
|
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
@@ -131,22 +131,25 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
List<Object> importList = map.get(i);
|
|
|
|
|
|
for (int y = 0; y < Objects.requireNonNull(importList).size(); y++) {
|
|
|
- if (importList.get(y) instanceof GradePaperDimensionKnowledgeDto) {
|
|
|
+ if (importList.get(y) instanceof GradePaperDimensionAbilityDto) {
|
|
|
GradePaperDimensionAbilityDto gradePaperDimensionAbilityDto = (GradePaperDimensionAbilityDto) importList.get(y);
|
|
|
|
|
|
- GradePaperDimensionParam gradePaperDimensionParam = new GradePaperDimensionParam();
|
|
|
- gradePaperDimensionParam.setPaperNumber(paperNumber);
|
|
|
- gradePaperDimensionParam.setPaperType(paperType);
|
|
|
- gradePaperDimensionParam.setDimensionType(DimensionEnum.KNOWLEDGE);
|
|
|
- gradePaperDimensionParam.setCodePrimary(gradePaperDimensionAbilityDto.getCodePrimary());
|
|
|
- gradePaperDimensionParam.setNamePrimary(gradePaperDimensionAbilityDto.getNamePrimary());
|
|
|
- gradePaperDimensionParam.setInterpretation(gradePaperDimensionAbilityDto.getInterpret());
|
|
|
- gradePaperDimensionParamList.add(gradePaperDimensionParam);
|
|
|
+ GradePaperDimensionDatasource gradePaperDimensionDatasource = new GradePaperDimensionDatasource();
|
|
|
+ gradePaperDimensionDatasource.setCodePrimary(gradePaperDimensionAbilityDto.getCodePrimary());
|
|
|
+ gradePaperDimensionDatasource.setNamePrimary(gradePaperDimensionAbilityDto.getNamePrimary());
|
|
|
+ gradePaperDimensionDatasource.setInterpretation(gradePaperDimensionAbilityDto.getInterpret());
|
|
|
+ gradePaperDimensionDatasourceList.add(gradePaperDimensionDatasource);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- this.saveGradePaperDimensionBatch(gradePaperDimensionParamList, requestUser);
|
|
|
+ GradePaperDimensionParam gradePaperDimensionParam = new GradePaperDimensionParam();
|
|
|
+ gradePaperDimensionParam.setDatasource(gradePaperDimensionDatasourceList);
|
|
|
+ gradePaperDimensionParam.setPaperNumber(paperNumber);
|
|
|
+ gradePaperDimensionParam.setPaperType(paperType);
|
|
|
+ gradePaperDimensionParam.setPaperName(paperName);
|
|
|
+ gradePaperDimensionParam.setDimensionType(DimensionEnum.ABILITY);
|
|
|
+ this.saveGradePaperDimensionBatch(gradePaperDimensionParam, requestUser);
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -206,24 +209,24 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
|
|
|
* 4.二级维度编号在数据集中唯一
|
|
|
* </p>
|
|
|
*
|
|
|
- * @param gradePaperDimensionParamList 分析试卷维度集合
|
|
|
- * @param requestUser 用户
|
|
|
- * @return 结果
|
|
|
+ * @param gradePaperDimensionDatasourceList 分析试卷维度集合
|
|
|
+ * @param paperNumber 试卷编号
|
|
|
+ * @param paperType 试卷类型
|
|
|
+ * @param paperName 试卷名称
|
|
|
+ * @param dimensionType 维度类型
|
|
|
+ * @param requestUser 请求用户
|
|
|
+ * @return 构建好的维度预新增对象集合
|
|
|
*/
|
|
|
- private List<GradePaperDimension> checkAndBuildGradePaperDimensionList(List<GradePaperDimensionParam> gradePaperDimensionParamList, SysUser requestUser) {
|
|
|
+ private List<GradePaperDimension> checkAndBuildGradePaperDimensionList(List<GradePaperDimensionDatasource> gradePaperDimensionDatasourceList, String paperNumber, String paperType, String paperName, DimensionEnum dimensionType, SysUser requestUser) {
|
|
|
Map<String, String> checkPrimaryCodeNameMap = new HashMap<>();
|
|
|
List<GradePaperDimension> gradePaperDimensionList = new ArrayList<>();
|
|
|
|
|
|
- for (GradePaperDimensionParam gradePaperDimensionParam : gradePaperDimensionParamList) {
|
|
|
- String paperNumber = gradePaperDimensionParam.getPaperNumber();
|
|
|
- String paperType = gradePaperDimensionParam.getPaperType();
|
|
|
- String paperName = gradePaperDimensionParam.getPaperName();
|
|
|
- DimensionEnum dimensionType = gradePaperDimensionParam.getDimensionType();
|
|
|
- String codePrimary = gradePaperDimensionParam.getCodePrimary();
|
|
|
- String namePrimary = gradePaperDimensionParam.getNamePrimary();
|
|
|
- String codeSecond = gradePaperDimensionParam.getCodeSecond();
|
|
|
- String nameSecond = gradePaperDimensionParam.getNameSecond();
|
|
|
- String interpretation = gradePaperDimensionParam.getInterpretation();
|
|
|
+ for (GradePaperDimensionDatasource gradePaperDimensionDatasource : gradePaperDimensionDatasourceList) {
|
|
|
+ String codePrimary = gradePaperDimensionDatasource.getCodePrimary();
|
|
|
+ String namePrimary = gradePaperDimensionDatasource.getNamePrimary();
|
|
|
+ String codeSecond = gradePaperDimensionDatasource.getCodeSecond();
|
|
|
+ String nameSecond = gradePaperDimensionDatasource.getNameSecond();
|
|
|
+ String interpretation = gradePaperDimensionDatasource.getInterpretation();
|
|
|
|
|
|
if (SystemConstant.isOneNull(paperNumber, paperType, dimensionType, codePrimary, namePrimary)) {
|
|
|
throw ExceptionResultEnum.PARAMS_ERROR.exception();
|