Ver código fonte

Merge branch 'pre'

dzx 2 meses atrás
pai
commit
ff1d2f592b
17 arquivos alterados com 338 adições e 28 exclusões
  1. 26 4
      src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java
  2. 53 0
      src/main/java/com/xjrsoft/module/base/vo/BaseClassCourseMobileListVo.java
  3. 5 0
      src/main/java/com/xjrsoft/module/ledger/controller/LedgerStatisticsController.java
  4. 9 0
      src/main/java/com/xjrsoft/module/ledger/dto/LedgerStatisticsPageDto.java
  5. 1 1
      src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java
  6. 2 2
      src/main/java/com/xjrsoft/module/system/controller/DictionarydetailController.java
  7. 3 2
      src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java
  8. 23 8
      src/main/java/com/xjrsoft/module/xycxedu/controller/ExamSubjectScoreController.java
  9. 37 0
      src/main/java/com/xjrsoft/module/xycxedu/dto/ClassStudentScorePageDto.java
  10. 8 0
      src/main/java/com/xjrsoft/module/xycxedu/mapper/ExamSubjectScoreMappper.java
  11. 11 0
      src/main/java/com/xjrsoft/module/xycxedu/service/IExamSubjectScoreService.java
  12. 0 1
      src/main/java/com/xjrsoft/module/xycxedu/service/impl/ExamSubjectScoreEnterServiceImpl.java
  13. 64 0
      src/main/java/com/xjrsoft/module/xycxedu/service/impl/ExamSubjectScoreServiceImpl.java
  14. 21 0
      src/main/java/com/xjrsoft/module/xycxedu/vo/ClassStudentScorePageVo.java
  15. 24 0
      src/main/java/com/xjrsoft/module/xycxedu/vo/ClassStudentScoreTitleVo.java
  16. 22 10
      src/main/resources/mapper/teacher/WfTeacherleaveMapper.xml
  17. 29 0
      src/main/resources/mapper/xycxedu/ExamSubjectScoreMappper.xml

+ 26 - 4
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -27,11 +27,9 @@ import com.xjrsoft.module.base.service.IBaseClassCourseService;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseCourseSubjectService;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
-import com.xjrsoft.module.base.vo.BaseClassCourseExcelVo;
-import com.xjrsoft.module.base.vo.BaseClassCourseListVo;
-import com.xjrsoft.module.base.vo.BaseClassCoursePageVo;
-import com.xjrsoft.module.base.vo.BaseClassCourseVo;
+import com.xjrsoft.module.base.vo.*;
 import com.xjrsoft.module.base.dto.ClassCourseTextbookExportQueryDto;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.service.ITextbookService;
 import io.swagger.annotations.Api;
@@ -118,6 +116,30 @@ public class BaseClassCourseController {
         return RT.ok(baseClassCourseListVoList);
     }
 
+    @GetMapping(value = "/mobile-list")
+    @ApiOperation(value = "单个班级班级课程列表")
+    @SaCheckPermission("baseclasscourse:detail")
+    public RT<List<BaseClassCourseMobileListVo>> mobileList(@Valid BaseClassCourseListDto dto) {
+        MPJLambdaWrapper<BaseClassCourse> baseClassCourseMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        baseClassCourseMPJLambdaWrapper
+                .disableSubLogicDel()
+                .select(BaseClassCourse::getId)
+                .selectAs(BaseCourseSubject::getName, BaseClassCourseMobileListVo::getCourseName)
+                .selectAs(Textbook::getBookName, BaseClassCourseMobileListVo::getBookName)
+                .selectAs(Textbook::getPrice, BaseClassCourseMobileListVo::getPrice)
+                .selectAs(DictionaryDetail::getName, BaseClassCourseMobileListVo::getTextbookTypeName)
+                .select(BaseClassCourse.class, x -> VoToColumnUtil.fieldsToColumns(BaseClassCourseMobileListVo.class).contains(x.getProperty()))
+                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, BaseClassCourse::getCourseId)
+                .leftJoin(Textbook.class, Textbook::getId, BaseClassCourse::getTextbookId)
+                .leftJoin(DictionaryDetail.class,DictionaryDetail::getCode,Textbook::getTextbookType)
+                .eq(dto.getBaseSemesterId() != null && dto.getBaseSemesterId() > 0, BaseClassCourse::getBaseSemesterId, dto.getBaseSemesterId())
+                .eq(dto.getClassId() != null && dto.getClassId() > 0, BaseClassCourse::getClassId, dto.getClassId())
+                .eq(BaseClassCourse::getDeleteMark, DeleteMark.NODELETE.getCode())
+        ;
+        List<BaseClassCourseMobileListVo> baseClassCourseListVoList = baseClassCourseService.selectJoinList(BaseClassCourseMobileListVo.class, baseClassCourseMPJLambdaWrapper);
+        return RT.ok(baseClassCourseListVoList);
+    }
+
     @GetMapping("/getSemesterTree")
     @ApiOperation("获取年级树结构")
     @SaCheckPermission("baseclasscourse:detail")

