فهرست منبع

新增考试成绩

Administrator 2 سال پیش
والد
کامیت
137cdfc3d5

+ 115 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/socre/ScoreDataController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller.socre;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.score.ScoreData;
+import com.ruoyi.system.domain.score.ScoreDataDetails;
+import com.ruoyi.system.service.score.IScoreDataService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+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.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 成绩Controller
+ * 
+ * @author boman
+ * @date 2023-07-20
+ */
+@RestController
+@RequestMapping("/score/data")
+public class ScoreDataController extends BaseController
+{
+    @Autowired
+    private IScoreDataService scoreDataService;
+
+    /**
+     * 查询成绩列表
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ScoreData scoreData)
+    {
+        startPage();
+        List<ScoreData> list = scoreDataService.selectScoreDataList(scoreData);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出成绩列表
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:export')")
+    @Log(title = "成绩", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ScoreData scoreData)
+    {
+        List<ScoreData> list = scoreDataService.selectScoreDataList(scoreData);
+        ExcelUtil<ScoreData> util = new ExcelUtil<ScoreData>(ScoreData.class);
+        util.exportExcel(response, list, "成绩数据");
+    }
+
+    /**
+     * 获取成绩详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:query')")
+    @GetMapping(value = "/{scoreId}")
+    public AjaxResult getInfo(@PathVariable("scoreId") Long scoreId)
+    {
+        return success(scoreDataService.selectScoreDataByScoreId(scoreId));
+    }
+
+
+    /**
+     * 新增成绩
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:add')")
+    @Log(title = "成绩", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(ScoreData scoreData,MultipartFile file)throws Exception
+    {
+        if (file != null){
+            ExcelUtil<ScoreDataDetails> util = new ExcelUtil<ScoreDataDetails>(ScoreDataDetails.class);
+            List<ScoreDataDetails> scoreDataDetailsList = util.importExcel(file.getInputStream());
+            scoreData.setScoreDataDetailsList(scoreDataDetailsList);
+        }
+        return toAjax(scoreDataService.insertScoreData(scoreData));
+    }
+
+    /**
+     * 修改成绩
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:edit')")
+    @Log(title = "成绩", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ScoreData scoreData)
+    {
+        return toAjax(scoreDataService.updateScoreData(scoreData));
+    }
+
+    /**
+     * 删除成绩
+     */
+    @PreAuthorize("@ss.hasPermi('score:data:remove')")
+    @Log(title = "成绩", businessType = BusinessType.DELETE)
+	@GetMapping("/delete/{scoreIds}")
+    public AjaxResult remove(@PathVariable Long[] scoreIds)
+    {
+        return toAjax(scoreDataService.deleteScoreDataByScoreIds(scoreIds));
+    }
+}

+ 130 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/score/ScoreData.java

@@ -0,0 +1,130 @@
+package com.ruoyi.system.domain.score;
+
+import java.util.List;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 成绩对象 score_data
+ * 
+ * @author boman
+ * @date 2023-07-20
+ */
+public class ScoreData extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 考试id */
+    private Long scoreId;
+
+    /** 考试名称 */
+    @Excel(name = "考试名称")
+    private String scoreTitle;
+
+    /** 考试时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "考试时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date scoreTime;
+
+    /** 接收班级id */
+    @Excel(name = "接收班级id")
+    private Long scoreClassId;
+
+    /** 接收班级名称 */
+    @Excel(name = "接收班级名称")
+    private String scoreClassName;
+
+    /** 隐私设置 1:仅自己 2:仅本班 3:全部 */
+    @Excel(name = "隐私设置 1:仅自己 2:仅本班 3:全部")
+    private String privacyType;
+
+    /** 成绩_子信息 */
+    private List<ScoreDataDetails> scoreDataDetailsList;
+
+    public void setScoreId(Long scoreId) 
+    {
+        this.scoreId = scoreId;
+    }
+
+    public Long getScoreId() 
+    {
+        return scoreId;
+    }
+    public void setScoreTitle(String scoreTitle) 
+    {
+        this.scoreTitle = scoreTitle;
+    }
+
+    public String getScoreTitle() 
+    {
+        return scoreTitle;
+    }
+    public void setScoreTime(Date scoreTime) 
+    {
+        this.scoreTime = scoreTime;
+    }
+
+    public Date getScoreTime() 
+    {
+        return scoreTime;
+    }
+    public void setScoreClassId(Long scoreClassId) 
+    {
+        this.scoreClassId = scoreClassId;
+    }
+
+    public Long getScoreClassId() 
+    {
+        return scoreClassId;
+    }
+    public void setScoreClassName(String scoreClassName) 
+    {
+        this.scoreClassName = scoreClassName;
+    }
+
+    public String getScoreClassName() 
+    {
+        return scoreClassName;
+    }
+    public void setPrivacyType(String privacyType) 
+    {
+        this.privacyType = privacyType;
+    }
+
+    public String getPrivacyType() 
+    {
+        return privacyType;
+    }
+
+    public List<ScoreDataDetails> getScoreDataDetailsList()
+    {
+        return scoreDataDetailsList;
+    }
+
+    public void setScoreDataDetailsList(List<ScoreDataDetails> scoreDataDetailsList)
+    {
+        this.scoreDataDetailsList = scoreDataDetailsList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scoreId", getScoreId())
+            .append("scoreTitle", getScoreTitle())
+            .append("scoreTime", getScoreTime())
+            .append("scoreClassId", getScoreClassId())
+            .append("scoreClassName", getScoreClassName())
+            .append("privacyType", getPrivacyType())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .append("scoreDataDetailsList", getScoreDataDetailsList())
+            .toString();
+    }
+}

