ソースを参照

教材管理导出

大数据与最优化研究所 1 年間 前
コミット
b7eeda03fa
23 ファイル変更1164 行追加53 行削除
  1. 1 1
      src/main/java/com/xjrsoft/module/liteflow/node/StudentAssessmentInspectionNode.java
  2. 2 1
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentInspectionController.java
  3. 6 0
      src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java
  4. 27 0
      src/main/java/com/xjrsoft/module/student/dto/QuantitativeAssessmentSingleScoreDto.java
  5. 13 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentAssessmentInspectionMapper.java
  6. 2 1
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentInspectionService.java
  7. 109 17
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java
  8. 12 12
      src/main/java/com/xjrsoft/module/student/vo/CalssQuantitativeAssessmentPageVo.java
  9. 10 0
      src/main/java/com/xjrsoft/module/student/vo/QuantitativeAssessmentSingleScoreVo.java
  10. 123 4
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java
  11. 41 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookClaimExportQueryDto.java
  12. 35 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookStandingExportQuerytDto.java
  13. 37 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookSubscriptionExportQueryDto.java
  14. 5 2
      src/main/java/com/xjrsoft/module/textbook/entity/TextbookSubscriptionRecord.java
  15. 20 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java
  16. 19 8
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java
  17. 97 4
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  18. 92 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookClaimExportQueryVo.java
  19. 133 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookStandingExportQueryVo.java
  20. 123 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionExportQueryVo.java
  21. 84 0
      src/main/resources/mapper/student/BaseStudentAssessmentInspectionMapper.xml
  22. 169 1
      src/main/resources/mapper/textbook/TextbookMapper.xml
  23. 4 1
      src/test/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImplTest.java

+ 1 - 1
src/main/java/com/xjrsoft/module/liteflow/node/StudentAssessmentInspectionNode.java

@@ -9,7 +9,7 @@ import org.springframework.stereotype.Component;
 import java.util.Map;
 
 /**
- * 考核管理流程规则引擎
+ * 学生考核管理流程规则引擎
  */
 @Component("student_assessment_inspection_node")
 public class StudentAssessmentInspectionNode extends NodeComponent {

+ 2 - 1
src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentInspectionController.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.student.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -98,7 +99,7 @@ public class BaseStudentAssessmentInspectionController {
     @ApiOperation(value = "班级量化考核列表(分页)")
     @SaCheckPermission("basestudentassessmentinspection:detail")
     public RT<PageOutput<CalssQuantitativeAssessmentPageVo>> calssQuantitativeAssessmentPage(@Valid CalssQuantitativeAssessmentPageDto dto) {
-        Page<CalssQuantitativeAssessmentPageVo> page = baseStudentAssessmentInspectionService.getCalssQuantitativeAssessmentPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        IPage<CalssQuantitativeAssessmentPageVo> page = baseStudentAssessmentInspectionService.getCalssQuantitativeAssessmentPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
         return RT.ok(ConventPage.getPageOutput(page, CalssQuantitativeAssessmentPageVo.class));
     }
 

+ 6 - 0
src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
@@ -51,4 +52,9 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
      */
     @ApiModelProperty("结束时间")
     private LocalDateTime endTime;
+    /**
+     * 班级Id集合
+     */
+    @ApiModelProperty(value = "班级Id集合", hidden = true)
+    private List<Long> classIdList;
 }

+ 27 - 0
src/main/java/com/xjrsoft/module/student/dto/QuantitativeAssessmentSingleScoreDto.java

@@ -0,0 +1,27 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class QuantitativeAssessmentSingleScoreDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private List<Long> classIdList;
+
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+}

+ 13 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentAssessmentInspectionMapper.java

@@ -5,6 +5,7 @@ import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
 import com.xjrsoft.module.student.dto.QuantitativeAssessmentExcelDto;
+import com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto;
 import com.xjrsoft.module.student.entity.BaseStudentAssessmentInspection;
 import com.xjrsoft.module.student.vo.*;
 import org.apache.ibatis.annotations.Mapper;
@@ -49,4 +50,16 @@ public interface BaseStudentAssessmentInspectionMapper extends MPJBaseMapper<Bas
     BaseStudentAssessmentInspectionMobileVo getMobileInfo(Long id);
 
     List<QuantitativeAssessmentSubTableExcelVo> getQuantitativeAssessmentSubTableExcelVoList(@Param("dto") QuantitativeAssessmentExcelDto dto);
+
+    //个人行为
+    List<QuantitativeAssessmentSingleScoreVo> getIndividualBehaviorList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
+
+    //常规管理
+    List<QuantitativeAssessmentSingleScoreVo> getConventionalManagementList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
+
+    //获奖及荣誉奖彰
+    List<QuantitativeAssessmentSingleScoreVo> getAwardsAndHonorList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
+
+    List<QuantitativeAssessmentSingleScoreVo> getParamilitaryList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
+
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentInspectionService.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.student.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
@@ -53,7 +54,7 @@ public interface IBaseStudentAssessmentInspectionService extends MPJBaseService<
      * @param dto
      * @return
      */
-    Page<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto);
+    IPage<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto);
 
     Boolean dataHandle(Long id);
 }

+ 109 - 17
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java

@@ -7,6 +7,7 @@ import com.alibaba.excel.support.ExcelTypeEnum;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -14,19 +15,15 @@ import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.ScoreTypeEnum;
 import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.common.utils.excel.ExcelMergeUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
-import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
-import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
-import com.xjrsoft.module.student.dto.CalssQuantitativeAssessmentPageDto;
-import com.xjrsoft.module.student.dto.QuantitativeAssessmentExcelDto;
+import com.xjrsoft.module.evaluate.vo.ResultViewingPageVo;
+import com.xjrsoft.module.student.dto.*;
 import com.xjrsoft.module.student.entity.*;
-import com.xjrsoft.module.student.mapper.BaseStudentAssessmentCategoryMapper;
-import com.xjrsoft.module.student.mapper.BaseStudentAssessmentClassRelationMapper;
-import com.xjrsoft.module.student.mapper.BaseStudentAssessmentInspectionMapper;
-import com.xjrsoft.module.student.mapper.BaseStudentAssessmentStudentRelationMapper;
+import com.xjrsoft.module.student.mapper.*;
 import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
 import com.xjrsoft.module.student.vo.*;
 import com.xjrsoft.module.system.entity.File;
