yangdamao 1 жил өмнө
parent
commit
5937981ea3

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -452,6 +452,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
                     item.setGradeNum(Long.valueOf(gradeGoods.size()));
                     item.setGradeNum(Long.valueOf(gradeGoods.size()));
                     gradeGoods.forEach(gradeGoodsItem -> {
                     gradeGoods.forEach(gradeGoodsItem -> {
                         ClassGrade grade = iClassGradeService.getById(gradeGoodsItem.getGradeId());
                         ClassGrade grade = iClassGradeService.getById(gradeGoodsItem.getGradeId());
+                        if (ObjectUtils.isNull(grade) || grade.getStatus() != 1){
+                            return;
+                        }
                         if (ObjectUtils.isNotNull(grade.getClassStartTime()) && grade.getClassEndTime() < DateUtils.getNowTime()){
                         if (ObjectUtils.isNotNull(grade.getClassStartTime()) && grade.getClassEndTime() < DateUtils.getNowTime()){
                             return;
                             return;
                         }
                         }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGrade.java

@@ -95,4 +95,7 @@ private static final long serialVersionUID=1L;
     private Long tenantId;
     private Long tenantId;
 
 
     private Long firstChoiceGrade;
     private Long firstChoiceGrade;
+
+    @TableField(exist = false)
+    private Boolean isNewClass;
 }
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -88,7 +88,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     void UpGradeInterfaceByTenant(ClassGradeOpenUpBo upBo);
     void UpGradeInterfaceByTenant(ClassGradeOpenUpBo upBo);
 
 
-    ClassGrade getSevenGrade(List<Long> gradeIds);
+    ClassGrade getSevenGrade(@Param("gradeIds") List<Long> gradeIds);
 
 
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     Long getStudeCountByCode(String sevenCode);
     Long getStudeCountByCode(String sevenCode);
@@ -111,4 +111,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
 
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     Long getGradeCount(String sevenCode);
     Long getGradeCount(String sevenCode);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer getStudeCountByCodeNoTenant(String sevenCode);
 }
 }

+ 25 - 18
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -312,23 +312,26 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             Goods goods = iGoodsService.getById(goodsId);
             Goods goods = iGoodsService.getById(goodsId);
             String businessName = iGoodsService.getGoodsBusinessName(goodsId);
             String businessName = iGoodsService.getGoodsBusinessName(goodsId);
             if (businessName.contains("继续教育") && businessName.contains("施工现场专业人员")) {
             if (businessName.contains("继续教育") && businessName.contains("施工现场专业人员")) {
-                List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
-                        .list(new LambdaQueryWrapper<ClassGradeInterface>()
-                                .in(ClassGradeInterface::getType, Arrays.asList(1, 3))
-                                .eq(ClassGradeInterface::getStatus, 1));
-                if (CollectionUtils.isNotEmpty(interfaceList)){
-                    interfaceList.forEach(item -> {
-                        if (item.getType() == 1){
-                            //官方信息推送
-                            add.setInterfacePushId(item.getId());
-                        }else if (item.getType() == 3){
-                            //学时推送
-                            add.setInterfacePeriodId(item.getId());
-                        }
-                    });
+                String sevenYear = goods.getSevenYear();
+                if (!Arrays.asList("2024").contains(sevenYear)){
+                    List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
+                            .list(new LambdaQueryWrapper<ClassGradeInterface>()
+                                    .in(ClassGradeInterface::getType, Arrays.asList(1, 3))
+                                    .eq(ClassGradeInterface::getStatus, 1));
+                    if (CollectionUtils.isNotEmpty(interfaceList)){
+                        interfaceList.forEach(item -> {
+                            if (item.getType() == 1){
+                                //官方信息推送
+                                add.setInterfacePushId(item.getId());
+                            }else if (item.getType() == 3){
+                                //学时推送
+                                add.setInterfacePeriodId(item.getId());
+                            }
+                        });
+                    }
+                    String sevenCode = getSevenCode(goodsId,add.getStudentUpper());
+                    add.setSevenCode(sevenCode);
                 }
                 }
-                String sevenCode = getSevenCode(goodsId);
-                add.setSevenCode(sevenCode);
             }
             }
             else if (("继续教育二级建造师".equals(businessName)) || ("继续教育二级造价师".equals(businessName))){
             else if (("继续教育二级建造师".equals(businessName)) || ("继续教育二级造价师".equals(businessName))){
                 erJfalg = true;
                 erJfalg = true;
@@ -554,7 +557,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         });
         });
     }
     }
 
 
