Selaa lähdekoodia

fix 选班节进度

he2802 3 vuotta sitten
vanhempi
commit
2996d9d2c2
30 muutettua tiedostoa jossa 373 lisäystä ja 38 poistoa
  1. 6 6
      pom.xml
  2. 2 0
      zhongzheng-admin-saas/src/main/resources/application.yml
  3. 0 1
      zhongzheng-admin/src/main/java/com/zhongzheng/ZhongZhengApplication.java
  4. 14 3
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileController.java
  5. 15 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileStampController.java
  6. 51 4
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  7. 16 3
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java
  8. 2 0
      zhongzheng-admin/src/main/resources/application.yml
  9. 2 0
      zhongzheng-api/src/main/resources/application.yml
  10. 9 3
      zhongzheng-common/pom.xml
  11. 51 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/poi/ExcelUtil.java
  12. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/UserProfileExportGaiVo.java
  13. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/UserProfileExportVo.java
  14. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionAddBo.java
  15. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionEditBo.java
  16. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionQueryBo.java
  17. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseHandoutsServiceImpl.java
  18. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java
  19. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseSectionVo.java
  20. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java
  21. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java
  22. 74 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  23. 30 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportTotalVo.java
  24. 75 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportVo.java
  25. 5 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodVo.java
  26. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/impl/InformClassifyServiceImpl.java
  27. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java
  28. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseChapterSectionMapper.xml
  29. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseHandoutsMapper.xml
  30. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

+ 6 - 6
pom.xml

@@ -92,13 +92,13 @@
             </dependency>
 
             <!-- excel工具 -->
-            <dependency>
-                <groupId>org.apache.poi</groupId>
-                <artifactId>poi-ooxml</artifactId>
-                <version>${poi.version}</version>
-            </dependency>
+            <!--    <dependency>
+                    <groupId>org.apache.poi</groupId>
+                    <artifactId>poi-ooxml</artifactId>
+                    <version>${poi.version}</version>
+                </dependency>-->
 
-            <!--velocity代码生成使用模板 -->
+                <!--velocity代码生成使用模板 -->
 
             <dependency>
                 <groupId>org.apache.velocity</groupId>

+ 2 - 0
zhongzheng-admin-saas/src/main/resources/application.yml

@@ -61,6 +61,8 @@ logging:
 
 # Spring配置
 spring:
+  main:
+    allow-bean-definition-overriding: true
   # 资源信息
   messages:
     # 国际化资源文件路径

+ 0 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/ZhongZhengApplication.java

@@ -20,7 +20,6 @@ public class ZhongZhengApplication
 {
     public static void main(String[] args)
     {
-        System.setProperty("spring.devtools.restart.enabled", "false");
         SpringApplication.run(ZhongZhengApplication.class, args);
         System.out.println("(♥◠‿◠)ノ゙  中正启动成功   ლ(´ڡ`ლ)゙");
     }

+ 14 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileController.java

@@ -2,14 +2,15 @@ package com.zhongzheng.controller.base;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Arrays;
+import java.util.*;
 
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.hutool.core.lang.Validator;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.TokenService;
 import com.zhongzheng.modules.base.vo.UserProfileExportVo;
+import com.zhongzheng.modules.grade.vo.ClassPeriodStudentExportVo;
 import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.vo.UserVo;
 import lombok.RequiredArgsConstructor;
@@ -136,6 +137,16 @@ public class UserProfileController extends BaseController {
         ExcelUtil<UserProfileExportVo> util = new ExcelUtil<UserProfileExportVo>(UserProfileExportVo.class);
 
         String timeStr= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-        return util.exportExcel(list, "填写资料审核-"+fileName+"-学员数据-"+timeStr);
+        ExportParams deptExportParams = new ExportParams();
+        // 设置sheet得名称
+        deptExportParams.setSheetName("表1");
+        Map<String, Object> deptExportMap = new HashMap<>();
+        deptExportMap.put("title", deptExportParams);
+        deptExportMap.put("entity", UserProfileExportVo.class);
+        // sheet中要填充得数据
+        deptExportMap.put("data", list);
+        List<Map<String, Object>> sheetsList = new ArrayList<>();
+        sheetsList.add(deptExportMap);
+        return util.exportEasyExcel(sheetsList, "填写资料审核-"+fileName+"-学员数据-"+timeStr);
     }
 }