@@ -35,10 +32,17 @@ import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
 import java.io.ByteArrayOutputStream;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -61,6 +65,8 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
 
     private final BaseClassMapper baseClassMapper;
 
+    private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
+
     private final IFileService fileService;
 
     @Override
@@ -94,11 +100,9 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                         .selectAs(XjrUser::getName, BaseStudentAssessmentClassListVo::getTeacherName)
                         .selectAs(XjrUser::getMobile, BaseStudentAssessmentClassListVo::getMobile)
                         .select(BaseStudentAssessmentClassRelation.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentClassRelation.class).contains(x.getProperty()))
-
         );
         result.setClassList(baseStudentAssessmentClassListVos);
 
-
         // 获取学生信息
         List<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelations = assessmentStudentRelationMapper.selectList(
                 Wrappers.<BaseStudentAssessmentStudentRelation>query().lambda()
@@ -223,8 +227,8 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
     }
 
     @Override
-    public Page<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto) {
-        //以班级为数据的基础
+    public IPage<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto) {
+        //以班级为数据的基础进行数据的填充
         MPJLambdaWrapper<BaseClass> baseClassMPJLambdaWrapper = new MPJLambdaWrapper<>();
         baseClassMPJLambdaWrapper
                 .selectAs(BaseClass::getTeacherId, CalssQuantitativeAssessmentPageVo::getHeadTeacherId)
@@ -238,10 +242,89 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                 .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClass::getId)
                 .disableSubLogicDel();
 
-        return null;
+        IPage<CalssQuantitativeAssessmentPageVo> resultPage = baseClassMapper.selectJoinPage(page, CalssQuantitativeAssessmentPageVo.class, baseClassMPJLambdaWrapper);
+
+        //当前数据记录班级id
+        List<Long> classIdList = new ArrayList<>();
+        for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
+            classIdList.add(Long.parseLong(c.getClassId()));
+        }
+
+        if(classIdList.size() > 0){
+            //学生个人行为
+            List<QuantitativeAssessmentSingleScoreVo> individualBehaviorList = assessmentInspectionMapper.getIndividualBehaviorList(new QuantitativeAssessmentSingleScoreDto(){{
+                setClassIdList(classIdList);
+            }});
+            Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = new HashMap<>();
+            for (QuantitativeAssessmentSingleScoreVo q : individualBehaviorList) {
+                individualBehaviorMap.put(q.getClassId(), q);
+            }
+
+            //常规管理
+            List<QuantitativeAssessmentSingleScoreVo> conventionalManagementList = assessmentInspectionMapper.getConventionalManagementList(new QuantitativeAssessmentSingleScoreDto(){{
+                setClassIdList(classIdList);
+            }});
+            Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = new HashMap<>();
+            for (QuantitativeAssessmentSingleScoreVo q : conventionalManagementList) {
+                conventionalManagementMap.put(q.getClassId(), q);
+            }
+
+            //获奖及荣誉奖彰
+            List<QuantitativeAssessmentSingleScoreVo> awardsAndHonorableList = assessmentInspectionMapper.getAwardsAndHonorList(new QuantitativeAssessmentSingleScoreDto(){{
+                setClassIdList(classIdList);
+            }});
+            Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = new HashMap<>();
+            for (QuantitativeAssessmentSingleScoreVo q : awardsAndHonorableList) {
+                awardsAndHonorableMap.put(q.getClassId(), q);
+            }
+
+            //准军事化考核
+            List<QuantitativeAssessmentSingleScoreVo> paramilitaryList = assessmentInspectionMapper.getParamilitaryList(new QuantitativeAssessmentSingleScoreDto(){{
+                setClassIdList(classIdList);
+            }});
+            Map<Long , QuantitativeAssessmentSingleScoreVo> paramilitaryMap = new HashMap<>();
+            for (QuantitativeAssessmentSingleScoreVo q : paramilitaryList) {
+                awardsAndHonorableMap.put(q.getClassId(), q);
+            }
+
+            //将结果写进对应的班级里
+            for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
+                Long classId = Long.parseLong(c.getClassId());
+                if(individualBehaviorMap.get(classId) != null){
+                    c.setStuPersonalBehaviorSubScore(individualBehaviorMap.get(classId).getScore());
+                    ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
+                    String geRenXingWeiGongShi = "sumSubScore/itemCount";
+                    /*int totalScore = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getTotalScore();
+                    int itemCount = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getItemCount();
+                    double res = 0;
+                    String newStr1 = zonghezhishu.replace("totalScore", ""+totalScore);
+                    String newStr2 = newStr1.replace("itemCount", ""+itemCount);
+                    try{
+                        res = Double.parseDouble(engine.eval(newStr2).toString());
+                    }catch (ScriptException s){
+
+                    }
+                    // 创建一个DecimalFormat对象,指定小数位数为两位
+                    DecimalFormat decimalFormat = new DecimalFormat("#.00");
+                    // 格式化double值为字符串
+                    String formattedNumber = decimalFormat.format(res);*/
+                }
+
+                if(conventionalManagementMap.get(classId) != null){
+                    c.setClassConventionalManageSubScore(conventionalManagementMap.get(classId).getScore());
+                }
+
+                if(awardsAndHonorableMap.get(classId) != null){
+                    c.setHonorSumScore(awardsAndHonorableMap.get(classId).getScore());
+                }
+            }
+        }
+
+        return resultPage;
     }
 
     @Override
+    @Transactional
     public Boolean dataHandle(Long id) {
         //获取考核记录
         BaseStudentAssessmentInspection baseStudentAssessmentInspection = this.getById(id);
@@ -263,7 +346,7 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                     }});
                 }
             }
