diff --git a/srs-admin/src/main/java/com/srs/web/controller/comprehensive/CphIdeologyScoreController.java b/srs-admin/src/main/java/com/srs/web/controller/comprehensive/CphIdeologyScoreController.java index 3c3412f..be7c9e8 100644 --- a/srs-admin/src/main/java/com/srs/web/controller/comprehensive/CphIdeologyScoreController.java +++ b/srs-admin/src/main/java/com/srs/web/controller/comprehensive/CphIdeologyScoreController.java @@ -34,6 +34,15 @@ public class CphIdeologyScoreController extends BaseController { @Autowired private ICphIdeologyScoreService cphIdeologyScoreService; + @PreAuthorize("@ss.hasPermi('comprehensive:ideologyscore:list')") + @PostMapping("/doInit") + @ApiOperation("初始化当前学年分数") + public AjaxResult doInit(){ + return cphIdeologyScoreService.doInit(); + } + + + /** * 查询思想品德初始分数列表 */ diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ICphIdeologyScoreService.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ICphIdeologyScoreService.java index c3ca53b..6507043 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ICphIdeologyScoreService.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ICphIdeologyScoreService.java @@ -3,6 +3,7 @@ package com.srs.comprehensive.service; import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; +import com.srs.common.core.domain.AjaxResult; import com.srs.comprehensive.domain.CphIdeologyScore; /** @@ -12,6 +13,10 @@ import com.srs.comprehensive.domain.CphIdeologyScore; * @date 2024-07-01 */ public interface ICphIdeologyScoreService extends IService { + + + public AjaxResult doInit(); + /** * 查询思想品德初始分数 * diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/CphIdeologyScoreServiceImpl.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/CphIdeologyScoreServiceImpl.java index e511a81..43c231d 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/CphIdeologyScoreServiceImpl.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/CphIdeologyScoreServiceImpl.java @@ -1,8 +1,19 @@ package com.srs.comprehensive.service.impl; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.srs.common.core.domain.AjaxResult; import com.srs.common.utils.DateUtils; +import com.srs.comprehensive.domain.SrsStuYear; +import com.srs.comprehensive.domain.ViewStuInfo; +import com.srs.comprehensive.mapper.SrsStuYearMapper; +import com.srs.comprehensive.mapper.ViewStuInfoMapper; import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -10,6 +21,8 @@ import com.srs.comprehensive.mapper.CphIdeologyScoreMapper; import com.srs.comprehensive.domain.CphIdeologyScore; import com.srs.comprehensive.service.ICphIdeologyScoreService; +import static com.srs.common.utils.SecurityUtils.getUsername; + /** * 思想品德初始分数Service业务层处理 * @@ -21,6 +34,73 @@ public class CphIdeologyScoreServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("status","1"); + queryWrapper.last("limit 1"); + SrsStuYear srsStuYear = srsStuYearMapper.selectOne(queryWrapper); + if(srsStuYear == null){ + throw new Exception("未找到有效学年信息"); + } + + + QueryWrapper viewStuInfoQueryWrapper = new QueryWrapper<>(); + viewStuInfoQueryWrapper.notIn("status","02","03"); + List viewStuInfoList = viewStuInfoMapper.selectList(viewStuInfoQueryWrapper); + + Set stuNoSet = viewStuInfoList.stream().map(ViewStuInfo::getStuNo).collect(Collectors.toSet()); + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("stu_year_id",srsStuYear.getId()); + queryWrapper1.in("stu_no",stuNoSet); + List cphIdeologyScoreList = cphIdeologyScoreMapper.selectList(queryWrapper1); + if(!cphIdeologyScoreList.isEmpty()){ + // 提取已评分的学生学号 + Set scoredStuNoSet = cphIdeologyScoreList.stream() + .map(CphIdeologyScore::getStuNo) + .collect(Collectors.toSet()); + + // 移除已评分的学生学号 + stuNoSet.removeAll(scoredStuNoSet); + } + + List needInsertList = new ArrayList<>(); + for(String stuNo : stuNoSet){ + CphIdeologyScore cphIdeologyScore = new CphIdeologyScore(); + cphIdeologyScore.setStuNo(stuNo); + cphIdeologyScore.setStuYearId(srsStuYear.getId()); + cphIdeologyScore.setScore(new BigDecimal(80)); + cphIdeologyScore.setDescription("初始分数"); + cphIdeologyScore.setStatus("1"); + cphIdeologyScore.setDelFlag("0"); + cphIdeologyScore.setCreateTime(DateUtils.getNowDate()); + cphIdeologyScore.setUpdateTime(DateUtils.getNowDate()); + cphIdeologyScore.setCreateBy(getUsername()); + cphIdeologyScore.setUpdateBy(getUsername()); + needInsertList.add(cphIdeologyScore); + } + + if(!needInsertList.isEmpty()){ + boolean res = this.saveBatch(needInsertList); + if(!res){ + throw new Exception("初始化分数失败"); + } + } + + return AjaxResult.success(); + }catch(Exception ex){ + return AjaxResult.error(ex.getMessage()); + } + } + /** * 查询思想品德初始分数 *