-    private String getSevenCode(Long goodsId) {
+    private String getSevenCode(Long goodsId,Integer studentUpper) {
         Goods g = iGoodsService.getById(goodsId);
         Goods g = iGoodsService.getById(goodsId);
         List<Goods> list = iGoodsService.list(new LambdaQueryWrapper<Goods>()
         List<Goods> list = iGoodsService.list(new LambdaQueryWrapper<Goods>()
                 .eq(Goods::getEducationTypeId, g.getEducationTypeId())
                 .eq(Goods::getEducationTypeId, g.getEducationTypeId())
@@ -572,7 +575,11 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             if (CollectionUtils.isNotEmpty(classGradeList)){
             if (CollectionUtils.isNotEmpty(classGradeList)){
                 ClassGrade classGrade = baseMapper.getSevenGrade(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
                 ClassGrade classGrade = baseMapper.getSevenGrade(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
                 if (ObjectUtils.isNotNull(classGrade)){
                 if (ObjectUtils.isNotNull(classGrade)){
-                    return classGrade.getSevenCode();
+                    //判断班级人数
+                    Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
+                    if ((studentUpper - locakStudentNum) > 0) {
+                        return classGrade.getSevenCode();
+                    }
                 }
                 }
             }
             }
         }
         }

+ 30 - 46
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -2478,7 +2478,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             ClassGradeVo classGradeVo = classGradeVoList.get(i);
             ClassGradeVo classGradeVo = classGradeVoList.get(i);
             int locakStudentNum = 0;
             int locakStudentNum = 0;
             Boolean sevenFlag = false;
             Boolean sevenFlag = false;
-            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")){
+            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")
+                    && StringUtils.isNotBlank(goods.getSevenYear()) && !Arrays.asList("2024").contains(goods.getSevenYear())){
                 if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                 if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                     //七大员继教班级共享
                     //七大员继教班级共享
                     locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGradeVo.getSevenCode());
                     locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGradeVo.getSevenCode());
@@ -2516,7 +2517,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         //创建新班级
         //创建新班级
         CourseBusinessVo businessVo = iCourseBusinessService.queryById(businessId);
         CourseBusinessVo businessVo = iCourseBusinessService.queryById(businessId);
         boolean isConfigTp = false; //商品是否有配置选班模板
         boolean isConfigTp = false; //商品是否有配置选班模板
-        Boolean isNewClass = true; //商品是否有配置选班模板
         if (Validator.isNotEmpty(businessVo) && Validator.isNotEmpty(businessVo.getTemplateName()) && businessVo.getTemplateName().equals("班级")) {
         if (Validator.isNotEmpty(businessVo) && Validator.isNotEmpty(businessVo.getTemplateName()) && businessVo.getTemplateName().equals("班级")) {
             isConfigTp = true;
             isConfigTp = true;
         }
         }
@@ -2530,46 +2530,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (businessFullName.contains("继续教育") && businessFullName.contains("施工现场专业人员")){
             if (businessFullName.contains("继续教育") && businessFullName.contains("施工现场专业人员")){
                 //七大员继教
                 //七大员继教
 //                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
 //                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
-                classGrade.setStudentUpper(2); //上限1000
-                //班级绑定学员资料推送和学时推送
-                List<ClassGradeInterface> list = iClassGradeInterfaceService
-                        .list(new LambdaQueryWrapper<ClassGradeInterface>()
-                        .eq(ClassGradeInterface::getStatus, 1)
-                        .in(ClassGradeInterface::getType, Arrays.asList(1, 3)));
-                if (CollectionUtils.isNotEmpty(list)){
-                    list.forEach(item -> {
-                        if (item.getType() == 1){
-                            classGrade.setInterfacePushId(item.getId());
-                        }else if(item.getType() == 3){
-                            classGrade.setInterfacePeriodId(item.getId());
-                        }
-                    });
-                }
-                if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
-                    //七大员继教班级共享
-//                    classGrade.setSevenCode(getSevenCodeNoTenant(goodsId,classGrade,isNewClass));
-                    classGrade.setSevenCode(ServletUtils.getEncoded("SEV"));
-                    Goods g = iGoodsService.getById(goodsId);
-                    String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
-                    Major major = iMajorService.getById(g.getMajorId());
-                    List<Goods> list4 = iGoodsService.getRelevanceGoodsNoTenant(businessName,major.getCategoryName(),g.getGoodsId());
-                    if (CollectionUtils.isNotEmpty(list4)){
-                        List<ClassGradeGoods> classGradeList = iClassGradeGoodsService
-                                .getClassNoTenant(list4.stream().map(Goods::getGoodsId).collect(Collectors.toList()));
-                        if (CollectionUtils.isNotEmpty(classGradeList)){
-                            ClassGrade classGrade4 = baseMapper.getSevenGradeNoTenant(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
-                            if (ObjectUtils.isNotNull(classGrade4)){
-                                //判断班级人数
-                                Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade4.getSevenCode());
-                                if ((classGrade.getStudentUpper() - locakStudentNum) > 0) {
-                                    isNewClass = false;
-                                    classGrade.setSevenCode(classGrade4.getSevenCode());
-                                }
+                classGrade.setStudentUpper(2);
+                String sevenYear = goods.getSevenYear();
+                if (!Arrays.asList("2024").contains(sevenYear)){
+                    //班级绑定学员资料推送和学时推送
+                    List<ClassGradeInterface> list = iClassGradeInterfaceService.list(new LambdaQueryWrapper<ClassGradeInterface>()
+                            .eq(ClassGradeInterface::getStatus, 1)
+                            .in(ClassGradeInterface::getType, Arrays.asList(1, 3)));
+                    if (CollectionUtils.isNotEmpty(list)){
+                        list.forEach(item -> {
+                            if (item.getType() == 1){
+                                classGrade.setInterfacePushId(item.getId());
+                            }else if(item.getType() == 3){
+                                classGrade.setInterfacePeriodId(item.getId());
                             }
                             }
-                        }
+                        });
+                    }
+                    if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
+                        //七大员继教班级共享
+                        classGrade.setSevenCode(getSevenCodeNoTenant(goodsId,classGrade));
+                    }else {
+                        classGrade.setSevenCode(getSevenCode(goodsId));
                     }
                     }
-                }else {
-                    classGrade.setSevenCode(getSevenCode(goodsId));
                 }
                 }
             }else {
             }else {
                 classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
                 classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
@@ -2600,7 +2582,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 //        classGrade.setClassName(goodsName + gradeCode);
 //        classGrade.setClassName(goodsName + gradeCode);
         //七大员继教同一个专业下同一个班级名称
         //七大员继教同一个专业下同一个班级名称
         Boolean classFlag = true;
         Boolean classFlag = true;
-        if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")){
+        if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")
+                && StringUtils.isNotBlank(goods.getSevenYear()) && !Arrays.asList("2024").contains(goods.getSevenYear())){
             List<ClassGrade> gradeName = new ArrayList<>();
             List<ClassGrade> gradeName = new ArrayList<>();
             if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
             if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                 //七大员继教班级共享
                 //七大员继教班级共享
@@ -2610,7 +2593,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             }
             if (CollectionUtils.isNotEmpty(gradeName)){
             if (CollectionUtils.isNotEmpty(gradeName)){
                 ClassGrade grade = gradeName.stream().filter(x -> ObjectUtils.isNotNull(x.getClassStatus()) && x.getClassStatus() == 1).findFirst().orElse(null);
                 ClassGrade grade = gradeName.stream().filter(x -> ObjectUtils.isNotNull(x.getClassStatus()) && x.getClassStatus() == 1).findFirst().orElse(null);
-                if (ObjectUtils.isNotEmpty(grade) && !isNewClass){
+                if (ObjectUtils.isNotEmpty(grade) && ObjectUtils.isNotNull(classGrade.getIsNewClass()) && !classGrade.getIsNewClass()){
                     //存在已开班的班级
                     //存在已开班的班级
                     classGrade.setClassStatus(grade.getClassStatus());
                     classGrade.setClassStatus(grade.getClassStatus());
                     classGrade.setOfficialName(grade.getOfficialName());
                     classGrade.setOfficialName(grade.getOfficialName());
@@ -2624,7 +2607,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     classGrade.setInterfacePeriodId(grade.getInterfacePeriodId());
                     classGrade.setInterfacePeriodId(grade.getInterfacePeriodId());
                     classGrade.setInterfacePushId(grade.getInterfacePushId());
                     classGrade.setInterfacePushId(grade.getInterfacePushId());
                 }else {
                 }else {
-                    String name = gradeName.stream().findFirst().get().getClassName();
+//                    String name = gradeName.stream().findFirst().get().getClassName();
+                    String name = goods.getGoodsName()+"预开班";
                     classGrade.setClassName(name);
                     classGrade.setClassName(name);
                 }
                 }
                 classFlag = false;
                 classFlag = false;
@@ -2712,7 +2696,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 
     @Override
     @Override
     public Integer getClassGradeNum(String sevenCode){
     public Integer getClassGradeNum(String sevenCode){
-       return baseMapper.getStudeCountByCodeNoTenant(sevenCode);
+        return baseMapper.getStudeCountByCodeNoTenant(sevenCode);
     }
     }
 
 
     private void synchronousCreation(ClassGrade classGrade, SysTenant sysTenant,Long goodsId) {
     private void synchronousCreation(ClassGrade classGrade, SysTenant sysTenant,Long goodsId) {
@@ -2784,7 +2768,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return ServletUtils.getEncoded("SEV");
         return ServletUtils.getEncoded("SEV");
     }
     }
 
 
-    private String getSevenCodeNoTenant(Long goodsId,ClassGrade classGradeVo,Boolean isNewClass) {
+    private String getSevenCodeNoTenant(Long goodsId,ClassGrade classGradeVo) {
         Goods g = iGoodsService.getById(goodsId);
         Goods g = iGoodsService.getById(goodsId);
         String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
         String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
         Major major = iMajorService.getById(g.getMajorId());
         Major major = iMajorService.getById(g.getMajorId());
@@ -2798,12 +2782,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     //判断班级人数
                     //判断班级人数
                     Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
                     Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
                     if ((classGradeVo.getStudentUpper() - locakStudentNum) > 0) {
                     if ((classGradeVo.getStudentUpper() - locakStudentNum) > 0) {
+                        classGradeVo.setIsNewClass(false);
                         return classGrade.getSevenCode();
                         return classGrade.getSevenCode();
                     }
                     }
                 }
                 }
             }
             }
         }
         }
-        isNewClass = true;
         return ServletUtils.getEncoded("SEV");
         return ServletUtils.getEncoded("SEV");
     }
     }
 
 

+ 8 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -1357,4 +1357,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND cgu.grade_id IN ( SELECT grade_id FROM class_grade WHERE seven_code = #{sevenCode} )
           AND cgu.grade_id IN ( SELECT grade_id FROM class_grade WHERE seven_code = #{sevenCode} )
     </select>
     </select>
 
 
+    <select id="getStudeCountByCodeNoTenant" resultType="java.lang.Integer" parameterType="java.lang.String">
+        SELECT SUM(
+                           (SELECT COUNT(DISTINCT cgu.user_id) FROM class_grade_user cgu WHERE cgu.grade_id = cg.grade_id AND cgu.`status` = 1 AND cgu.change_grade = 0) +
+                           (SELECT COUNT(DISTINCT cgut.user_id) FROM class_grade_user_temp cgut WHERE cgut.grade_id = cg.grade_id AND cgut.`status` = 1 )
+                   ) as num FROM class_grade cg
+        WHERE cg.`status` = 1 AND  cg.seven_code = #{sevenCode}
+    </select>
+
 </mapper>
 </mapper>