-            //同步数据到考核关联班级
+            //同步数据到考核关联学生
             if(baseStudentAssessmentInspection.getAssessmentType() != null
                     && baseStudentAssessmentInspection.getAssessmentType().equals("personal")
                     && baseStudentAssessmentInspection.getStudentUserIds() != null
@@ -271,11 +354,20 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                 String[] studentIds = baseStudentAssessmentInspection.getStudentUserIds().split(",");
                 for (String studentId: studentIds) {
                     assessmentStudentRelationMapper.insert(new BaseStudentAssessmentStudentRelation(){{
-                        setClassId(Long.parseLong(studentId));
+                        MPJLambdaWrapper<BaseStudentSchoolRoll> baseStudentSchoolRollMPJLambdaWrapper = new MPJLambdaWrapper<>();
+                        baseStudentSchoolRollMPJLambdaWrapper
+                                .select(BaseStudentSchoolRoll::getId)
+                                .select(BaseStudentSchoolRoll.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentSchoolRoll.class).contains(x.getProperty()))
+                                .eq(BaseStudentSchoolRoll::getUserId, studentId);
+                        BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(baseStudentSchoolRollMPJLambdaWrapper);
+                        if(baseStudentSchoolRoll != null){
+                            setClassId(baseStudentSchoolRoll.getClassId());
+                        }
+                        setUserId(Long.parseLong(studentId));
                         setBaseStudentAssessmentInspectionId(baseStudentAssessmentInspection.getId());
-                        QueryWrapper<BaseStudentAssessmentClassRelation> queryWrapperSortcode = new QueryWrapper<>();
+                        QueryWrapper<BaseStudentAssessmentStudentRelation> queryWrapperSortcode = new QueryWrapper<>();
                         queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
-                        BaseStudentAssessmentClassRelation b = assessmentClassRelationMapper.selectOne(queryWrapperSortcode);
+                        BaseStudentAssessmentStudentRelation b = assessmentStudentRelationMapper.selectOne(queryWrapperSortcode);
                         setSortCode(b.getSortCode() + 1);
                     }});
                 }

+ 12 - 12
src/main/java/com/xjrsoft/module/student/vo/CalssQuantitativeAssessmentPageVo.java

@@ -33,38 +33,38 @@ public class CalssQuantitativeAssessmentPageVo {
     private Integer classStatus;
 
     @ApiModelProperty("学生个人行为扣分")
-    private Integer stuPersonalBehaviorSubScore;
+    private Double stuPersonalBehaviorSubScore;
 
     @ApiModelProperty("学生个人行为得分")
-    private Integer stuPersonalBehaviorScore;
+    private Double stuPersonalBehaviorScore;
 
     @ApiModelProperty("常规管理扣分")
-    private Integer classConventionalManageSubScore;
+    private Double classConventionalManageSubScore;
 
     @ApiModelProperty("常规管理得分")
-    private Integer classConventionalManageScore;
+    private Double classConventionalManageScore;
 
     @ApiModelProperty("获奖及荣誉表彰汇总")
-    private Integer honorSumScore;
+    private Double honorSumScore;
 
     @ApiModelProperty("获奖及荣誉表彰得分")
-    private Integer honorScore;
+    private Double honorScore;
 
     @ApiModelProperty("准军事化管理效果综合指数")
-    private Integer militaryManageComprehensiveIndex;
+    private Double militaryManageComprehensiveIndex;
 
     @ApiModelProperty("准军事化管理效果得分")
-    private Integer militaryManageScore;
+    private Double militaryManageScore;
 
     @ApiModelProperty("任课教师考核综合指数")
-    private Integer teacherAssessComprehensiveIndex;
+    private Double teacherAssessComprehensiveIndex;
 
     @ApiModelProperty("任课教师考核得分")
-    private Integer teacherAssessScore;
+    private Double teacherAssessScore;
 
     @ApiModelProperty("考核总得分")
-    private Integer assessSumScore;
+    private Double assessSumScore;
 
     @ApiModelProperty("考核金额")
-    private Integer assessMoney;
+    private Double assessMoney;
 }

+ 10 - 0
src/main/java/com/xjrsoft/module/student/vo/QuantitativeAssessmentSingleScoreVo.java

@@ -0,0 +1,10 @@
+package com.xjrsoft.module.student.vo;
+
+import lombok.Data;
+
+@Data
+public class QuantitativeAssessmentSingleScoreVo {
+    private Long classId;
+
+    private Double score;
+}

+ 123 - 4
src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java

@@ -4,14 +4,14 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.module.textbook.dto.AddTextbookDto;
-import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.dto.TextbookPageDto;
-import com.xjrsoft.module.textbook.dto.UpdateTextbookDto;
+import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.service.IBaseSemesterService;
+import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.service.ITextbookService;
 import com.xjrsoft.module.textbook.vo.*;
@@ -41,6 +41,8 @@ public class TextbookController {
 
     private final ITextbookService textbookService;
 
+    private final IBaseSemesterService baseSemesterService;
+
     @GetMapping(value = "/page")
     @ApiOperation(value="教材管理列表(分页)")
     @SaCheckPermission("textbook:detail")
@@ -162,4 +164,121 @@ public class TextbookController {
         Boolean isSuccess = textbookService.deliverWarehouse(dto);
         return RT.ok(isSuccess);
     }
+
+    @PostMapping("/textbook-standing-export-query")
+    @ApiOperation(value = "台账条件导出")
+    public ResponseEntity<byte[]> textbookStandingExportQuery(@Valid @RequestBody TextbookStandingExportQuerytDto dto) {
+//    @GetMapping("/textbook-standing-export-query")
+//    @ApiOperation(value = "台账条件导出")
+//    public ResponseEntity<byte[]> textbookStandingExportQuery(@Valid TextbookStandingExportQuerytDto dto) {
+        List<TextbookStandingExportQueryVo> customerList = textbookService.listTextbookStandingExportQuery(dto);
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, TextbookStandingExportQueryVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "TextbookStanding" + ExcelTypeEnum.XLSX.getValue());
+    }
+
+    @PostMapping("/textbook-subscription-export-query")
+    @ApiOperation(value = "教材征订记录条件导出")
+    public ResponseEntity<byte[]> textbookSubscriptionExportQuery(@Valid @RequestBody TextbookSubscriptionExportQueryDto dto) {
+//    @GetMapping("/textbook-subscription-export-query")
+//    @ApiOperation(value = "教材征订记录条件导出")
+//    public ResponseEntity<byte[]> textbookSubscriptionExportQuery(@Valid TextbookSubscriptionExportQueryDto dto) {
+        List<TextbookSubscriptionExportQueryVo> customerList = textbookService.listTextbookSubscriptionExportQuery(dto);
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+
+        // 设置动态头
+        String baseSemesterCn = "";
+        if(dto.getBaseSemesterId() != null){
+            LambdaQueryWrapper<BaseSemester> baseSemesterLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            baseSemesterLambdaQueryWrapper
+                    .eq(BaseSemester::getId, dto.getBaseSemesterId());
+            BaseSemester baseSemester = baseSemesterService.getOne(baseSemesterLambdaQueryWrapper);
+            baseSemesterCn = baseSemester.getName();
+        }
+        String headTitle = "重庆市铜梁职业教育中心" + baseSemesterCn + "教材征订表";
+        List<List<String>> headList = new ArrayList<>();
+//        List<String> head0 = new ArrayList<>();
+//        head0.add("个人信息");
+//        head0.add("用户名");
+//        List<String> head1 = new ArrayList<>();
+//        head1.add("个人信息");
+//        head1.add("年龄");
+//        List<String> head2 = new ArrayList<>();
+//        head2.add("个人信息");
+//        head2.add("地址");
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("国际标准刊号");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("书名");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("出版社");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("主编");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("估价(元)");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("是否为规划教材");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("对应课程");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("使用年级");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("使用班级");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("学生用书征订数量");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("教师教材用书征订数量");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("教师教参用书征订数量");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("学科组名称");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("有无配套教学资源");
+        }});
+        headList.add(new ArrayList<String>(){{
+            add(headTitle);
+            add("备注");
+        }});
+        EasyExcel.write(bot, TextbookSubscriptionExportQueryVo.class).automaticMergeHead(true).excelType(ExcelTypeEnum.XLSX).head(headList).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "TextbookSubscription" + ExcelTypeEnum.XLSX.getValue());
+    }
+
+//    @PostMapping("/textbook-claim-export-query")
+//    @ApiOperation(value = "教材发放记录条件导出")
+//    public ResponseEntity<byte[]> textbookClaimExportQuery(@Valid @RequestBody TextbookClaimExportQueryDto dto) {
+    @GetMapping("/textbook-claim-export-query")
+    @ApiOperation(value = "教材发放记录条件导出")
+    public ResponseEntity<byte[]> textbookClaimExportQuery(@Valid TextbookClaimExportQueryDto dto) {
+        ByteArrayOutputStream bot = textbookService.listTextbookClaimExportQuery(dto);
+        return RT.fileStream(bot.toByteArray(), "TextbookClaim" + ExcelTypeEnum.XLSX.getValue());
+    }
 }