+ 15 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileStampController.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.controller.base;
 
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
@@ -24,7 +25,10 @@ import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 填写资料审核Controller
@@ -123,6 +127,16 @@ public class UserProfileStampController extends BaseController {
         ExcelUtil<UserProfileExportGaiVo> util = new ExcelUtil<UserProfileExportGaiVo>(UserProfileExportGaiVo.class);
 
         String timeStr= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-        return util.exportExcel(list, "填写盖章审核-"+fileName+"-学员数据-"+timeStr);
+        ExportParams deptExportParams = new ExportParams();
+        // 设置sheet得名称
+        deptExportParams.setSheetName("表1");
+        Map<String, Object> deptExportMap = new HashMap<>();
+        deptExportMap.put("title", deptExportParams);
+        deptExportMap.put("entity", UserProfileExportGaiVo.class);
+        // sheet中要填充得数据
+        deptExportMap.put("data", list);
+        List<Map<String, Object>> sheetsList = new ArrayList<>();
+        sheetsList.add(deptExportMap);
+        return util.exportEasyExcel(sheetsList, "填写盖章审核-"+fileName+"-学员数据-"+timeStr);
     }
 }

+ 51 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -1,16 +1,23 @@
 package com.zhongzheng.controller.grade;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Arrays;
-
+import java.io.FileOutputStream;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.base.bo.UserProfileQueryBo;
+import com.zhongzheng.modules.base.vo.UserProfileExportGaiVo;
 import com.zhongzheng.modules.grade.bo.*;
 import com.zhongzheng.modules.grade.service.*;
 import com.zhongzheng.modules.grade.vo.*;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import io.swagger.models.auth.In;
 import lombok.RequiredArgsConstructor;
+import org.springframework.boot.SpringBootVersion;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -30,6 +37,8 @@ import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import javax.servlet.ServletOutputStream;
+
 /**
  * 班级Controller
  *
@@ -134,6 +143,44 @@ public class ClassGradeController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 导出资料审核列表
+     */
+    @ApiOperation("导出学员学时列表")
+    @PreAuthorize("@ss.hasPermi('system:profile:export')")
+    @Log(title = "导出学员学时列表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<UserProfileExportGaiVo> export(ClassGradeUserQueryBo bo) {
+
+        String fileName = "";
+        if(bo.getStudyStatus()==0){
+            fileName="全部";
+        }
+        if(bo.getStudyStatus()==1){
+            fileName="未完成学习";
+        }
+        if(bo.getStudyStatus()==2){
+            fileName="完成学习";
+        }
+
+        startPage();
+
+        List<ClassPeriodStudentExportVo> list = iClassGradeUserService.exportPo(bo);
+        ExcelUtil<ClassPeriodStudentExportVo> util = new ExcelUtil<ClassPeriodStudentExportVo>(ClassPeriodStudentExportVo.class);
+        ExportParams deptExportParams = new ExportParams();
+        // 设置sheet得名称
+        deptExportParams.setSheetName("表1");
+        String timeStr= LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        Map<String, Object> deptExportMap = new HashMap<>();
+        deptExportMap.put("title", deptExportParams);
+        deptExportMap.put("entity", ClassPeriodStudentExportVo.class);
+        // sheet中要填充得数据
+        deptExportMap.put("data", list);
+        List<Map<String, Object>> sheetsList = new ArrayList<>();
+        sheetsList.add(deptExportMap);
+        return util.exportEasyExcel(sheetsList, "填写盖章审核-"+fileName+"-学员学习记录-"+timeStr);
+    }
+
     /**
      * 查询学员学时信息列表
      */