+ 53 - 0
src/main/java/com/xjrsoft/module/base/vo/BaseClassCourseMobileListVo.java

@@ -0,0 +1,53 @@
+package com.xjrsoft.module.base.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;
+
+@Data
+public class BaseClassCourseMobileListVo {
+
+    /**
+     *
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("")
+    private String id;
+    /**
+     * 班级id(base_class)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("班级id(base_class)")
+    private Long classId;
+
+    /**
+     * 课程id(base_course_subject)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("课程id(base_course_subject)")
+    private Long courseId;
+
+    @ApiModelProperty("课程")
+    private String courseName;
+
+    /**
+     * 教材id(textbook)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ApiModelProperty("教材id(textbook)")
+    private Long textbookId;
+    /**
+     * 教材(textbook)
+     */
+    @ApiModelProperty("教材(textbook)")
+    private String bookName;
+
+    @ExcelProperty("价格")
+    private BigDecimal price;
+
+    @ExcelProperty("类型")
+    private String textbookTypeName;
+}

+ 5 - 0
src/main/java/com/xjrsoft/module/ledger/controller/LedgerStatisticsController.java

@@ -81,6 +81,11 @@ public class LedgerStatisticsController {
             userIdList.addAll(userList.stream().map(UserDeptRelation::getUserId).collect(Collectors.toList()));
         }
 
+        if(dto.getStartDate() != null && dto.getEndDate() != null){
+            dto.setStartTime(dto.getStartDate().atTime(0,0,0));
+            dto.setEndTime(dto.getEndDate().atTime(23,59,59));
+        }
+
         if(!userIdList.isEmpty()){
             dto.setUserIds(userIdList);
         }

+ 9 - 0
src/main/java/com/xjrsoft/module/ledger/dto/LedgerStatisticsPageDto.java

@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.List;
 
 
@@ -38,6 +39,14 @@ public class LedgerStatisticsPageDto extends PageInput {
     @ApiModelProperty("请假结束日期")
     private LocalDate endDate;
 
+    @JsonIgnore
+    @ApiModelProperty("请假开始日期")
+    private LocalDateTime startTime;
+
+    @JsonIgnore
+    @ApiModelProperty("请假结束日期")
+    private LocalDateTime endTime;
+
     @JsonIgnore
     @ApiModelProperty("用户ids")
     private List<Long> userIds;

+ 1 - 1
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -162,7 +162,7 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                         .eq(DictionaryDetail::getCode, baseStudentSchoolRoll.getArchivesStatus())
                         .inSql(DictionaryDetail::getItemId,"SELECT id from xjr_dictionary_item where code='archives_status'"));
                 if (dictionaryDetail != null) {
-                    if (dictionaryDetail.getExtendField1().equals("0")) {
+                    if ("0".equals(dictionaryDetail.getExtendField1())) {
                         baseStudent.setIsNormal(0);
                     } else {
                         baseStudent.setIsNormal(1);

+ 2 - 2
src/main/java/com/xjrsoft/module/system/controller/DictionarydetailController.java

@@ -168,7 +168,7 @@ public class DictionarydetailController {
         DictionaryDetail dictionaryDetail = BeanUtil.toBean(dto, DictionaryDetail.class);
         DictionaryItem dictionaryItem=   dictionaryitemService.getById(dictionaryDetail.getItemId());
         if(dictionaryItem!=null) {
-            if (dictionaryItem.getCode().equals("job_state")) {
+            if ("job_state".equals(dictionaryItem.getCode())) {
                 Integer isNormal = 1;
                 if (dictionaryDetail.getExtendField1().equals("0")) {
                     isNormal = 0;
@@ -176,7 +176,7 @@ public class DictionarydetailController {
                 teacherbaseManagerService.changeIsNormal(dictionaryDetail.getCode(), isNormal);
             }
 
-            if(dictionaryItem.getCode().equals("archives_status")){
+            if("archives_status".equals(dictionaryItem.getCode())){
                 Integer isNormal = 1;
                 if (dictionaryDetail.getExtendField1().equals("0")) {
                     isNormal = 0;

+ 3 - 2
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java

@@ -118,7 +118,7 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
                         .inSql(DictionaryDetail::getItemId,"SELECT id from xjr_dictionary_item where code='job_state'")
                 );
                 if (dictionaryDetail != null) {
-                    if (dictionaryDetail.getExtendField1().equals("0")) {
+                    if ("0".equals(dictionaryDetail.getExtendField1())) {
                         baseTeacher.setIsNormal(0);
                     } else {
                         baseTeacher.setIsNormal(1);
@@ -269,7 +269,8 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
                             .inSql(DictionaryDetail::getItemId,"SELECT id from xjr_dictionary_item where code='job_state'")
                     );
                     if (dictionaryDetail != null) {
-                        if (dictionaryDetail.getExtendField1().equals("0")) {
+                        if ("0".equals(dictionaryDetail.getExtendField1()))
+                        {
                             baseTeacher.setIsNormal(0);
                         } else {
                             baseTeacher.setIsNormal(1);

+ 23 - 8
src/main/java/com/xjrsoft/module/xycxedu/controller/ExamSubjectScoreController.java

@@ -1,29 +1,25 @@
 package com.xjrsoft.module.xycxedu.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.module.base.entity.BaseClass;
-import com.xjrsoft.module.organization.entity.User;
-import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
-import com.xjrsoft.module.xycxedu.dto.AddExamSubjectScoreEnterDto;
+import com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreEnterDto;
 import com.xjrsoft.module.xycxedu.dto.UpdateExamSubjectScoreDto;
 import com.xjrsoft.module.xycxedu.entity.ExamSubjectScore;
 import com.xjrsoft.module.xycxedu.service.IExamSubjectScoreService;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScorePageVo;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScoreTitleVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterImportVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScorePageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -44,7 +40,6 @@ import java.util.List;
 @AllArgsConstructor
 public class ExamSubjectScoreController {
 
-
     private final IExamSubjectScoreService scoreService;
 
     @GetMapping(value = "/page")
@@ -94,4 +89,24 @@ public class ExamSubjectScoreController {
     }
 
 
+    @GetMapping(value = "/class-student-page")
+    @ApiOperation(value="班级成绩查询(分页)")
+    @SaCheckPermission("examsubjectscore:detail")
+    @XjrLog("查询考试成绩")
+    public RT<PageOutput<ClassStudentScorePageVo>> classStudentScorePage(@Valid ClassStudentScorePageDto dto){
+        PageOutput<ClassStudentScorePageVo> pageOutput = scoreService.getClassStudentScorePage(dto);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/class-student-page-title")
+    @ApiOperation(value="班级成绩查询列头")
+    @SaCheckPermission("examsubjectscore:detail")
+    @XjrLog("查询考试成绩")
+    public RT<List<ClassStudentScoreTitleVo>> classStudentScorePageTitle(@Valid ClassStudentScorePageDto dto){
+        //查询列头
+        List<ClassStudentScoreTitleVo> list = scoreService.getClassStudentScoreCourse(dto);
+        return RT.ok(list);
+    }
+
+
 }

+ 37 - 0
src/main/java/com/xjrsoft/module/xycxedu/dto/ClassStudentScorePageDto.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.xycxedu.dto;
+
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ClassStudentScorePageDto extends PageInput {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("学生姓名")
+    private String name;
+
+    @ApiModelProperty("学期id")
+    private String credentialNumber;
+
+    @ApiModelProperty("考试计划id")
+    private Long examPlanId;
+
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+
+    @ApiModelProperty("树id")
+    private String treeId;
+
+    @ApiModelProperty("树类型(1:部门  2:专业  3:年级  4:班级)")
+    private Integer treeType;
+
+    @JsonIgnore
+    private List<Long> userIdList;
+}

+ 8 - 0
src/main/java/com/xjrsoft/module/xycxedu/mapper/ExamSubjectScoreMappper.java

@@ -2,14 +2,18 @@ package com.xjrsoft.module.xycxedu.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamStatisticsPageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreDto;
 import com.xjrsoft.module.xycxedu.entity.ExamSubjectScore;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScoreTitleVo;
 import com.xjrsoft.module.xycxedu.vo.ExamStatisticsPageVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScorePageVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @title: 晓羊策学考试计划表
 * @Author dzx
@@ -24,4 +28,8 @@ public interface ExamSubjectScoreMappper extends MPJBaseMapper<ExamSubjectScore>
     Page<ExamSubjectScorePageVo> getPage(Page<ExamSubjectScorePageVo> page, @Param("dto") ExamSubjectScoreDto dto);
 
     Page<ExamStatisticsPageVo> getStatisticsPage(Page<ExamStatisticsPageVo> page, @Param("dto") ExamStatisticsPageDto dto);
+
+    List<ClassStudentScoreTitleVo> getClassStudentScoreCourse(@Param("dto") ClassStudentScorePageDto dto);
+
+    List<ExamSubjectScore> getClassStudentScoreList(@Param("dto") ClassStudentScorePageDto dto);
 }

+ 11 - 0
src/main/java/com/xjrsoft/module/xycxedu/service/IExamSubjectScoreService.java

@@ -3,13 +3,17 @@ package com.xjrsoft.module.xycxedu.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamStatisticsPageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreEnterDto;
 import com.xjrsoft.module.xycxedu.entity.ExamSubjectScore;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScorePageVo;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScoreTitleVo;
 import com.xjrsoft.module.xycxedu.vo.ExamStatisticsPageVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterImportVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScorePageVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -32,4 +36,11 @@ public interface IExamSubjectScoreService extends MPJBaseService<ExamSubjectScor
     List<ExamSubjectScoreEnterImportVo> getEnterScoreStudentList(ExamSubjectScoreEnterDto dto);
 
     PageOutput<ExamSubjectScoreEnterImportVo> getEnterScoreStudentPage(Page<ExamSubjectScoreEnterImportVo> page, ExamSubjectScoreEnterDto dto);
+
+
+    List<ClassStudentScoreTitleVo> getClassStudentScoreCourse(ClassStudentScorePageDto dto);
+
+    List<ExamSubjectScore> getClassStudentScoreList(ClassStudentScorePageDto dto);
+
+    PageOutput<ClassStudentScorePageVo> getClassStudentScorePage(ClassStudentScorePageDto dto);
 }

+ 0 - 1
src/main/java/com/xjrsoft/module/xycxedu/service/impl/ExamSubjectScoreEnterServiceImpl.java

@@ -120,7 +120,6 @@ public class ExamSubjectScoreEnterServiceImpl extends MPJBaseServiceImpl<ExamSub
                 examSubjectScores.setClassRanking(importVo.getClassRanking());
                 examSubjectScores.setGradeRanking(importVo.getGradeRanking());
                 examSubjectScores.setCoursename(courseSubjectMaps.get(enter.getCourseSubjectId()));
-                examSubjectScores.setMilexamid(enter.getExamPlanId());
                 updateList.add(examSubjectScores);
             }
 

+ 64 - 0
src/main/java/com/xjrsoft/module/xycxedu/service/impl/ExamSubjectScoreServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.xycxedu.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,20 +10,30 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.service.IStudentManagerService;
+import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
+import com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamStatisticsPageDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreDto;
 import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreEnterDto;
 import com.xjrsoft.module.xycxedu.entity.ExamSubjectScore;
 import com.xjrsoft.module.xycxedu.mapper.ExamSubjectScoreMappper;
 import com.xjrsoft.module.xycxedu.service.IExamSubjectScoreService;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScorePageVo;
+import com.xjrsoft.module.xycxedu.vo.ClassStudentScoreTitleVo;
 import com.xjrsoft.module.xycxedu.vo.ExamStatisticsPageVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterImportVo;
 import com.xjrsoft.module.xycxedu.vo.ExamSubjectScorePageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @title: 晓羊策学考试计划表
@@ -33,6 +44,9 @@ import java.util.List;
 @Service
 @AllArgsConstructor
 public class ExamSubjectScoreServiceImpl extends MPJBaseServiceImpl<ExamSubjectScoreMappper, ExamSubjectScore> implements IExamSubjectScoreService {
+
+    private final IStudentManagerService studentManagerService;
+
     @Override
     public Long getUserIdByIdNumber(String idNumber) {
         return this.baseMapper.getUserIdByIdNumber(idNumber);
@@ -97,4 +111,54 @@ public class ExamSubjectScoreServiceImpl extends MPJBaseServiceImpl<ExamSubjectS
         PageOutput<ExamSubjectScoreEnterImportVo> pageOutput = ConventPage.getPageOutput(voIPage, ExamSubjectScoreEnterImportVo.class);
         return pageOutput;
     }
+
+    @Override
+    public List<ClassStudentScoreTitleVo> getClassStudentScoreCourse(ClassStudentScorePageDto dto) {
+        return this.baseMapper.getClassStudentScoreCourse(dto);
+    }
+
+    @Override
+    public List<ExamSubjectScore> getClassStudentScoreList(ClassStudentScorePageDto dto) {
+        return this.baseMapper.getClassStudentScoreList(dto);
+    }
+
+    @Override
+    public PageOutput<ClassStudentScorePageVo> getClassStudentScorePage(ClassStudentScorePageDto dto) {
+
+        BaseStudentUserPageDto studentDto = BeanUtil.toBean(dto, BaseStudentUserPageDto.class);
+        Page<BaseStudentUserPageVo> studentPage = studentManagerService.getStudentPage(new Page<>(dto.getLimit(), dto.getSize()), studentDto);
+
+        Set<Long> userIdSet = studentPage.getRecords().stream().map(x -> Long.parseLong(x.getId())).collect(Collectors.toSet());
+        dto.setUserIdList(new ArrayList<>(userIdSet));
+        List<ExamSubjectScore> allScoreList = this.baseMapper.getClassStudentScoreList(dto);
+        Map<Long, List<ExamSubjectScore>> listMap = allScoreList.stream().collect(Collectors.groupingBy(ExamSubjectScore::getUserId));
+        PageOutput<ClassStudentScorePageVo> pageOutput = ConventPage.getPageOutput(studentPage, ClassStudentScorePageVo.class);
+
+        for (ClassStudentScorePageVo vo : pageOutput.getList()) {
+            long userId = Long.parseLong(vo.getId());
+            List<ClassStudentScoreTitleVo> scoreList = new ArrayList<>();
+
+            List<ExamSubjectScore> scores = listMap.get(userId);
+            if(scores == null){
+                continue;
+            }
+            for (ExamSubjectScore score : scores) {
+                scoreList.add(
+                        new ClassStudentScoreTitleVo(){{
+                            if(score.getScore() != null){
+                                setScore(Float.toString(score.getScore()));
+                            }
+                            if(score.getExamPlanId() == null){
+                                setCourseId(score.getMilexamid() + "" + score.getCourseSubjectId());
+                            }else{
+                                setCourseId(score.getExamPlanId() + "" + score.getCourseSubjectId());
+                            }
+                            setName(score.getCoursename());
+                        }}
+                );
+            }
+            vo.setScoreList(scoreList);
+        }
+        return pageOutput;
+    }
 }

+ 21 - 0
src/main/java/com/xjrsoft/module/xycxedu/vo/ClassStudentScorePageVo.java

@@ -0,0 +1,21 @@
+package com.xjrsoft.module.xycxedu.vo;
+
+import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 考试计划维护表单出参
+* @Author dzx
+* @Date: 2024-07-18
+* @Version 1.0
+*/
+@Data
+public class ClassStudentScorePageVo extends BaseStudentUserPageVo {
+
+    @ApiModelProperty("学生姓名")
+    private List<ClassStudentScoreTitleVo> scoreList;
+
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/xycxedu/vo/ClassStudentScoreTitleVo.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.xycxedu.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 考试计划维护表单出参
+* @Author dzx
+* @Date: 2024-07-18
+* @Version 1.0
+*/
+@Data
+public class ClassStudentScoreTitleVo {
+
+    @ApiModelProperty("科目id")
+    private String courseId;
+
+    @ApiModelProperty("科目名称")
+    private String name;
+
+    @ApiModelProperty("科目分数")
+    private String score;
+
+}

+ 22 - 10
src/main/resources/mapper/teacher/WfTeacherleaveMapper.xml

@@ -74,12 +74,12 @@
         INNER JOIN xjr_user t2 ON t1.user_id = t2.id
         INNER JOIN xjr_workflow_form_relation t3 ON t3.form_key_value = t1.id
         WHERE t3.current_state = 'COMPLETED' AND t2.delete_mark = 0
-        <if test="dto.startDate != null and dto.endDate != null">
+        <if test="dto.startTime != null and dto.endTime != null">
             AND (
-            (t1.leave_start_time BETWEEN concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59'))
-            OR (t1.leave_end_time BETWEEN concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59'))
-            OR (t1.leave_start_time > concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59') > t1.leave_end_time)
-            OR (concat(#{dto.startDate}, '00:00:00') > t1.leave_start_time and t1.leave_end_time > concat(#{dto.endDate}, '23:59:59'))
+            (t1.leave_start_time BETWEEN #{dto.startTime} and #{dto.endTime})
+            OR (t1.leave_end_time BETWEEN #{dto.startTime} and #{dto.endTime})
+            OR (t1.leave_start_time > #{dto.startTime} and #{dto.endTime} > t1.leave_end_time)
+            OR (#{dto.startTime} > t1.leave_start_time and t1.leave_end_time > #{dto.endTime})
             )
         </if>
         <if test="dto.userIds != null and dto.userIds.size() > 0">
@@ -91,6 +91,12 @@
         <if test="dto.leaveType != null and dto.leaveType != ''">
             AND #{dto.leaveType} like concat('%', t1.leave_type, '%')
         </if>
+        <if test="dto.name != null and dto.name != ''">
+            AND t2.name like concat('%', #{dto.name}, '%')
+        </if>
+        <if test="dto.userName != null and dto.userName != ''">
+            AND t2.user_name like concat('%', #{dto.userName}, '%')
+        </if>
         GROUP BY t1.user_id,t1.leave_type
         ORDER BY t2.user_name
     </select>
@@ -106,12 +112,12 @@
         INNER JOIN xjr_user t2 ON t1.user_id = t2.id
         INNER JOIN xjr_workflow_form_relation t3 ON t3.form_key_value = t1.id
         WHERE t3.current_state = 'COMPLETED' AND t2.delete_mark = 0
-        <if test="dto.startDate != null and dto.endDate != null">
+        <if test="dto.startTime != null and dto.endTime != null">
             AND (
-            (t1.leave_start_time BETWEEN concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59'))
-            OR (t1.leave_end_time BETWEEN concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59'))
-            OR (t1.leave_start_time > concat(#{dto.startDate}, '00:00:00') and concat(#{dto.endDate}, '23:59:59') > t1.leave_end_time)
-            OR (concat(#{dto.startDate}, '00:00:00') > t1.leave_start_time and t1.leave_end_time > concat(#{dto.endDate}, '23:59:59'))
+            (t1.leave_start_time BETWEEN #{dto.startTime} and #{dto.endTime})
+            OR (t1.leave_end_time BETWEEN #{dto.startTime} and #{dto.endTime})
+            OR (t1.leave_start_time > #{dto.startTime} and #{dto.endTime} > t1.leave_end_time)
+            OR (#{dto.startTime} > t1.leave_start_time and t1.leave_end_time > #{dto.endTime})
             )
         </if>
         <if test="dto.userIds != null and dto.userIds.size() > 0">
@@ -123,6 +129,12 @@
         <if test="dto.leaveType != null and dto.leaveType != ''">
             AND #{dto.leaveType} like concat('%', t1.leave_type, '%')
         </if>
+        <if test="dto.name != null and dto.name != ''">
+            AND t2.name like concat('%', #{dto.name}, '%')
+        </if>
+        <if test="dto.userName != null and dto.userName != ''">
+            AND t2.user_name like concat('%', #{dto.userName}, '%')
+        </if>
         GROUP BY t1.user_id,t1.leave_type
         ORDER BY t2.user_name
     </select>

+ 29 - 0
src/main/resources/mapper/xycxedu/ExamSubjectScoreMappper.xml

@@ -42,4 +42,33 @@
             and t1.sdate between #{dto.startDate} and #{dto.endDate}
         </if>
     </select>
+
+    <select id="getClassStudentScoreCourse" parameterType="com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto" resultType="com.xjrsoft.module.xycxedu.vo.ClassStudentScoreTitleVo">
+        SELECT DISTINCT CONCAT(IFNULL(t1.exam_plan_id, t1.milexamid), t1.course_subject_id) as course_id, t4.name FROM exam_subject_score t1
+        INNER JOIN exam_plan t2 ON (t1.exam_plan_id = t2.id OR t2.milexamids LIKE CONCAT('%', t1.milexamid, '%'))
+        INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
+        LEFT JOIN base_course_subject t4 ON t1.course_subject_id = t4.id
+        WHERE t1.delete_mark = 0
+        AND t1.semester_id = #{dto.semesterId}
+        AND t2.id = #{dto.examPlanId}
+        AND t3.class_id = #{dto.treeId}
+        order by t4.name
+    </select>
+    <select id="getClassStudentScoreList" parameterType="com.xjrsoft.module.xycxedu.dto.ClassStudentScorePageDto" resultType="com.xjrsoft.module.xycxedu.entity.ExamSubjectScore">
+        SELECT t1.* FROM exam_subject_score t1
+        INNER JOIN exam_plan t2 ON (t1.exam_plan_id = t2.id OR t2.milexamids LIKE CONCAT('%', t1.milexamid, '%'))
+        INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
+        LEFT JOIN base_course_subject t4 ON t1.course_subject_id = t4.id
+        WHERE t1.delete_mark = 0
+        AND t1.semester_id = #{dto.semesterId}
+        AND t2.id = #{dto.examPlanId}
+        AND t3.class_id = #{dto.treeId}
+        <if test="dto.userIdList != null and dto.userIdList.size() > 0">
+            AND t1.user_id in
+            <foreach item="userId" index="index" collection="dto.userIdList" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+        </if>
+        order by t4.name
+    </select>
 </mapper>