+ 41 - 0
src/main/java/com/xjrsoft/module/textbook/dto/TextbookClaimExportQueryDto.java

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 教材征订记录导出入参
+* @Author szs
+* @Date: 2024-02-19
+* @Version 1.0
+*/
+@Data
+public class TextbookClaimExportQueryDto {
+    @ApiModelProperty("教材类型")
+    public String textbookType;
+
+    @ApiModelProperty("学期id")
+    public Long baseSemesterId;
+
+    @ApiModelProperty("学科id")
+    public Long subjectGroupId;
+
+    @ApiModelProperty("班级id")
+    public Long classId;
+
+    @ApiModelProperty("教材id")
+    public Long textbookId;
+
+    @ApiModelProperty("课程id")
+    public Long courseSubjectId;
+
+    @ApiModelProperty("书名")
+    public String bookName;
+
+    @ApiModelProperty("规划教材")
+    public String isTextbookPlan;
+
+    @ApiModelProperty("书号")
+    public String issn;
+}

+ 35 - 0
src/main/java/com/xjrsoft/module/textbook/dto/TextbookStandingExportQuerytDto.java

@@ -0,0 +1,35 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 教材管理台账导出入参
+* @Author szs
+* @Date: 2024-02-19
+* @Version 1.0
+*/
+@Data
+public class TextbookStandingExportQuerytDto {
+    @ApiModelProperty("教材类型")
+    public String textbookType;
+
+    @ApiModelProperty("学期id")
+    public Long baseSemesterId;
+
+    @ApiModelProperty("学科id")
+    public Long subjectGroupId;
+
+    @ApiModelProperty("课程id")
+    public Long courseSubjectId;
+
+    @ApiModelProperty("书名")
+    public String bookName;
+
+    @ApiModelProperty("规划教材")
+    public String isTextbookPlan;
+
+    @ApiModelProperty("书号")
+    public String issn;
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/textbook/dto/TextbookSubscriptionExportQueryDto.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+* @title: 教材征订记录导出入参
+* @Author szs
+* @Date: 2024-02-19
+* @Version 1.0
+*/
+@Data
+public class TextbookSubscriptionExportQueryDto {
+    @ApiModelProperty("教材类型")
+    public String textbookType;
+
+    @ApiModelProperty("学期id")
+    public Long baseSemesterId;
+
+    @ApiModelProperty("学科id")
+    public Long subjectGroupId;
+
+    @ApiModelProperty("课程id")
+    public Long courseSubjectId;
+
+    @ApiModelProperty("书名")
+    public String bookName;
+
+    @ApiModelProperty("规划教材")
+    public String isTextbookPlan;
+
+    @ApiModelProperty("书号")
+    public String issn;
+}

+ 5 - 2
src/main/java/com/xjrsoft/module/textbook/entity/TextbookSubscriptionRecord.java

@@ -88,6 +88,9 @@ public class TextbookSubscriptionRecord implements Serializable {
     */
     @ApiModelProperty("教材教辅征订编号")
     private Long wfTextbookSubscriptionId;
-
-
+    /**
+     * 教材教辅征订项目编号
+     */
+    @ApiModelProperty("教材教辅征订项目编号")
+    private Long wfTextbookSubscriptionItemId;
 }

+ 20 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java

@@ -2,11 +2,15 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.dto.TextbookClaimExportQueryDto;
+import com.xjrsoft.module.textbook.dto.TextbookStandingExportQuerytDto;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
+import com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryDto;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
 import com.xjrsoft.module.textbook.vo.*;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -28,7 +32,7 @@ public interface TextbookMapper extends MPJBaseMapper<Textbook> {
     Page<TextbookPageVo> getPage(Page<TextbookPageDto> page, TextbookPageDto dto);
 
     /**
-     * 验证书号是否存在
+     * 征订记录集合
      *
      * @param id
      * @return
@@ -75,4 +79,19 @@ public interface TextbookMapper extends MPJBaseMapper<Textbook> {
      */
     List<TextbookIssueRecordListVo> issueList(Long id);
 
+    /**
+     * 台账到处集合
+     * @param dto
+     * @return
+     */
+    List<TextbookStandingExportQueryVo> listTextbookStandingExportQuery(@Param("dto") TextbookStandingExportQuerytDto dto);
+
+    /**
+     * 台账到处集合
+     * @param dto
+     * @return
+     */
+    List<TextbookSubscriptionExportQueryVo> listTextbookSubscriptionExportQuery(@Param("dto") TextbookSubscriptionExportQueryDto dto);
+
+    List<TextbookClaimExportQueryVo> listTextbookClaimExportQuery(@Param("dto") TextbookClaimExportQueryDto dto);
 }

+ 19 - 8
src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java

@@ -2,17 +2,12 @@ package com.xjrsoft.module.textbook.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.dto.TextbookPageDto;
+import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.vo.TextbookPageVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
-import com.xjrsoft.module.textbook.vo.TextbookVo;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
+import com.xjrsoft.module.textbook.vo.*;
 
+import java.io.ByteArrayOutputStream;
 import java.util.List;
 
 /**
@@ -113,4 +108,20 @@ public interface ITextbookService extends MPJBaseService<Textbook> {
      * @return
      */
     List<WfTextbookClaimListVo> claimList(Long id);
+
+    /**
+     * 台账到处集合
+     * @param dto
+     * @return
+     */
+    List<TextbookStandingExportQueryVo> listTextbookStandingExportQuery(TextbookStandingExportQuerytDto dto);
+
+    /**
+     * 教材征订导出集合
+     * @param dto
+     * @return
+     */
+    List<TextbookSubscriptionExportQueryVo> listTextbookSubscriptionExportQuery(TextbookSubscriptionExportQueryDto dto);
+
+    ByteArrayOutputStream listTextbookClaimExportQuery(TextbookClaimExportQueryDto dto);
 }

