dzx 11 mesiacov pred
rodič
commit
9ab294e6a2

+ 124 - 0
src/main/java/com/xjrsoft/module/xycxedu/controller/ExamSubjectScoreEnterController.java

@@ -0,0 +1,124 @@
+package com.xjrsoft.module.xycxedu.controller;
+
+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.core.metadata.IPage;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.xycxedu.dto.AddExamSubjectScoreEnterDto;
+import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreEnterPageDto;
+import com.xjrsoft.module.xycxedu.dto.UpdateExamSubjectScoreEnterDto;
+import com.xjrsoft.module.xycxedu.entity.ExamSubjectScoreEnter;
+import com.xjrsoft.module.xycxedu.service.IExamSubjectScoreEnterService;
+import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterPageVo;
+import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/xycxedu" + "/examSubjectScoreEnter")
+@Api(value = "/xycxedu"  + "/examSubjectScoreEnter",tags = "成绩录入代码")
+@AllArgsConstructor
+public class ExamSubjectScoreEnterController {
+
+
+    private final IExamSubjectScoreEnterService examSubjectScoreEnterService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="成绩录入列表(分页)")
+    @SaCheckPermission("examsubjectscoreenter:detail")
+    public RT<PageOutput<ExamSubjectScoreEnterPageVo>> page(@Valid ExamSubjectScoreEnterPageDto dto){
+
+        LambdaQueryWrapper<ExamSubjectScoreEnter> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(ExamSubjectScoreEnter::getId)
+                .select(ExamSubjectScoreEnter.class,x -> VoToColumnUtil.fieldsToColumns(ExamSubjectScoreEnterPageVo.class).contains(x.getProperty()));
+        IPage<ExamSubjectScoreEnter> page = examSubjectScoreEnterService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<ExamSubjectScoreEnterPageVo> pageOutput = ConventPage.getPageOutput(page, ExamSubjectScoreEnterPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询成绩录入信息")
+    @SaCheckPermission("examsubjectscoreenter:detail")
+    public RT<ExamSubjectScoreEnterVo> info(@RequestParam Long id){
+        ExamSubjectScoreEnter examSubjectScoreEnter = examSubjectScoreEnterService.getById(id);
+        if (examSubjectScoreEnter == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(examSubjectScoreEnter, ExamSubjectScoreEnterVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增成绩录入")
+    @SaCheckPermission("examsubjectscoreenter:add")
+    public RT<Boolean> add(@Valid @RequestBody AddExamSubjectScoreEnterDto dto){
+        Boolean isSuccess = examSubjectScoreEnterService.save(dto);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改成绩录入")
+    @SaCheckPermission("examsubjectscoreenter:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateExamSubjectScoreEnterDto dto){
+
+        ExamSubjectScoreEnter examSubjectScoreEnter = BeanUtil.toBean(dto, ExamSubjectScoreEnter.class);
+        examSubjectScoreEnter.setModifyDate(new Date());
+        return RT.ok(examSubjectScoreEnterService.updateById(examSubjectScoreEnter));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除成绩录入")
+    @SaCheckPermission("examsubjectscoreenter:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(examSubjectScoreEnterService.removeBatchByIds(ids));
+
+    }
+    @PostMapping("/import")
+    @ApiOperation(value = "导入")
+    public RT<Boolean> importData(@RequestParam Long id, @RequestParam MultipartFile file) throws IOException {
+        Boolean result = examSubjectScoreEnterService.importData(id, file);
+        return RT.ok(result);
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "下载模板")
+    public ResponseEntity<byte[]> exportData(@Valid ExamSubjectScoreEnterPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<ExamSubjectScoreEnterPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<ExamSubjectScoreEnterPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, ExamSubjectScoreEnterPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "ExamSubjectScoreEnter" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 42 - 0
src/main/java/com/xjrsoft/module/xycxedu/dto/AddExamSubjectScoreEnterDto.java

@@ -0,0 +1,42 @@
+package com.xjrsoft.module.xycxedu.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class AddExamSubjectScoreEnterDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 科目id
+    */
+    @ApiModelProperty("科目id")
+    private Long courseSubjectId;
+    /**
+    * 考试计划id
+    */
+    @ApiModelProperty("考试计划id")
+    private Long examPlanId;
+    /**
+    * 学期id
+    */
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+    /**
+    * 班级id
+    */
+    @ApiModelProperty("班级id")
+    private List<Long> classIds;
+
+}

+ 51 - 0
src/main/java/com/xjrsoft/module/xycxedu/dto/ExamSubjectScoreEnterImportDto.java

@@ -0,0 +1,51 @@
+package com.xjrsoft.module.xycxedu.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class ExamSubjectScoreEnterImportDto implements Serializable {
+
+    /**
+    * 科目id
+    */
+    @ExcelProperty("班级")
+    @ApiModelProperty("科目id")
+    private Long courseSubjectId;
+    /**
+    * 科目名称
+    */
+    @ApiModelProperty("科目名称")
+    private String coursename;
+    /**
+    * 考试计划id
+    */
+    @ApiModelProperty("考试计划id")
+    private Long examPlan;
+    /**
+    * 学期id
+    */
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+    /**
+    * 班级id
+    */
+    @ApiModelProperty("班级id")
+    private String classIds;
+    /**
+    * 年级i
+    */
+    @ApiModelProperty("年级i")
+    private Long afterGradeId;
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/xycxedu/dto/ExamSubjectScoreEnterPageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.xycxedu.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 成绩录入分页查询入参
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ExamSubjectScoreEnterPageDto extends PageInput {
+
+
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/xycxedu/dto/UpdateExamSubjectScoreEnterDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.xycxedu.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class UpdateExamSubjectScoreEnterDto extends AddExamSubjectScoreEnterDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    private Long id;
+}

+ 4 - 1
src/main/java/com/xjrsoft/module/xycxedu/entity/ExamSubjectScore.java

@@ -86,7 +86,7 @@ public class ExamSubjectScore implements Serializable {
     private Long userId;
 
     @ApiModelProperty("分数")
-    private Integer score;
+    private Float score;
 
     @ApiModelProperty("班级排名")
     private Integer classRanking;
@@ -94,4 +94,7 @@ public class ExamSubjectScore implements Serializable {
     @ApiModelProperty("年级排名")
     private Integer gradeRanking;
 
+    @ApiModelProperty("录入id")
+    private Long examSubjectScoreEnterId;
+
 }

+ 98 - 0
src/main/java/com/xjrsoft/module/xycxedu/entity/ExamSubjectScoreEnter.java

@@ -0,0 +1,98 @@
+package com.xjrsoft.module.xycxedu.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+@TableName("exam_subject_score_enter")
+@ApiModel(value = "exam_subject_score_enter", description = "成绩录入")
+public class ExamSubjectScoreEnter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人id
+    */
+    @ApiModelProperty("修改人id")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改日期
+    */
+    @ApiModelProperty("修改日期")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标记
+    */
+    @ApiModelProperty("有效标记")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 科目id
+    */
+    @ApiModelProperty("科目id")
+    private Long courseSubjectId;
+    /**
+    * 科目名称
+    */
+    @ApiModelProperty("科目名称")
+    private String coursename;
+    /**
+    * 考试计划id
+    */
+    @ApiModelProperty("考试计划id")
+    private Long examPlanId;
+    /**
+    * 学期id
+    */
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+    /**
+    * 班级id
+    */
+    @ApiModelProperty("班级id")
+    private String classIds;
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/xycxedu/mapper/ExamSubjectScoreEnterMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.xycxedu.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.xycxedu.entity.ExamSubjectScoreEnter;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Mapper
+public interface ExamSubjectScoreEnterMapper extends MPJBaseMapper<ExamSubjectScoreEnter> {
+
+}

+ 23 - 0
src/main/java/com/xjrsoft/module/xycxedu/service/IExamSubjectScoreEnterService.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.xycxedu.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.xycxedu.dto.AddExamSubjectScoreEnterDto;
+import com.xjrsoft.module.xycxedu.entity.ExamSubjectScoreEnter;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+
+public interface IExamSubjectScoreEnterService extends MPJBaseService<ExamSubjectScoreEnter> {
+
+    Boolean importData(Long id, MultipartFile file) throws IOException;
+
+
+    Boolean save(AddExamSubjectScoreEnterDto dto);
+}

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

@@ -0,0 +1,133 @@
+package com.xjrsoft.module.xycxedu.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.enums.ArchivesStatusEnum;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseCourseSubject;
+import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.base.service.IBaseCourseSubjectService;
+import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.student.entity.BaseStudent;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.xycxedu.dto.AddExamSubjectScoreEnterDto;
+import com.xjrsoft.module.xycxedu.entity.ExamSubjectScore;
+import com.xjrsoft.module.xycxedu.entity.ExamSubjectScoreEnter;
+import com.xjrsoft.module.xycxedu.mapper.ExamSubjectScoreEnterMapper;
+import com.xjrsoft.module.xycxedu.service.IExamSubjectScoreEnterService;
+import com.xjrsoft.module.xycxedu.service.IExamSubjectScoreService;
+import com.xjrsoft.module.xycxedu.vo.ExamSubjectScoreEnterImportVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class ExamSubjectScoreEnterServiceImpl extends MPJBaseServiceImpl<ExamSubjectScoreEnterMapper, ExamSubjectScoreEnter> implements IExamSubjectScoreEnterService {
+
+    private final IBaseCourseSubjectService courseSubjectService;
+    private final IUserService userService;
+    private final IExamSubjectScoreService scoreService;
+    private final IBaseClassService classService;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean importData(Long id, MultipartFile file) throws IOException {
+        ExamSubjectScoreEnter enter = this.getById(id);
+        List<ExamSubjectScoreEnterImportVo> dataList = EasyExcel.read(file.getInputStream()).headRowNumber(2).head(ExamSubjectScoreEnterImportVo.class).sheet().doReadSync();
+        List<BaseCourseSubject> classList = courseSubjectService.list(
+                new QueryWrapper<BaseCourseSubject>().lambda()
+                        .eq(BaseCourseSubject::getDeleteMark, DeleteMark.NODELETE.getCode())
+        );
+        Map<Long, String> courseSubjectMaps = classList.stream().collect(Collectors.toMap(BaseCourseSubject::getId, BaseCourseSubject::getName));
+
+        List<String> credentialNumbers = dataList.stream().filter(x -> StrUtil.isNotEmpty(x.getCredentialNumber())).map(ExamSubjectScoreEnterImportVo::getCredentialNumber).collect(Collectors.toList());
+        if(credentialNumbers.isEmpty()){
+            return true;
+        }
+        List<User> userList = userService.list(
+                new QueryWrapper<User>().lambda()
+                        .eq(User::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .in(User::getCredentialNumber, credentialNumbers)
+        );
+        Map<String, Long> userMaps = userList.stream().collect(Collectors.toMap(User::getCredentialNumber, User::getId));
+
+        List<ExamSubjectScore> insertList = new ArrayList<>();
+        for (ExamSubjectScoreEnterImportVo importVo : dataList) {
+            insertList.add(
+                    new ExamSubjectScore(){{
+                        setCreateDate(new Date());
+                        setCourseSubjectId(enter.getCourseSubjectId());
+                        setScore(Float.parseFloat(importVo.getScore()));
+                        setSemesterId(enter.getSemesterId());
+                        setExamSubjectScoreEnterId(enter.getId());
+                        setSemesterId(enter.getSemesterId());
+                        setUserId(userMaps.get(importVo.getCredentialNumber()));
+                        setClassRanking(importVo.getClassRanking());
+                        setGradeRanking(importVo.getGradeRanking());
+                        setCoursename(courseSubjectMaps.get(enter.getCourseSubjectId()));
+                        setMilexamid(enter.getExamPlanId());
+                    }}
+            );
+        }
+
+        if(!insertList.isEmpty()){
+            scoreService.remove(new QueryWrapper<ExamSubjectScore>().lambda().eq(ExamSubjectScore::getExamSubjectScoreEnterId, enter.getId()));
+
+            scoreService.saveBatch(insertList);
+        }
+
+        return true;
+    }
+
+    @Override
+    public Boolean save(AddExamSubjectScoreEnterDto dto) {
+        ExamSubjectScoreEnter examSubjectScoreEnter = BeanUtil.toBean(dto, ExamSubjectScoreEnter.class);
+        examSubjectScoreEnter.setCreateDate(new Date());
+        String classIds = dto.getClassIds().toString().replace("[", "").replace("]", "").replace(" ", "");
+        examSubjectScoreEnter.setClassIds(classIds);
+        boolean isSuccess = this.save(examSubjectScoreEnter);
+        List<User> userList = userService.list(
+                new MPJLambdaWrapper<User>()
+                        .select(User::getId)
+                        .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
+                        .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
+                        .innerJoin(BaseStudent.class, BaseStudent::getUserId, User::getId)
+                        .eq(BaseStudentSchoolRoll::getArchivesStatus, ArchivesStatusEnum.FB2901.getCode())
+                        .eq(BaseStudent::getIsNormal, 1)
+                        .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds())
+        );
+        List<ExamSubjectScore> insertList = new ArrayList<>();
+        for (User importVo : userList) {
+            insertList.add(
+                    new ExamSubjectScore(){{
+                        setCreateDate(new Date());
+                        setExamSubjectScoreEnterId(examSubjectScoreEnter.getId());
+                        setUserId(importVo.getId());
+                    }}
+            );
+        }
+        return isSuccess;
+    }
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/xycxedu/util/DataUtil.java

@@ -110,7 +110,7 @@ public class DataUtil {
                 }
                 ExamSubjectScore score = new ExamSubjectScore() {{
                     setUserId(userId);
-                    setScore(scoreObj.get("score").getAsInt());
+                    setScore(scoreObj.get("score").getAsFloat());
                     setMilexamid(examidXMilexamidMap.get(examid).longValue());
                     setGradeRanking(scoreObj.get("gradeorder").getAsInt());
                     setClassRanking(scoreObj.get("classorder").getAsInt());

+ 43 - 0
src/main/java/com/xjrsoft/module/xycxedu/vo/ExamSubjectScoreEnterImportVo.java

@@ -0,0 +1,43 @@
+package com.xjrsoft.module.xycxedu.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+* @title: 成绩录入
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class ExamSubjectScoreEnterImportVo implements Serializable {
+
+    @ExcelProperty("班级")
+    @ApiModelProperty("班级")
+    private String className;
+
+    @ExcelProperty("学生姓名")
+    @ApiModelProperty("学生姓名")
+    private String studentName;
+
+    @ExcelProperty("学生身份证")
+    @ApiModelProperty("学生身份证")
+    private String credentialNumber;
+
+    @ExcelProperty("成绩")
+    @ApiModelProperty("成绩")
+    private String score;
+
+    @ExcelProperty("班级排名")
+    @ApiModelProperty("班级排名")
+    private Integer classRanking;
+
+    @ExcelProperty("班级排名")
+    @ApiModelProperty("年级排名")
+    private Integer gradeRanking;
+
+}

+ 104 - 0
src/main/java/com/xjrsoft/module/xycxedu/vo/ExamSubjectScoreEnterPageVo.java

@@ -0,0 +1,104 @@
+package com.xjrsoft.module.xycxedu.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.util.Date;
+
+/**
+* @title: 成绩录入分页列表出参
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class ExamSubjectScoreEnterPageVo {
+
+    /**
+    * 主键
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键")
+    @ApiModelProperty("主键")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建人")
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+    /**
+    * 修改人id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改人id")
+    @ApiModelProperty("修改人id")
+    private Long modifyUserId;
+    /**
+    * 修改日期
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改日期")
+    @ApiModelProperty("修改日期")
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("删除标记")
+    @ApiModelProperty("删除标记")
+    private Integer deleteMark;
+    /**
+    * 有效标记
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有效标记")
+    @ApiModelProperty("有效标记")
+    private Integer enabledMark;
+    /**
+    * 科目id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("科目id")
+    @ApiModelProperty("科目id")
+    private Long courseSubjectId;
+    /**
+    * 科目名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("科目名称")
+    @ApiModelProperty("科目名称")
+    private String coursename;
+    /**
+    * 考试计划id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("考试计划id")
+    @ApiModelProperty("考试计划id")
+    private Long examPlanId;
+    /**
+    * 学期id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学期id")
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+    /**
+    * 班级id
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级id")
+    @ApiModelProperty("班级id")
+    private String classIds;
+
+}

+ 46 - 0
src/main/java/com/xjrsoft/module/xycxedu/vo/ExamSubjectScoreEnterVo.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.xycxedu.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 成绩录入表单出参
+* @Author dzx
+* @Date: 2025-01-06
+* @Version 1.0
+*/
+@Data
+public class ExamSubjectScoreEnterVo {
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    private Long id;
+    /**
+    * 科目id
+    */
+    @ApiModelProperty("科目id")
+    private Long courseSubjectId;
+    /**
+    * 科目名称
+    */
+    @ApiModelProperty("科目名称")
+    private String coursename;
+    /**
+    * 考试计划id
+    */
+    @ApiModelProperty("考试计划id")
+    private Long examPlan;
+    /**
+    * 学期id
+    */
+    @ApiModelProperty("学期id")
+    private Long semesterId;
+    /**
+    * 班级id
+    */
+    @ApiModelProperty("班级id")
+    private String classIds;
+
+}

+ 26 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -4196,4 +4196,30 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+
+    @Test
+    public void gcExamSubjectScoreEnter() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("exam_subject_score_enter");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("xycxedu");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }