|
@@ -242,40 +242,86 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
Goods goods = iGoodsService.getById(goodsId);
|
|
|
CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
|
|
|
if (ObjectUtils.isNotNull(business) && ObjectUtils.isNotNull(business.getTemplateStatus()) && business.getTemplateStatus() == 1){
|
|
|
- List<CourseSubject> courseSubjectList = iCourseSubjectService.listByIds(Arrays.asList(goods.getSubjectIds().split(",")));
|
|
|
- List<String> subNames = courseSubjectList.stream().map(CourseSubject::getSubjectName).collect(Collectors.toList());
|
|
|
- List<Long> subIds = iCourseSubjectService.getIdsByTenant(subNames);
|
|
|
- //获取业务层次下所有班级
|
|
|
- ClassGradeListBo bgListBo = new ClassGradeListBo();
|
|
|
- bgListBo.setAliasName(business.getAliasName());
|
|
|
- bgListBo.setSubIds(subIds);
|
|
|
- List<ClassGrade> classGrades = baseMapper.getGradeListByTenant(bgListBo);
|
|
|
- if (CollectionUtils.isEmpty(classGrades)){
|
|
|
- //生成预报名官方编号
|
|
|
- add.setOfficialName(ServletUtils.getEncoded("PIY"));
|
|
|
- add.setClassStatus(0);
|
|
|
- }else {
|
|
|
- //获取班级创建最多的机构
|
|
|
- Map<Long, List<ClassGrade>> map = classGrades.stream().collect(Collectors.groupingBy(ClassGrade::getTenantId));
|
|
|
- List<ClassGradeSortBo> sortList = new ArrayList<>();
|
|
|
- map.forEach((k,v) -> {
|
|
|
- ClassGradeSortBo sortBo = new ClassGradeSortBo();
|
|
|
- sortBo.setKey(k);
|
|
|
- sortBo.setSize(v.size());
|
|
|
- sortList.add(sortBo);
|
|
|
- });
|
|
|
- ClassGradeSortBo sortBo = sortList.stream().sorted(Comparator.comparing(ClassGradeSortBo::getSize).reversed()).findFirst().orElse(null);
|
|
|
- List<ClassGrade> classGradesMax = map.get(sortBo.getKey()).stream().sorted(Comparator.comparing(ClassGrade::getCreateTime)).collect(Collectors.toList());
|
|
|
- //获取当前机构商品下的班级
|
|
|
- List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goodsId);
|
|
|
- if(gradeGoods.size() < classGradesMax.size()){
|
|
|
- ClassGrade classGrade = classGradesMax.get(gradeGoods.size());
|
|
|
- add.setOfficialName(classGrade.getRegisterCode());
|
|
|
- add.setClassStatus(0);
|
|
|
- }else {
|
|
|
+ if (net.polyv.common.v1.util.StringUtils.isNotBlank(business.getAliasName()) &&
|
|
|
+ (business.getAliasName().equals("二级建造师") || business.getAliasName().equals("二级造价工程师"))){
|
|
|
+ List<Goods> goodsList = iGoodsService.list(new LambdaQueryWrapper<Goods>()
|
|
|
+ .eq(Goods::getEducationTypeId, goods.getEducationTypeId())
|
|
|
+ .eq(Goods::getBusinessId, goods.getBusinessId())
|
|
|
+ .eq(Goods::getProjectId, goods.getProjectId())
|
|
|
+ .eq(Goods::getSubjectIds, goods.getSubjectIds()));
|
|
|
+ if (goodsList.size() > 1){
|
|
|
+ //该业务层次下有多个商品
|
|
|
+ List<Long> goodsIds = goodsList.stream().filter(item -> !item.getGoodsId().equals(goodsId)).map(Goods::getGoodsId).collect(Collectors.toList());
|
|
|
+ List<ClassGradeGoods> goodsGradeList = iClassGradeGoodsService
|
|
|
+ .list(new LambdaQueryWrapper<ClassGradeGoods>()
|
|
|
+ .in(ClassGradeGoods::getGoodsId, goodsIds));
|
|
|
+ if (CollectionUtils.isNotEmpty(goodsGradeList)){
|
|
|
+ Map<Long, List<ClassGradeGoods>> map = goodsGradeList.stream().collect(Collectors.groupingBy(ClassGradeGoods::getGoodsId));
|
|
|
+ List<ClassGradeSortBo> sortList = new ArrayList<>();
|
|
|
+ map.forEach((k, v) -> {
|
|
|
+ ClassGradeSortBo sortBo = new ClassGradeSortBo();
|
|
|
+ sortBo.setKey(k);
|
|
|
+ sortBo.setSize(v.size());
|
|
|
+ sortList.add(sortBo);
|
|
|
+ });
|
|
|
+ ClassGradeSortBo sortBo = sortList.stream().sorted(Comparator.comparing(ClassGradeSortBo::getSize).reversed()).findFirst().orElse(null);
|
|
|
+ List<ClassGradeGoods> classGradesMax = map.get(sortBo.getKey()).stream().sorted(Comparator.comparing(ClassGradeGoods::getCreateTime)).collect(Collectors.toList());
|
|
|
+ //班级信息
|
|
|
+ List<ClassGrade> listGrade = listByIds(classGradesMax.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
|
|
|
+ //获取当前机构商品下的班级
|
|
|
+ List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goods.getGoodsId());
|
|
|
+ if (gradeGoods.size() < listGrade.size()) {
|
|
|
+ add.setOfficialName(list.get(gradeGoods.size()).getOfficialName());
|
|
|
+ add.setClassStatus(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(add.getOfficialName())){
|
|
|
+ List<CourseSubject> courseSubjectList = iCourseSubjectService.listByIds(Arrays.asList(goods.getSubjectIds().split(",")));
|
|
|
+ List<String> subNames = courseSubjectList.stream().map(CourseSubject::getSubjectName).collect(Collectors.toList());
|
|
|
+ List<Long> subIds = iCourseSubjectService.getIdsByTenant(subNames);
|
|
|
+ //获取业务层次下所有班级
|
|
|
+ ClassGradeListBo bgListBo = new ClassGradeListBo();
|
|
|
+ bgListBo.setAliasName(business.getAliasName());
|
|
|
+ bgListBo.setSubIds(subIds);
|
|
|
+ List<ClassGrade> classGrades = baseMapper.getGradeListByTenant(bgListBo);
|
|
|
+ if (CollectionUtils.isEmpty(classGrades)){
|
|
|
//生成预报名官方编号
|
|
|
add.setOfficialName(ServletUtils.getEncoded("PIY"));
|
|
|
add.setClassStatus(0);
|
|
|
+ }else {
|
|
|
+ //获取班级创建最多的机构
|
|
|
+ Map<Long, List<ClassGrade>> map = classGrades.stream().collect(Collectors.groupingBy(ClassGrade::getTenantId));
|
|
|
+ List<ClassGradeSortBo> sortList = new ArrayList<>();
|
|
|
+ map.forEach((k,v) -> {
|
|
|
+ ClassGradeSortBo sortBo = new ClassGradeSortBo();
|
|
|
+ sortBo.setKey(k);
|
|
|
+ Map<String, List<ClassGrade>> collect = v.stream().collect(Collectors.groupingBy(ClassGrade::getOfficialName));
|
|
|
+ sortBo.setSize(collect.keySet().size());
|
|
|
+ sortList.add(sortBo);
|
|
|
+ });
|
|
|
+ ClassGradeSortBo sortBo = sortList.stream().sorted(Comparator.comparing(ClassGradeSortBo::getSize).reversed()).findFirst().orElse(null);
|
|
|
+ List<ClassGrade> classGradesMax = map.get(sortBo.getKey()).stream().sorted(Comparator.comparing(ClassGrade::getCreateTime)).collect(Collectors.toList());
|
|
|
+ //去重
|
|
|
+ List<String> codeStrs = new ArrayList<>();
|
|
|
+ for (ClassGrade gradesMax : classGradesMax) {
|
|
|
+ if (codeStrs.contains(gradesMax.getOfficialName())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ codeStrs.add(gradesMax.getOfficialName());
|
|
|
+ }
|
|
|
+ //获取当前机构商品下的班级
|
|
|
+ List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goodsId);
|
|
|
+ if(gradeGoods.size() < codeStrs.size()){
|
|
|
+ add.setOfficialName(codeStrs.get(gradeGoods.size()));
|
|
|
+ add.setClassStatus(0);
|
|
|
+ }else {
|
|
|
+ //生成预报名官方编号
|
|
|
+ add.setOfficialName(ServletUtils.getEncoded("PIY"));
|
|
|
+ add.setClassStatus(0);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1088,7 +1134,8 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
map.forEach((k,v) -> {
|
|
|
ClassGradeSortBo sortBo = new ClassGradeSortBo();
|
|
|
sortBo.setKey(k);
|
|
|
- sortBo.setSize(v.size());
|
|
|
+ Map<String, List<ClassGrade>> collect = v.stream().collect(Collectors.groupingBy(ClassGrade::getOfficialName));
|
|
|
+ sortBo.setSize(collect.keySet().size());
|
|
|
sortList.add(sortBo);
|
|
|
});
|
|
|
ClassGradeSortBo sortBo = sortList.stream().sorted(Comparator.comparing(ClassGradeSortBo::getSize).reversed()).findFirst().orElse(null);
|
|
@@ -1121,7 +1168,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
|
|
|
ClassGradeOpenUpBo openUpBo = new ClassGradeOpenUpBo();
|
|
|
openUpBo.setGradeIds(ids);
|
|
|
- openUpBo.setClassStatus(bo.getClassStatus());
|
|
|
+ openUpBo.setClassStatus(1);//开班
|
|
|
openUpBo.setOfficialName(bo.getOfficialName());
|
|
|
openUpBo.setClassName(bo.getClassName());
|
|
|
openUpBo.setClassStartTime(bo.getClassStartTime());
|