+ 97 - 4
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java

@@ -3,6 +3,11 @@ package com.xjrsoft.module.textbook.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.WriteTable;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -15,12 +20,13 @@ import com.xjrsoft.common.enums.SubscriptionTypeEnum;
 import com.xjrsoft.common.enums.TextbookTypeEnum;
 import com.xjrsoft.common.enums.WarehouseModeEnum;
 import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.common.utils.excel.ExcelFillCellMergePrevColUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.teacher.entity.XjrUser;
-import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.dto.TextbookPageDto;
+import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.*;
 import com.xjrsoft.module.textbook.mapper.*;
 import com.xjrsoft.module.textbook.service.ITextbookService;
@@ -32,6 +38,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.ByteArrayOutputStream;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
@@ -267,7 +274,8 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());//该字段存入征订项的id,征订项中有所属征订记录
+                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
+                        setWfTextbookSubscriptionItemId(wfTextbookSubscriptionItem.getId());//该字段存入征订项的id,征订项中有所属征订记录
                     }});
                 } else {
 
@@ -291,7 +299,8 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());//该字段存入正定项的id,征订项中有所属征订记录
+                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
+                        setWfTextbookSubscriptionItemId(wfTextbookSubscriptionItem.getId());//该字段存入正定项的id,征订项中有所属征订记录
                     }});
                 }
             }
@@ -536,6 +545,90 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
         return result;
     }
 