+ 276 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/score/ScoreDataDetails.java

@@ -0,0 +1,276 @@
+package com.ruoyi.system.domain.score;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 成绩_子对象 score_data_details
+ * 
+ * @author boman
+ * @date 2023-07-20
+ */
+public class ScoreDataDetails extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 成绩表_子表id */
+    private Long scoreDetailsId;
+
+    /** 成绩表id */
+    @Excel(name = "成绩表id")
+    private Long scoreId;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private String scoreSort;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String scoreDataName;
+    @Excel(name = "姓名id")
+    private String scoreDataNameId;
+
+    /** 语文 */
+    @Excel(name = "语文")
+    private String yuwen;
+
+    /** 数学 */
+    @Excel(name = "数学")
+    private String shuxue;
+
+    /** 英语 */
+    @Excel(name = "英语")
+    private String yingyu;
+
+    /** 物理 */
+    @Excel(name = "物理")
+    private String wuli;
+
+    /** 化学 */
+    @Excel(name = "化学")
+    private String huaxue;
+
+    /** 生物 */
+    @Excel(name = "生物")
+    private String shengwu;
+
+    /** 政治 */
+    @Excel(name = "政治")
+    private String zhengzhi;
+
+    /** 历史 */
+    @Excel(name = "历史")
+    private String lishi;
+
+    /** 地理 */
+    @Excel(name = "地理")
+    private String dili;
+
+    /** 体育 */
+    @Excel(name = "体育")
+    private String tiyu;
+
+    /** 文综 */
+    @Excel(name = "文综")
+    private String wenzong;
+
+    /** 理综 */
+    @Excel(name = "理综")
+    private String lizong;
+
+    /** 政策分 */
+    @Excel(name = "政策分")
+    private String zhengcefen;
+
+    public String getScoreDataNameId() {
+        return scoreDataNameId;
+    }
+
+    public void setScoreDataNameId(String scoreDataNameId) {
+        this.scoreDataNameId = scoreDataNameId;
+    }
+
+    public void setScoreDetailsId(Long scoreDetailsId)
+    {
+        this.scoreDetailsId = scoreDetailsId;
+    }
+
+    public Long getScoreDetailsId() 
+    {
+        return scoreDetailsId;
+    }
+    public void setScoreId(Long scoreId) 
+    {
+        this.scoreId = scoreId;
+    }
+
+    public Long getScoreId() 
+    {
+        return scoreId;
+    }
+    public void setScoreSort(String scoreSort) 
+    {
+        this.scoreSort = scoreSort;
+    }
+
+    public String getScoreSort() 
+    {
+        return scoreSort;
+    }
+    public void setScoreDataName(String scoreDataName) 
+    {
+        this.scoreDataName = scoreDataName;
+    }
+
+    public String getScoreDataName() 
+    {
+        return scoreDataName;
+    }
+    public void setYuwen(String yuwen) 
+    {
+        this.yuwen = yuwen;
+    }
+
+    public String getYuwen() 
+    {
+        return yuwen;
+    }
+    public void setShuxue(String shuxue) 
+    {
+        this.shuxue = shuxue;
+    }
+
+    public String getShuxue() 
+    {
+        return shuxue;
+    }
+    public void setYingyu(String yingyu) 
+    {
+        this.yingyu = yingyu;
+    }
+
+    public String getYingyu() 
+    {
+        return yingyu;
+    }
+    public void setWuli(String wuli) 
+    {
+        this.wuli = wuli;
+    }
+
+    public String getWuli() 
+    {
+        return wuli;
+    }
+    public void setHuaxue(String huaxue) 
+    {
+        this.huaxue = huaxue;
+    }
+
+    public String getHuaxue() 
+    {
+        return huaxue;
+    }
+    public void setShengwu(String shengwu) 
+    {
+        this.shengwu = shengwu;
+    }
+
+    public String getShengwu() 
+    {
+        return shengwu;
+    }
+    public void setZhengzhi(String zhengzhi) 
+    {
+        this.zhengzhi = zhengzhi;
+    }
+
+    public String getZhengzhi() 
+    {
+        return zhengzhi;
+    }
+    public void setLishi(String lishi) 
+    {
+        this.lishi = lishi;
+    }
+
+    public String getLishi() 
+    {
+        return lishi;
+    }
+    public void setDili(String dili) 
+    {
+        this.dili = dili;
+    }
+
+    public String getDili() 
+    {
+        return dili;
+    }
+    public void setTiyu(String tiyu) 
+    {
+        this.tiyu = tiyu;
+    }
+
+    public String getTiyu() 
+    {
+        return tiyu;
+    }
+    public void setWenzong(String wenzong) 
+    {
+        this.wenzong = wenzong;
+    }
+
+    public String getWenzong() 
+    {
+        return wenzong;
+    }
+    public void setLizong(String lizong) 
+    {
+        this.lizong = lizong;
+    }
+
+    public String getLizong() 
+    {
+        return lizong;
+    }
+    public void setZhengcefen(String zhengcefen) 
+    {
+        this.zhengcefen = zhengcefen;
+    }
+
+    public String getZhengcefen() 
+    {
+        return zhengcefen;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scoreDetailsId", getScoreDetailsId())
+            .append("scoreId", getScoreId())
+            .append("scoreSort", getScoreSort())
+            .append("scoreDataName", getScoreDataName())
+            .append("yuwen", getYuwen())
+            .append("shuxue", getShuxue())
+            .append("yingyu", getYingyu())
+            .append("wuli", getWuli())
+            .append("huaxue", getHuaxue())
+            .append("shengwu", getShengwu())
+            .append("zhengzhi", getZhengzhi())
+            .append("lishi", getLishi())
+            .append("dili", getDili())
+            .append("tiyu", getTiyu())
+            .append("wenzong", getWenzong())
+            .append("lizong", getLizong())
+            .append("zhengcefen", getZhengcefen())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 88 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/score/ScoreDataMapper.java

@@ -0,0 +1,88 @@
+package com.ruoyi.system.mapper.score;
+
+import com.ruoyi.system.domain.score.ScoreData;
+import com.ruoyi.system.domain.score.ScoreDataDetails;
+
+import java.util.List;
+
+/**
+ * 成绩Mapper接口
+ * 
+ * @author boman
+ * @date 2023-07-20
+ */
+public interface ScoreDataMapper 
+{
+    /**
+     * 查询成绩
+     * 
+     * @param scoreId 成绩主键
+     * @return 成绩
+     */
+    public ScoreData selectScoreDataByScoreId(Long scoreId);
+
+    /**
+     * 查询成绩列表
+     * 
+     * @param scoreData 成绩
+     * @return 成绩集合
+     */
+    public List<ScoreData> selectScoreDataList(ScoreData scoreData);
+
+    /**
+     * 新增成绩
+     * 
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    public int insertScoreData(ScoreData scoreData);
+
+    /**
+     * 修改成绩
+     * 
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    public int updateScoreData(ScoreData scoreData);
+
+    /**
+     * 删除成绩
+     * 
+     * @param scoreId 成绩主键
+     * @return 结果
+     */
+    public int deleteScoreDataByScoreId(Long scoreId);
+
+    /**
+     * 批量删除成绩
+     * 
+     * @param scoreIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteScoreDataByScoreIds(Long[] scoreIds);
+
+    /**
+     * 批量删除成绩_子
+     * 
+     * @param scoreIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteScoreDataDetailsByScoreIds(Long[] scoreIds);
+    
+    /**
+     * 批量新增成绩_子
+     * 
+     * @param scoreDataDetailsList 成绩_子列表
+     * @return 结果
+     */
+    public int batchScoreDataDetails(List<ScoreDataDetails> scoreDataDetailsList);
+    
+
+    /**
+     * 通过成绩主键删除成绩_子信息
+     * 
+     * @param scoreId 成绩ID
+     * @return 结果
+     */
+    public int deleteScoreDataDetailsByScoreId(Long scoreId);
+}

+ 130 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/score/ScoreDataServiceImpl.java

@@ -0,0 +1,130 @@
+package com.ruoyi.system.service.impl.score;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.score.ScoreData;
+import com.ruoyi.system.domain.score.ScoreDataDetails;
+import com.ruoyi.system.mapper.score.ScoreDataMapper;
+import com.ruoyi.system.service.score.IScoreDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 成绩Service业务层处理
+ *
+ * @author boman
+ * @date 2023-07-20
+ */
+@Service
+public class ScoreDataServiceImpl implements IScoreDataService {
+    @Autowired
+    private ScoreDataMapper scoreDataMapper;
+
+    /**
+     * 查询成绩
+     *
+     * @param scoreId 成绩主键
+     * @return 成绩
+     */
+    @Override
+    public ScoreData selectScoreDataByScoreId(Long scoreId) {
+        return scoreDataMapper.selectScoreDataByScoreId(scoreId);
+    }
+
+    /**
+     * 查询成绩列表
+     *
+     * @param scoreData 成绩
+     * @return 成绩
+     */
+    @Override
+    public List<ScoreData> selectScoreDataList(ScoreData scoreData) {
+        return scoreDataMapper.selectScoreDataList(scoreData);
+    }
+
+    /**
+     * 新增成绩
+     *
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int insertScoreData(ScoreData scoreData) {
+        scoreData.setCreateTime(DateUtils.getNowDate());
+        int rows = scoreDataMapper.insertScoreData(scoreData);
+        insertScoreDataDetails(scoreData);
+        return rows;
+    }
+
+    /**
+     * 修改成绩
+     *
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int updateScoreData(ScoreData scoreData) {
+        scoreData.setUpdateTime(DateUtils.getNowDate());
+        scoreDataMapper.deleteScoreDataDetailsByScoreId(scoreData.getScoreId());
+        insertScoreDataDetails(scoreData);
+        return scoreDataMapper.updateScoreData(scoreData);
+    }
+
+    /**
+     * 批量删除成绩
+     *
+     * @param scoreIds 需要删除的成绩主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteScoreDataByScoreIds(Long[] scoreIds) {
+        scoreDataMapper.deleteScoreDataDetailsByScoreIds(scoreIds);
+        return scoreDataMapper.deleteScoreDataByScoreIds(scoreIds);
+    }
+
+    /**
+     * 删除成绩信息
+     *
+     * @param scoreId 成绩主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteScoreDataByScoreId(Long scoreId) {
+        scoreDataMapper.deleteScoreDataDetailsByScoreId(scoreId);
+        return scoreDataMapper.deleteScoreDataByScoreId(scoreId);
+    }
+
+    /**
+     * 新增成绩_子信息
+     *
+     * @param scoreData 成绩对象
+     */
+    public void insertScoreDataDetails(ScoreData scoreData) {
+        List<ScoreDataDetails> scoreDataDetailsList = scoreData.getScoreDataDetailsList();
+        Long scoreId = scoreData.getScoreId();
+        if (StringUtils.isNotNull(scoreDataDetailsList)) {
+            List<ScoreDataDetails> list = new ArrayList<ScoreDataDetails>();
+            for (ScoreDataDetails scoreDataDetails : scoreDataDetailsList) {
+                scoreDataDetails.setScoreId(scoreId);
+                list.add(scoreDataDetails);
+            }
+            if (list.size() > 0) {
+                scoreDataMapper.batchScoreDataDetails(list);
+            }
+        }
+    }
+}

+ 65 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/score/IScoreDataService.java

@@ -0,0 +1,65 @@
+package com.ruoyi.system.service.score;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.system.domain.score.ScoreData;
+import com.ruoyi.system.domain.score.ScoreDataDetails;
+
+import java.util.List;
+
+/**
+ * 成绩Service接口
+ * 
+ * @author boman
+ * @date 2023-07-20
+ */
+public interface IScoreDataService 
+{
+    /**
+     * 查询成绩
+     * 
+     * @param scoreId 成绩主键
+     * @return 成绩
+     */
+    public ScoreData selectScoreDataByScoreId(Long scoreId);
+
+    /**
+     * 查询成绩列表
+     * 
+     * @param scoreData 成绩
+     * @return 成绩集合
+     */
+    public List<ScoreData> selectScoreDataList(ScoreData scoreData);
+
+    /**
+     * 新增成绩
+     * 
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    public int insertScoreData(ScoreData scoreData);
+
+    /**
+     * 修改成绩
+     * 
+     * @param scoreData 成绩
+     * @return 结果
+     */
+    public int updateScoreData(ScoreData scoreData);
+
+    /**
+     * 批量删除成绩
+     * 
+     * @param scoreIds 需要删除的成绩主键集合
+     * @return 结果
+     */
+    public int deleteScoreDataByScoreIds(Long[] scoreIds);
+
+    /**
+     * 删除成绩信息
+     * 
+     * @param scoreId 成绩主键
+     * @return 结果
+     */
+    public int deleteScoreDataByScoreId(Long scoreId);
+}

+ 147 - 0
ruoyi-system/src/main/resources/mapper/score/ScoreDataMapper.xml

@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.score.ScoreDataMapper">
+    
+    <resultMap type="ScoreData" id="ScoreDataResult">
+        <result property="scoreId"    column="score_id"    />
+        <result property="scoreTitle"    column="score_title"    />
+        <result property="scoreTime"    column="score_time"    />
+        <result property="scoreClassId"    column="score_class_id"    />
+        <result property="scoreClassName"    column="score_class_name"    />
+        <result property="privacyType"    column="privacy_type"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <resultMap id="ScoreDataScoreDataDetailsResult" type="ScoreData" extends="ScoreDataResult">
+        <collection property="scoreDataDetailsList" notNullColumn="sub_score_details_id" javaType="java.util.List" resultMap="ScoreDataDetailsResult" />
+    </resultMap>
+
+    <resultMap type="ScoreDataDetails" id="ScoreDataDetailsResult">
+        <result property="scoreDetailsId"    column="sub_score_details_id"    />
+        <result property="scoreId"    column="sub_score_id"    />
+        <result property="scoreSort"    column="sub_score_sort"    />
+        <result property="scoreDataName"    column="sub_score_data_name"    />
+        <result property="scoreDataNameId"    column="sub_score_data_name_id"    />
+        <result property="yuwen"    column="sub_yuwen"    />
+        <result property="shuxue"    column="sub_shuxue"    />
+        <result property="yingyu"    column="sub_yingyu"    />
+        <result property="wuli"    column="sub_wuli"    />
+        <result property="huaxue"    column="sub_huaxue"    />
+        <result property="shengwu"    column="sub_shengwu"    />
+        <result property="zhengzhi"    column="sub_zhengzhi"    />
+        <result property="lishi"    column="sub_lishi"    />
+        <result property="dili"    column="sub_dili"    />
+        <result property="tiyu"    column="sub_tiyu"    />
+        <result property="wenzong"    column="sub_wenzong"    />
+        <result property="lizong"    column="sub_lizong"    />
+        <result property="zhengcefen"    column="sub_zhengcefen"    />
+        <result property="createBy"    column="sub_create_by"    />
+        <result property="createTime"    column="sub_create_time"    />
+        <result property="updateBy"    column="sub_update_by"    />
+        <result property="updateTime"    column="sub_update_time"    />
+        <result property="remark"    column="sub_remark"    />
+    </resultMap>
+
+    <sql id="selectScoreDataVo">
+        select score_id, score_title, score_time, score_class_id, score_class_name, privacy_type, create_by, create_time, update_by, update_time, remark from score_data
+    </sql>
+
+    <select id="selectScoreDataList" parameterType="ScoreData" resultMap="ScoreDataResult">
+        <include refid="selectScoreDataVo"/>
+        <where>  
+            <if test="scoreTitle != null  and scoreTitle != ''"> and score_title = #{scoreTitle}</if>
+            <if test="scoreTime != null "> and score_time = #{scoreTime}</if>
+            <if test="scoreClassId != null "> and score_class_id = #{scoreClassId}</if>
+            <if test="scoreClassName != null  and scoreClassName != ''"> and score_class_name like concat('%', #{scoreClassName}, '%')</if>
+            <if test="privacyType != null  and privacyType != ''"> and privacy_type = #{privacyType}</if>
+        </where>
+    </select>
+    
+    <select id="selectScoreDataByScoreId" parameterType="Long" resultMap="ScoreDataScoreDataDetailsResult">
+        select a.score_id, a.score_title, a.score_time, a.score_class_id, a.score_class_name, a.privacy_type, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
+ b.score_details_id as sub_score_details_id, b.score_id as sub_score_id, b.score_sort as sub_score_sort, b.score_data_name as sub_score_data_name, b.yuwen as sub_yuwen, b.shuxue as sub_shuxue, b.yingyu as sub_yingyu, b.wuli as sub_wuli, b.huaxue as sub_huaxue, b.shengwu as sub_shengwu, b.zhengzhi as sub_zhengzhi, b.lishi as sub_lishi, b.dili as sub_dili, b.tiyu as sub_tiyu, b.wenzong as sub_wenzong, b.lizong as sub_lizong, b.zhengcefen as sub_zhengcefen, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
+        from score_data a
+        left join score_data_details b on b.score_id = a.score_id
+        where a.score_id = #{scoreId}
+    </select>
+        
+    <insert id="insertScoreData" parameterType="ScoreData" useGeneratedKeys="true" keyProperty="scoreId">
+        insert into score_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="scoreTitle != null">score_title,</if>
+            <if test="scoreTime != null">score_time,</if>
+            <if test="scoreClassId != null">score_class_id,</if>
+            <if test="scoreClassName != null">score_class_name,</if>
+            <if test="privacyType != null">privacy_type,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="scoreTitle != null">#{scoreTitle},</if>
+            <if test="scoreTime != null">#{scoreTime},</if>
+            <if test="scoreClassId != null">#{scoreClassId},</if>
+            <if test="scoreClassName != null">#{scoreClassName},</if>
+            <if test="privacyType != null">#{privacyType},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateScoreData" parameterType="ScoreData">
+        update score_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="scoreTitle != null">score_title = #{scoreTitle},</if>
+            <if test="scoreTime != null">score_time = #{scoreTime},</if>
+            <if test="scoreClassId != null">score_class_id = #{scoreClassId},</if>
+            <if test="scoreClassName != null">score_class_name = #{scoreClassName},</if>
+            <if test="privacyType != null">privacy_type = #{privacyType},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where score_id = #{scoreId}
+    </update>
+
+    <delete id="deleteScoreDataByScoreId" parameterType="Long">
+        delete from score_data where score_id = #{scoreId}
+    </delete>
+
+    <delete id="deleteScoreDataByScoreIds" parameterType="String">
+        delete from score_data where score_id in 
+        <foreach item="scoreId" collection="array" open="(" separator="," close=")">
+            #{scoreId}
+        </foreach>
+    </delete>
+    
+    <delete id="deleteScoreDataDetailsByScoreIds" parameterType="String">
+        delete from score_data_details where score_id in 
+        <foreach item="scoreId" collection="array" open="(" separator="," close=")">
+            #{scoreId}
+        </foreach>
+    </delete>
+
+    <delete id="deleteScoreDataDetailsByScoreId" parameterType="Long">
+        delete from score_data_details where score_id = #{scoreId}
+    </delete>
+
+    <insert id="batchScoreDataDetails">
+        insert into score_data_details( score_details_id, score_id, score_sort, score_data_name, yuwen, shuxue, yingyu, wuli, huaxue, shengwu, zhengzhi, lishi, dili, tiyu, wenzong, lizong, zhengcefen, create_by, create_time, update_by, update_time, remark) values
+		<foreach item="item" index="index" collection="list" separator=",">
+            ( #{item.scoreDetailsId}, #{item.scoreId}, #{item.scoreSort}, #{item.scoreDataName}, #{item.yuwen}, #{item.shuxue}, #{item.yingyu}, #{item.wuli}, #{item.huaxue}, #{item.shengwu}, #{item.zhengzhi}, #{item.lishi}, #{item.dili}, #{item.tiyu}, #{item.wenzong}, #{item.lizong}, #{item.zhengcefen}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark})
+        </foreach>
+    </insert>
+</mapper>