+ 16 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -1,10 +1,13 @@
 package com.zhongzheng.controller.user;
 
-import java.util.List;
-import java.util.Arrays;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.modules.alisms.service.IAliSmsService;
+import com.zhongzheng.modules.grade.vo.ClassPeriodStudentExportVo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
@@ -67,7 +70,17 @@ public class UserController extends BaseController {
     public AjaxResult<UserVo> export(UserQueryBo bo) {
         List<UserVo> list = iUserService.queryList(bo);
         ExcelUtil<UserVo> util = new ExcelUtil<UserVo>(UserVo.class);
-        return util.exportExcel(list, "客户端用户");
+        ExportParams deptExportParams = new ExportParams();
+        // 设置sheet得名称
+        deptExportParams.setSheetName("表1");
+        Map<String, Object> deptExportMap = new HashMap<>();
+        deptExportMap.put("title", deptExportParams);
+        deptExportMap.put("entity", UserVo.class);
+        // sheet中要填充得数据
+        deptExportMap.put("data", list);
+        List<Map<String, Object>> sheetsList = new ArrayList<>();
+        sheetsList.add(deptExportMap);
+        return util.exportEasyExcel(sheetsList, "客户端用户");
     }
 
     /**

+ 2 - 0
zhongzheng-admin/src/main/resources/application.yml

@@ -61,6 +61,8 @@ logging:
 
 # Spring配置
 spring:
+  main:
+    allow-bean-definition-overriding: true
   # 资源信息
   messages:
     # 国际化资源文件路径

+ 2 - 0
zhongzheng-api/src/main/resources/application.yml

@@ -61,6 +61,8 @@ logging:
 
 # Spring配置
 spring:
+  main:
+    allow-bean-definition-overriding: true
   # 资源信息
   messages:
     # 国际化资源文件路径

+ 9 - 3
zhongzheng-common/pom.xml

@@ -80,12 +80,18 @@
         </dependency>
 
         <!-- excel工具 -->
+        <!--    <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>poi-ooxml</artifactId>
+            </dependency>-->
         <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>4.0.0</version>
         </dependency>
 
-        <!-- yml解析器 -->
+
+            <!-- yml解析器 -->
         <dependency>
             <groupId>org.yaml</groupId>
             <artifactId>snakeyaml</artifactId>

+ 51 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/poi/ExcelUtil.java

@@ -1,5 +1,7 @@
 package com.zhongzheng.common.utils.poi;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
@@ -309,6 +311,55 @@ public class ExcelUtil<T>
         return exportExcel();
     }
 
+    public AjaxResult exportEasyExcel(List<Map<String, Object>> sheetsList, String sheetName)
+    {
+        OutputStream out = null;
+   //     Workbook workbook = null;
+        try
+        {
+            System.out.println(sheetsList);
+            System.out.println(23);
+            Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF);
+            String filename = encodingFilename(sheetName);
+            out = new FileOutputStream(getAbsoluteFile(filename));
+            workbook.write(out);
+            return AjaxResult.success(filename);
+        }
+        catch (Exception e)
+        {
+            System.out.println("3434");
+            System.out.println(e.getMessage());
+            log.error("导出Excel异常{}", e.getMessage());
+            throw new CustomException("导出Excel失败,请联系网站管理员!");
+        }
+        finally
+        {
+
+            if (wb != null)
+            {
+                try
+                {
+                    wb.close();
+                }
+                catch (IOException e1)
+                {
+                    e1.printStackTrace();
+                }
+            }
+            if (out != null)
+            {
+                try
+                {
+                    out.close();
+                }
+                catch (IOException e1)
+                {
+                    e1.printStackTrace();
+                }
+            }
+        }
+    }
+
     /**
      * 对list数据源将其里面的数据导入到excel表单
      *

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/UserProfileExportGaiVo.java

@@ -1,6 +1,6 @@
 package com.zhongzheng.modules.base.vo;
 
-import com.zhongzheng.common.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/UserProfileExportVo.java

@@ -1,6 +1,6 @@
 package com.zhongzheng.modules.base.vo;
 
-import com.zhongzheng.common.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionAddBo.java

@@ -55,7 +55,7 @@ public class CourseSectionAddBo {
     @ApiModelProperty("录播和回放的url地址")
     private String recordingUrl;
     /** 节时长(分钟) */
-    @ApiModelProperty("节时长(分钟)")
+    @ApiModelProperty("节时长()")
     private Long durationTime;
     /** 业务层级列表 */
     @ApiModelProperty("业务层级列表")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionEditBo.java

@@ -69,7 +69,7 @@ public class CourseSectionEditBo {
     private String recordingUrl;
 
     /** 节时长(分钟) */
-    @ApiModelProperty("节时长(分钟)")
+    @ApiModelProperty("节时长()")
     private Long durationTime;
 
     /** 业务层级列表 */

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSectionQueryBo.java

@@ -70,7 +70,7 @@ public class CourseSectionQueryBo extends BaseEntity {
 	@ApiModelProperty("录播和回放的url地址")
 	private String recordingUrl;
 	/** 节时长(分钟) */
-	@ApiModelProperty("节时长(分钟)")
+	@ApiModelProperty("节时长()")
 	private Long durationTime;
 	/** 教育类型id */
 	@ApiModelProperty("教育类型id")

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseHandoutsServiceImpl.java

@@ -13,7 +13,6 @@ import com.zhongzheng.modules.course.service.ICourseHandoutsBusinessService;
 import com.zhongzheng.modules.course.vo.CourseHandoutsBusinessVo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
-import org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -54,7 +53,7 @@ public class CourseHandoutsServiceImpl extends ServiceImpl<CourseHandoutsMapper,
         courseHandoutsQueryBo.setId(handoutsId);
         List<CourseHandoutsVo> courseHandoutsVos = entity2Vo(baseMapper.queryList(courseHandoutsQueryBo));
         if (CollectionUtils.isEmpty(courseHandoutsVos)){
-            return null;
+            throw new CustomException("查无数据");
         }
         //获得讲义业务层
         CourseHandoutsVo courseHandoutsVo = courseHandoutsVos.get(0);

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java

@@ -13,7 +13,7 @@ import com.zhongzheng.modules.course.vo.CourseProjectTypeVo;
 import com.zhongzheng.modules.user.bo.SchoolProjectAddBo;
 import com.zhongzheng.modules.user.domain.SchoolProject;
 import com.zhongzheng.modules.user.vo.SchoolVo;
-import org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseSectionVo.java

@@ -67,8 +67,8 @@ public class CourseSectionVo {
 	@ApiModelProperty("录播和回放的url地址")
 	private String recordingUrl;
 	/** 节时长(分钟) */
-	@Excel(name = "节时长(分钟)")
-	@ApiModelProperty("节时长(分钟)")
+	@Excel(name = "节时长()")
+	@ApiModelProperty("节时长()")
 	private Long durationTime;
 	/** 封面地址 */
 	@Excel(name = "封面地址")

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -124,4 +124,7 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	/** 是否已换班 0没有 1已换去新班 */
 	@ApiModelProperty("是否已换班 0没有 1已换去新班")
 	private Integer changeGrade;
+
+	@ApiModelProperty("学习状态 0 全部 1未完成 2完成")
+	private Integer studyStatus;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java

@@ -1,5 +1,7 @@
 package com.zhongzheng.modules.grade.service;
 
+import com.zhongzheng.modules.base.bo.UserProfileQueryBo;
+import com.zhongzheng.modules.base.vo.UserProfileExportGaiVo;
 import com.zhongzheng.modules.grade.bo.*;
 import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.grade.vo.*;
@@ -40,6 +42,8 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
 	Boolean updateUserPeriodStatus(ClassGradeUserQueryBo bo);
 
+	List<ClassPeriodStudentExportVo> exportPo(ClassGradeUserQueryBo bo);
+
 	/**
 	 * 根据编辑业务对象修改学员记录
 	 * @param bo 学员记录编辑业务对象

+ 74 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -314,6 +314,80 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return null;
     }
 
+    @Override
+    public List<ClassPeriodStudentExportVo> exportPo(ClassGradeUserQueryBo bo) {
+        //查询班级学员信息
+        List<ClassPeriodStudentVo> classPeriodStudentVos = baseMapper.listUserPeriod(bo);
+        List<ClassPeriodStudentExportVo> exportList = new ArrayList<>();
+        //查找学员学习记录
+        for (ClassPeriodStudentVo classPeriodStudentVo : classPeriodStudentVos) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(classPeriodStudentVo.getUserId());
+            subjectStudyRecordQueryBo.setGradeId(bo.getGradeId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+            for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+
+            }
+            //BigDecimal divide = new BigDecimal(studyLong.toString()).divide(new BigDecimal(secLong.toString()),2,BigDecimal.ROUND_HALF_UP);
+            //classGradeStudentVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
+            //总节数
+            classPeriodStudentVo.setSecAllNum(secLong);
+            //学习节数
+            classPeriodStudentVo.setStuAllNum(studyLong);
+
+            //总的审核状态按照策划规则
+            ClassGradeUserQueryBo classGradeUserQueryBo = new ClassGradeUserQueryBo();
+            classGradeUserQueryBo.setGradeId(bo.getGradeId());
+            classGradeUserQueryBo.setUserId(classPeriodStudentVo.getUserId());
+            classGradeUserQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            List<ClassPeriodUserVo> classPeriodUserVos1 = baseMapper.listPeriod(classGradeUserQueryBo);
+            ClassPeriodUserVo classPeriodUserVos = classPeriodUserVos1.get(0);
+            classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());
+            classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum()-classPeriodUserVos.getExamPass()-classPeriodUserVos.getExamCheat());
+            //當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过
+            Integer gradePeriodStatus = 0; //班级里的审核状态字段,保持一致 0 未通过 1通过 2待审核 -1 不可审核
+            if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
+                if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
+                    classPeriodStudentVo.setAllStatus(0);
+                    gradePeriodStatus = 2;
+                }else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
+                    classPeriodStudentVo.setAllStatus(1);
+                    gradePeriodStatus = 0;
+                }else {
+                    classPeriodStudentVo.setAllStatus(2);
+                    gradePeriodStatus = 1;
+                }
+            }else {
+                classPeriodStudentVo.setAllStatus(-1);
+                gradePeriodStatus = -1;
+            }
+
+            classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat()+classPeriodUserVos.getExamCheat());
+            if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()))) {
+                //查找开始学习时间
+                classPeriodStudentVo.setStartTime(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()).get(0));
+            }
+            ClassPeriodStudentExportVo addItem = BeanUtil.toBean(classPeriodStudentVo, ClassPeriodStudentExportVo.class);
+
+            List<UserPeriodVo> periodVoList = new ArrayList<>();
+            UserPeriodVo v1 = new UserPeriodVo();
+            v1.setSectionId(113L);
+            UserPeriodVo v2 = new UserPeriodVo();
+            v2.setSectionId(115L);
+            periodVoList.add(v1);
+            periodVoList.add(v2);
+            addItem.setPeriodVoList(periodVoList);
+            exportList.add(addItem);
+        }
+        return exportList;
+    }
+
     @Override
     public Boolean updateByEditBo(ClassGradeUserEditBo bo) {
         for (Long aLong : bo.getId()) {

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportTotalVo.java

@@ -0,0 +1,30 @@
+package com.zhongzheng.modules.grade.vo;
+
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 学员记录视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+
+public class ClassPeriodStudentExportTotalVo {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelEntity(id="student")
+	private ClassPeriodStudentExportVo classPeriodStudentExportVo;
+
+
+}

+ 75 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportVo.java

@@ -0,0 +1,75 @@
+package com.zhongzheng.modules.grade.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 学员记录视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ExcelTarget("classPeriodStudentExportVo")
+public class ClassPeriodStudentExportVo {
+	private static final long serialVersionUID = 1L;
+
+
+	/** 学员ID */
+	@Excel(name = "学员ID")
+	@ApiModelProperty("学员ID")
+	private Long userId;
+
+	/** 商品ID */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	/** 班级id */
+	@Excel(name = "班级id")
+	@ApiModelProperty("班级id")
+	private Long gradeId;
+	/** 1 进入 0移除 */
+	@Excel(name = "1 进入 0移除")
+	@ApiModelProperty("1 进入 0移除")
+	private Integer status;
+
+	/** 学员编码 */
+	@Excel(name = "学员编码")
+	@ApiModelProperty("学员编码")
+	private String studentCode;
+
+	/** 学员编码 */
+	@Excel(name = "学员姓名")
+	@ApiModelProperty("学员姓名")
+	private String realName;
+
+
+	/** 学员编码 */
+	@Excel(name = "学员身份证")
+	@ApiModelProperty("学员身份证")
+	private String idCard;
+
+	/** 学员编码 */
+	@Excel(name = "学员电话")
+	@ApiModelProperty("学员电话")
+	private String telPhone;
+
+
+	/** 学员编码 */
+	@Excel(name = "當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
+	@ApiModelProperty("當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过")
+	private Integer allStatus;
+
+
+
+	@ExcelCollection(name = "学习记录")
+	private List<UserPeriodVo> periodVoList;
+}

+ 5 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodVo.java

@@ -1,6 +1,8 @@
 package com.zhongzheng.modules.grade.vo;
 
-import com.zhongzheng.common.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,6 +19,7 @@ import java.util.Date;
  */
 @Data
 @ApiModel("【请填写功能名称】视图对象")
+@ExcelTarget("userPeriodVo")
 public class UserPeriodVo {
 	private static final long serialVersionUID = 1L;
 
@@ -25,7 +28,7 @@ public class UserPeriodVo {
 	private Long id;
 
 	/** $column.columnComment */
-	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+
 	@ApiModelProperty("$column.columnComment")
 	private Long userId;
 	/** 课程ID */

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/impl/InformClassifyServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
-import org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution;
+
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -1,6 +1,6 @@
 package com.zhongzheng.modules.user.vo;
 
-import com.zhongzheng.common.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zhongzheng.common.utils.TelPhoneUtils;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseChapterSectionMapper.xml

@@ -203,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="learningExamCheck" parameterType="map"  resultType="integer">
         SELECT
-            IFNULL(ubr.report_status,0)
+            IFNULL(ubr.report_status,-1)
         FROM
             user_bank_record ubr
         WHERE

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseHandoutsMapper.xml

@@ -79,7 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="educationId != null and educationId != ''">
             AND h.education_id = #{educationId}
         </if>
-        <if test="id != null and id != ''">
+        <if test="id != null ">
             AND s.handouts_id = #{id}
         </if>
         <if test="subjectId != null and subjectId != ''">

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -342,7 +342,7 @@
         class_grade_goods cgg on cgg.goods_id = c.goods_id where cg.grade_id=cgg.grade_id and m.type = 1 ) as exam_num,
         (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id, ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.report_status =1 and ubr.user_id=#{userId} and ubr.grade_id=cgu.grade_id and ubr.current_status=1) as record_num,
         (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
-        ups.`status` =1 and ups.period_status = 1 and up.goods_id=#{goodsId} and up.user_id = #{userId} and up.type = 1) as pass,
+        ups.`status` =1 and ups.period_status = 1 and up.goods_id=#{goodsId} and up.user_id = #{userId} and up.grade_id = cgu.grade_id and up.type = 1) as pass,
         (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
         ups.`status` =2 and up.grade_id = cg.grade_id  and ups.period_status = 1 and up.goods_id=#{goodsId} and up.grade_id = cg.grade_id and up.user_id = #{userId} and up.type = 1) as pending,
        (SELECT