+    @Override
+    public List<TextbookStandingExportQueryVo> listTextbookStandingExportQuery(TextbookStandingExportQuerytDto dto) {
+        return textbookTextbookMapper.listTextbookStandingExportQuery(dto);
+    }
+
+    @Override
+    public List<TextbookSubscriptionExportQueryVo> listTextbookSubscriptionExportQuery(TextbookSubscriptionExportQueryDto dto) {
+        List<TextbookSubscriptionExportQueryVo> result = textbookTextbookMapper.listTextbookSubscriptionExportQuery(dto);
+        //将班级转换为中文
+        for(TextbookSubscriptionExportQueryVo to: result){
+            if(to.getClassIds() != null && !to.getClassIds().equals("")){
+                List<Long> classIdList = new ArrayList<>();
+                String[] classIdStrs = to.getClassIds().split(",");
+                for (String classIdStr : classIdStrs){
+                    classIdList.add(Long.parseLong(classIdStr.trim()));
+                }
+                LambdaQueryWrapper<BaseClass> baseClassLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                baseClassLambdaQueryWrapper
+                        .in(BaseClass::getId, classIdList);
+                List<BaseClass> baseClassList = baseClassService.list(baseClassLambdaQueryWrapper);
+                if(baseClassList.size() > 0){
+                    StringBuilder sb = new StringBuilder();
+                    for (int i = 0; i < baseClassList.size(); i++){
+                        sb.append(baseClassList.get(i).getName());
+                        if(i != baseClassList.size()-1) {
+                            sb.append(",");
+                        }
+                    }
+                    to.setUseClass(sb.toString());
+                }
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public ByteArrayOutputStream listTextbookClaimExportQuery(TextbookClaimExportQueryDto dto) {
+        List<TextbookClaimExportQueryVo> customerList = textbookTextbookMapper.listTextbookClaimExportQuery(dto);
+
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        try (ExcelWriter excelWriter = EasyExcel.write(bot, TextbookClaimExportQueryVo.class).build()) {
+            //已经写入的行
+            int rowIndex = 0;
+            //已经写入的表
+            int tableIndex = 0;
+            // 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了
+            WriteSheet writeSheet = EasyExcel.writerSheet("模板").needHead(Boolean.FALSE).build();
+
+            //sheet的表头
+            List<List<String>> sheetHeadList = new ArrayList<List<String>>();
+            sheetHeadList.add(new ArrayList<String>(){{
+                add("铜梁执教中心班级教材教辅发放情况表");
+            }});
+            //sheet的表头合并策略
+            ExcelFillCellMergePrevColUtil sheetHeadColumn = new ExcelFillCellMergePrevColUtil();
+            sheetHeadColumn.add(rowIndex, 0, 9);
+            //这是一个sheet表头的table
+            WriteTable writeSheetHeadTable = EasyExcel.writerTable(tableIndex).needHead(Boolean.TRUE).head(sheetHeadList).registerWriteHandler(sheetHeadColumn).build();
+            excelWriter.write(new ArrayList<>(), writeSheet, writeSheetHeadTable);
+
+            for (int i = 0; i < 3; i++){
+                //这是一个table的表头
+                List<List<String>> tableHeadList = new ArrayList<List<String>>();
+                tableHeadList.add(new ArrayList<String>(){{
+                    add("日期:2023春期 班级:23数控1班 班主任:路童话 教室:4502");
+                }});
+                //table的表头合并策略
+                ExcelFillCellMergePrevColUtil tableHeadColumn = new ExcelFillCellMergePrevColUtil();
+                tableHeadColumn.add(++rowIndex, 0, 9);
+                //这是一个table表头的table
+                WriteTable writeTableHeadTable = EasyExcel.writerTable(++tableIndex).needHead(Boolean.TRUE).head(tableHeadList).registerWriteHandler(tableHeadColumn).build();
+                excelWriter.write(new ArrayList<>(), writeSheet, writeTableHeadTable);
+                // 这里必须指定需要头,table 会继承sheet的配置,sheet配置了不需要,table 默认也是不需要
+                WriteTable writeContentTable = EasyExcel.writerTable(++tableIndex).needHead(Boolean.TRUE).build();
+                // 第一次写入会创建头
+                excelWriter.write(customerList, writeSheet, writeContentTable);
+                rowIndex += (1 + customerList.size());
+            }
+        }
+
+        // EasyExcel.write(bot, TextbookClaimExportQueryVo.class).automaticMergeHead(true).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+        return bot;
+    }
+
     @Override
     @Transactional
     public Boolean deliverWarehouse(AddTextbookWarehouseRecordDto dto) {

+ 92 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookClaimExportQueryVo.java

@@ -0,0 +1,92 @@
+package com.xjrsoft.module.textbook.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+* @title: 教材征订记录到处出参
+* @Author szs
+* @Date: 2023-12-25
+* @Version 1.0
+*/
+@Data
+public class TextbookClaimExportQueryVo {
+
+    @ExcelIgnore
+    private Long baseSemesterId;
+
+    @ExcelIgnore
+    private Long classId;
+
+    @ExcelIgnore
+    private Long textbookId;
+    /**
+     * 教材类型(xjr_dictionary_item[textbook_type])
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("教材类型")
+    @ApiModelProperty("教材类型(xjr_dictionary_item[textbook_type])")
+    private String textbookTypeCn;
+    /**
+     * 书名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("书名")
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+     * 主编
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主编")
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+     * 出版社
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("出版社")
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 国际标准刊号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("国际标准刊号")
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+     * 估价(元)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("估价(元)")
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+     * 小计(元)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("小计(元)")
+    @ApiModelProperty("小计(元)")
+    private BigDecimal subtotal;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("库存数量")
+    @ApiModelProperty("库存数量")
+    private Integer num;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("发放情况")
+    @ApiModelProperty("发放情况")
+    private Integer claimNum;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 133 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookStandingExportQueryVo.java

@@ -0,0 +1,133 @@
+package com.xjrsoft.module.textbook.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+* @title: 教材管理分页列表出参
+* @Author szs
+* @Date: 2023-12-25
+* @Version 1.0
+*/
+@Data
+public class TextbookStandingExportQueryVo {
+
+    /**
+    * 国际标准刊号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("国际标准刊号")
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 书名
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("书名")
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("出版社")
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主编")
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+     * 学科组名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学科组名称")
+    @ApiModelProperty("学科组名称")
+    private String groupName;
+    /**
+     * 使用年级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用年级")
+    @ApiModelProperty("使用年级")
+    private String useGrade;
+
+    /**
+     * 使用班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用班级")
+    @ApiModelProperty("使用班级")
+    private String useClass;
+    /**
+    * 课程
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("对应课程")
+    @ApiModelProperty("对应课程")
+    private String courseName;
+    /**
+    * 是否为规划教材
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否为规划教材")
+    @ApiModelProperty("是否为规划教材")
+    private String isTextbookPlanCn;
+
+    /**
+     * 教材类型(xjr_dictionary_item[textbook_type])
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("教材类型")
+    @ApiModelProperty("教材类型-中文")
+    private String textbookTypeCn;
+    /**
+    * 规格型号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("规格型号")
+    @ApiModelProperty("规格型号")
+    private String specificationsModels;
+    /**
+    * 估价(元)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("估价(元)")
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+    * 定价(元)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("定价(元)")
+    @ApiModelProperty("定价(元)")
+    private BigDecimal price;
+    /**
+    * 折扣
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("折扣")
+    @ApiModelProperty("折扣")
+    private Double discount;
+    /**
+    * 小计(元)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("小计(元)")
+    @ApiModelProperty("小计(元)")
+    private BigDecimal subtotal;
+    /**
+    * 库存
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("库存")
+    @ApiModelProperty("库存")
+    private Integer stock;
+}

+ 123 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionExportQueryVo.java

@@ -0,0 +1,123 @@
+package com.xjrsoft.module.textbook.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+* @title: 教材征订记录到处出参
+* @Author szs
+* @Date: 2023-12-25
+* @Version 1.0
+*/
+@Data
+public class TextbookSubscriptionExportQueryVo {
+
+    /**
+    * 国际标准刊号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("国际标准刊号")
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 书名
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("书名")
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("出版社")
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主编")
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+     * 估价(元)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("估价(元)")
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+     * 是否为规划教材
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否为规划教材")
+    @ApiModelProperty("是否为规划教材")
+    private String isTextbookPlanCn;
+    /**
+     * 课程
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("对应课程")
+    @ApiModelProperty("对应课程")
+    private String courseName;
+    /**
+     * 使用年级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用年级")
+    @ApiModelProperty("使用年级")
+    private String useGrade;
+    /**
+     * 使用班级id
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("使用班级id")
+    @ExcelProperty("使用班级id")
+    @ExcelIgnore()
+    private String classIds;
+    /**
+     * 使用班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用班级")
+    @ApiModelProperty("使用班级")
+    private String useClass;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学生用书征订数量")
+    @ApiModelProperty("学生用书征订数量")
+    private Integer studentSubscriptionNumber;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("教师教材用书征订数量")
+    @ApiModelProperty("教师教材用书征订数量")
+    private Integer teacherSubscriptionNumber;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("教师教参用书征订数量")
+    @ApiModelProperty("教师教参用书征订数量")
+    private Integer teacherReferenceNumber;
+    /**
+     * 学科组名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学科组名称")
+    @ApiModelProperty("学科组名称")
+    private String groupName;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有无配套教学资源")
+    @ApiModelProperty("有无配套教学资源")
+    private String isSupportResourcesCn;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 84 - 0
src/main/resources/mapper/student/BaseStudentAssessmentInspectionMapper.xml

@@ -185,4 +185,88 @@
         </if>
         order by t.class_id, t.user_id
     </select>
+
+    <select id="getIndividualBehaviorList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
+        select
+           t.class_id as classId,
+           sum(t1.score) as score
+        from base_student_assessment_student_relation t
+                 left join base_student_assessment_inspection t1 on t1.id = t.base_student_assessment_inspection_id
+                 left join base_student_assessment_category t2 on t2.id = t1.base_student_assessment_category_id
+        where t1.base_student_assessment_category_id = 1754411541353992192
+          and t.class_id in
+        <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
+            #{classId}
+        </foreach>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t1.create_date &gt; #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.endTime != ''">
+            and t1.create_date &lt; #{dto.endTime}
+        </if>
+        group by t.class_id;
+    </select>
+
+    <select id="getConventionalManagementList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
+        select
+            t.class_id as classId,
+            sum(t1.score) as score
+        from base_student_assessment_class_relation t
+                 left join base_student_assessment_inspection t1 on t1.id = t.base_student_assessment_inspection_id
+                 left join base_student_assessment_category t2 on t2.id = t1.base_student_assessment_category_id
+        where t1.base_student_assessment_category_id = 1754411705233838080
+          and t.class_id in
+        <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
+            #{classId}
+        </foreach>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t1.create_date &gt; #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.endTime != ''">
+            and t1.create_date &lt; #{dto.endTime}
+        </if>
+        group by t.class_id;
+    </select>
+
+    <select id="getAwardsAndHonorList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
+        select
+            t.class_id as classId,
+            sum(t1.score) as score
+        from base_student_assessment_student_relation t
+                left join base_student_assessment_inspection t1 on t1.id = t.base_student_assessment_inspection_id
+                left join base_student_assessment_category t2 on t2.id = t1.base_student_assessment_category_id
+        where t1.base_student_assessment_category_id = 1754412347985760256
+        and t.class_id in
+        <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
+            #{classId}
+        </foreach>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t1.create_date &gt; #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.endTime != ''">
+            and t1.create_date &lt; #{dto.endTime}
+        </if>
+        group by t.class_id;
+    </select>
+
+    <select id="getParamilitaryList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
+        select
+        t.class_id as classId,
+        sum(t1.score) as score
+        from base_student_assessment_student_relation t
+        left join base_student_assessment_inspection t1 on t1.id = t.base_student_assessment_inspection_id
+        left join base_student_assessment_category t2 on t2.id = t1.base_student_assessment_category_id
+        where t1.base_student_assessment_category_id = 1754412347985760256
+        and t.class_id in
+        <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
+            #{classId}
+        </foreach>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t1.create_date &gt; #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.endTime != ''">
+            and t1.create_date &lt; #{dto.endTime}
+        </if>
+        group by t.class_id;
+    </select>
 </mapper>

+ 169 - 1
src/main/resources/mapper/textbook/TextbookMapper.xml

@@ -73,7 +73,7 @@
                t10.group_name as subjectGroupIdCN
         FROM textbook_subscription_record t1
                  LEFT JOIN wf_textbook_subscription t2 ON t1.wf_textbook_subscription_id = t2.id
-                 LEFT JOIN wf_textbook_subscription_item t3 ON t3.wf_textbook_subscription_id = t2.id
+                 LEFT JOIN wf_textbook_subscription_item t3 ON t3.id = t1.wf_textbook_subscription_item_id
                  LEFT JOIN xjr_user t4 ON t2.applicant_user_id = t4.id
                  LEFT JOIN xjr_dictionary_detail t5
                            ON t3.is_textbook_plan = t5.code AND t5.item_id = 1737360269850038273
@@ -119,6 +119,7 @@
           AND issn = #{issn}
         order by create_date desc limit 0,1
     </select>
+
     <select id="warehouseList" resultType="com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo">
         SELECT t1.create_date AS warehouse_date, t2.name AS warehouse_user, t1.warehouse_number, t1.source
         FROM textbook_warehouse_record t1
@@ -127,6 +128,7 @@
           AND t1.textbook_id = #{id}
         order by t1.sort_code
     </select>
+
     <select id="issueList" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo">
         SELECT t1.create_date                                                        AS issue_date,
                t2.name                                                               AS issue_user,
@@ -145,10 +147,176 @@
           AND t1.textbook_id = #{id}
         ORDER BY t1.create_date;
     </select>
+
     <select id="getClassRelation" resultType="com.xjrsoft.module.textbook.entity.TextbookClassRelation">
         SELECT *
         FROM textbook_class_relation
         WHERE delete_mark = 0
           AND textbook_id = #{id}
     </select>
+
+    <select id="listTextbookStandingExportQuery" parameterType="com.xjrsoft.module.textbook.dto.TextbookStandingExportQuerytDto"
+            resultType="com.xjrsoft.module.textbook.vo.TextbookStandingExportQueryVo">
+        SELECT t1.issn,
+               t1.book_name,
+               t1.publishing_house,
+               t1.editor_in_chief,
+               t2.group_name,
+               t6.name                        AS use_grade,
+               (SELECT GROUP_CONCAT(c2.name)
+                FROM textbook_class_relation c1
+                         LEFT JOIN base_class c2 ON c1.class_id = c2.id
+                WHERE c1.textbook_id = t1.id) AS use_class,
+               t4.name                        AS course_name,
+               t7.name                        AS is_textbook_plan_cn,
+               t5.name                        AS textbook_type_cn,
+               t1.specifications_models,
+               t1.appraisal_price,
+               t1.price,
+               t1.discount,
+               t1.subtotal,
+               t1.stock
+        FROM textbook t1
+                 LEFT JOIN subject_group t2 ON t1.subject_group_id = t2.id
+                 LEFT JOIN base_course_subject t4 ON t1.course_subject_id = t4.id
+                 LEFT JOIN xjr_dictionary_detail t5 ON t1.textbook_type = t5.code AND t5.item_id = 1739209191193636865
+                 LEFT JOIN base_grade t6 ON t1.grade_id = t6.id
+                 LEFT JOIN xjr_dictionary_detail t7 ON t1.is_textbook_plan = t7.code AND t7.item_id = 1737360269850038273
+        WHERE t1.delete_mark = 0
+        <if test="dto.textbookType != null and dto.textbookType != ''">
+            and t1.textbook_type = #{dto.textbookType}
+        </if>
+        <if test="dto.baseSemesterId != null">
+            and t1.base_semester_id = #{dto.baseSemesterId}
+        </if>
+        <if test="dto.subjectGroupId != null">
+            and t1.subject_group_id = #{dto.subjectGroupId}
+        </if>
+        <if test="dto.courseSubjectId != null">
+            and t1.course_subject_id = #{dto.courseSubjectId}
+        </if>
+        <if test="dto.bookName != null and dto.bookName != ''">
+            and t1.book_name like concat('%',#{dto.bookName}, '%')
+        </if>
+        <if test="dto.isTextbookPlan != null and dto.isTextbookPlan != ''">
+            and t1.is_textbook_plan = #{dto.isTextbookPlan}
+        </if>
+        <if test="dto.issn != null and dto.issn != ''">
+            and t1.issn like concat('%', #{dto.issn}, '%')
+        </if>
+        order by t6.name desc
+    </select>
+
+    <select id="listTextbookSubscriptionExportQuery" parameterType="com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryDto"
+            resultType="com.xjrsoft.module.textbook.vo.TextbookSubscriptionExportQueryVo">
+        SELECT t3.issn,
+               t3.book_name,
+               t3.publishing_house,
+               t3.editor_in_chief,
+               t3.appraisal_price,
+               t5.name        AS is_textbook_plan_cn,
+               t6.name        AS course_name,
+               t9.name        as useGrade,
+               t3.class_ids,
+               t3.student_subscription_number,
+               t3.teacher_subscription_number,
+               t3.teacher_reference_number,
+               t10.group_name,
+               t7.name        AS is_support_resources_cn
+        FROM textbook_subscription_record t1
+                 LEFT JOIN wf_textbook_subscription t2 ON t1.wf_textbook_subscription_id = t2.id
+                 LEFT JOIN wf_textbook_subscription_item t3 ON t3.id = t1.wf_textbook_subscription_item_id
+                 LEFT JOIN xjr_dictionary_detail t5
+                           ON t3.is_textbook_plan = t5.code AND t5.item_id = 1737360269850038273
+                 LEFT JOIN base_course_subject t6 ON t3.course_subject_id = t6.id
+                 LEFT JOIN xjr_dictionary_detail t7
+                           ON t3.is_support_resources = t7.code AND t7.item_id = 1737360269850038273
+                 LEFT JOIN textbook t8 ON t8.id = t1.textbook_id
+                 LEFT JOIN base_grade t9 ON t9.id = t8.grade_id
+                 LEFT JOIN subject_group t10 ON t10.id = t2.subject_group_id
+        WHERE t1.delete_mark = 0
+        <if test="dto.textbookType != null and dto.textbookType != ''">
+            and t8.textbook_type = #{dto.textbookType}
+        </if>
+        <if test="dto.baseSemesterId != null">
+            and t8.base_semester_id = #{dto.baseSemesterId}
+        </if>
+        <if test="dto.subjectGroupId != null">
+            and t8.subject_group_id = #{dto.subjectGroupId}
+        </if>
+        <if test="dto.courseSubjectId != null">
+            and t8.course_subject_id = #{dto.courseSubjectId}
+        </if>
+        <if test="dto.bookName != null and dto.bookName != ''">
+            and t8.book_name like concat('%',#{dto.bookName}, '%')
+        </if>
+        <if test="dto.isTextbookPlan != null and dto.isTextbookPlan != ''">
+            and t8.is_textbook_plan = #{dto.isTextbookPlan}
+        </if>
+        <if test="dto.issn != null and dto.issn != ''">
+            and t8.issn like concat('%', #{dto.issn}, '%')
+        </if>
+    </select>
+
+    <select id="listTextbookClaimExportQuery" parameterType="com.xjrsoft.module.textbook.dto.TextbookClaimExportQueryDto"
+            resultType="com.xjrsoft.module.textbook.vo.TextbookClaimExportQueryVo">
+        with textbook_class as (
+            select
+                t.base_semester_id,
+                t.class_id,
+                t1.textbook_id,
+                sum(t2.stock) as num,
+                sum(t1.issue_number) as claimNum
+            from wf_textbook_claim t
+                left join wf_textbook_claim_item t1 on t1.wf_textbook_claim_id = t.id
+                left join textbook t2 on t2.id = t1.textbook_id
+            where claim_type = 'claim_student'
+            <if test="dto.baseSemesterId != null">
+                amd t.base_semester_id = #{dto.baseSemesterId}
+            </if>
+            <if test="dto.classId != null">
+                and t.class_id = #{dto.classId}
+            </if>
+            <if test="dto.textbookId != null">
+                and t1.textbook_id = #{dto.textbookId}
+            </if>
+            group by t.base_semester_id, t.class_id, t1.textbook_id
+        )
+        select
+            t.base_semester_id,
+            t.class_id,
+            t.textbook_id,
+            t2.name as textbookTypeCn,
+            t1.book_name,
+            t1.editor_in_chief,
+            t1.publishing_house,
+            t1.issn,
+            t1.appraisal_price,
+            t1.subtotal,
+            t.num,
+            t.claimNum
+        from textbook_class t
+            left join textbook t1 on t1.id = t.textbook_id
+            left join xjr_dictionary_detail t2 on t2.code = t1.textbook_type
+        <where>
+            <if test="dto.textbookType != null and dto.textbookType != ''">
+                and t1.textbook_type = #{dto.textbookType}
+            </if>
+            <if test="dto.subjectGroupId != null">
+                and t1.subject_group_id = #{dto.subjectGroupId}
+            </if>
+            <if test="dto.courseSubjectId != null">
+                and t1.course_subject_id = #{dto.courseSubjectId}
+            </if>
+            <if test="dto.bookName != null and dto.bookName != ''">
+                and t1.book_name like concat('%',#{dto.bookName}, '%')
+            </if>
+            <if test="dto.isTextbookPlan != null and dto.isTextbookPlan != ''">
+                and t1.is_textbook_plan = #{dto.isTextbookPlan}
+            </if>
+            <if test="dto.issn != null and dto.issn != ''">
+                and t1.issn like concat('%', #{dto.issn}, '%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 4 - 1
src/test/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImplTest.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.aliyun.dingtalkchengfeng_1_0.models.CfOrgResp;
 import com.xjrsoft.module.room.service.IWfRoomApplicantService;
 import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
 import org.junit.jupiter.api.Test;
@@ -14,6 +15,8 @@ class BaseStudentAssessmentInspectionServiceImplTest {
 
     @Test
     void dataHandle() {
-        baseStudentAssessmentInspectionService.dataHandle(1754388879206518784L);
+        for(long i=7; i<13; i++){
+            baseStudentAssessmentInspectionService.dataHandle(i);
+        }
     }
 }