修复思想品德加分问题

This commit is contained in:
zhy
2025-09-13 22:38:42 +08:00
parent 7b66a16a40
commit a0c41f5520
8 changed files with 226 additions and 3 deletions

View File

@@ -1,14 +1,18 @@
package com.srs.web.controller.comprehensive;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.srs.common.annotation.RepeatSubmit;
import com.srs.comprehensive.domain.CphMsg;
import com.srs.comprehensive.domain.Dto.CphCancel;
import com.srs.comprehensive.domain.Dto.CphResub;
import com.srs.comprehensive.domain.SrsAddRecord;
import com.srs.comprehensive.domain.SrsStudent;
import com.srs.comprehensive.domain.Vo.CheckIam;
import com.srs.comprehensive.domain.Vo.CphApply;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.comprehensive.service.ICphMsgService;
@@ -52,6 +56,29 @@ public class CphAuditDetailsController extends BaseController {
@Autowired
private ISrsStudentService _student;
@PostMapping("/plusCheckRecord")
public AjaxResult plusCheckRecord(@RequestBody CphAuditDetails param){
return cphAuditDetailsService.plusCheckRecord(param);
}
@GetMapping("/listCheckAuditAndRecord")
public AjaxResult listCheckAuditAndRecord(CheckIam param) {
Map<String, Object> map = new HashMap<>();
List<CphAuditDetails> list = cphAuditDetailsService.listCheckAudit(param);
List<SrsAddRecord> srsAddRecordList = cphAuditDetailsService.ListCheckRecord(param);
map.put("auditList", list);
map.put("recordList", srsAddRecordList);
return AjaxResult.success(map);
}
@GetMapping("/checkIamList")
public AjaxResult checkIamList(){
List<CheckIam> res = cphAuditDetailsService.checkIamList();
return AjaxResult.success(res);
}
//清除审核状态不正确的加分记录
@PostMapping("/cleanCancelRecord")
public AjaxResult cleanCancelRecord(){

View File

@@ -64,6 +64,9 @@ public class CphAuditDetails extends BaseEntity
private String className;
private String stuNo;
private Long gradeId;
public BigDecimal iamScore;
public String auditStatus;
public Long stuYearId;
public String getDeptName() {

View File

@@ -1,6 +1,7 @@
package com.srs.comprehensive.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -86,6 +87,9 @@ public class SrsAddRecord extends BaseEntity {
*/
private String delFlag;
@TableField(exist = false)
public String ruleName;
// public void setAddPointsPerson(Long addPointsPerson) {
// this.addPointsPerson = addPointsPerson;
// }

View File

@@ -0,0 +1,21 @@
package com.srs.comprehensive.domain.Vo;
import lombok.Data;
import java.math.BigDecimal;
//思想品德检查
@Data
public class CheckIam {
public Long stuYearId;
public String stuNo;
public BigDecimal q2Score;
public BigDecimal q1Score;
public String diffType;
}

View File

@@ -3,6 +3,7 @@ package com.srs.comprehensive.mapper;
import java.util.List;
import com.srs.comprehensive.domain.CphAuditDetails;
import com.srs.comprehensive.domain.SrsAddRecord;
import com.srs.comprehensive.domain.Vo.CheckIam;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -85,4 +86,11 @@ public interface CphAuditDetailsMapper
//查询审核状态不对的加分记录
public List<SrsAddRecord> listCancelRecord();
public List<CheckIam> checkIamList();
public List<CphAuditDetails> listCheckAudit(CheckIam param);
public List<SrsAddRecord> ListCheckRecord(CheckIam param);
}

View File

@@ -6,8 +6,11 @@ import com.srs.common.core.domain.AjaxResult;
import com.srs.comprehensive.domain.CphAuditDetails;
import com.srs.comprehensive.domain.Dto.CphCancel;
import com.srs.comprehensive.domain.Dto.CphResub;
import com.srs.comprehensive.domain.SrsAddRecord;
import com.srs.comprehensive.domain.Vo.CheckIam;
import com.srs.comprehensive.domain.Vo.CphApply;
import com.srs.comprehensive.domain.Vo.CphSearch;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 审核明细Service接口
@@ -18,6 +21,14 @@ import com.srs.comprehensive.domain.Vo.CphSearch;
public interface ICphAuditDetailsService
{
public AjaxResult plusCheckRecord( CphAuditDetails param);
public List<CphAuditDetails> listCheckAudit(CheckIam param);
public List<SrsAddRecord> ListCheckRecord(CheckIam param);
public List<CheckIam> checkIamList();
public AjaxResult cleanCancelRecord();
public int reSub(CphResub param);

View File

@@ -14,10 +14,12 @@ import com.srs.common.utils.PageUtils;
import com.srs.comprehensive.domain.*;
import com.srs.comprehensive.domain.Dto.CphCancel;
import com.srs.comprehensive.domain.Dto.CphResub;
import com.srs.comprehensive.domain.Vo.CheckIam;
import com.srs.comprehensive.domain.Vo.CphApply;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.comprehensive.mapper.CphIamMapper;
import com.srs.comprehensive.mapper.SrsAddRecordMapper;
import com.srs.comprehensive.mapper.ViewStuInfoMapper;
import com.srs.comprehensive.service.*;
import com.srs.system.domain.SysPost;
import com.srs.system.service.ISysPostService;
@@ -437,8 +439,8 @@ public class CphAuditDetailsServiceImpl implements ICphAuditDetailsService {
temp.setId(cphAuditDetails.getProjectId());
temp.setAuditStatus(cphAuditDetails.getStatusCode().toString());
cphIamService.updateCphIam(temp);
Long statusCode=cphAuditDetailsMapper.selectCphAuditDetailsById(cphAuditDetails.getId()).getStatusCode();
if (statusCode == 6L)//判断审核状态是否完成
// Long statusCode=cphAuditDetailsMapper.selectCphAuditDetailsById(cphAuditDetails.getId()).getStatusCode();
if (cphAuditDetails.getStatusCode() == 6L)//判断审核状态是否完成
{
SrsStudent stu = _stuService.selectSrsStudentByStuId(cphAuditDetails.getSubmitterId());
SrsAddRecord srsAddRecord = new SrsAddRecord();//加分记录表
@@ -575,6 +577,85 @@ public class CphAuditDetailsServiceImpl implements ICphAuditDetailsService {
cphAuditDetailsS.setStatusCode(cphAuditDetails.getStatusCode());
int i = cphAuditDetailsMapper.updateCphAuditDetails(cphAuditDetailsS);
return -1;
}
@Override
public List<CheckIam> checkIamList(){
return cphAuditDetailsMapper.checkIamList();
}
@Override
public List<CphAuditDetails> listCheckAudit(CheckIam param){
return cphAuditDetailsMapper.listCheckAudit(param);
}
@Override
public List<SrsAddRecord> ListCheckRecord(CheckIam param){
return cphAuditDetailsMapper.ListCheckRecord(param);
}
@Autowired
private ViewStuInfoMapper viewStuInfoMapper;
@Override
public AjaxResult plusCheckRecord(CphAuditDetails param){
try{
Long auditId = param.getId();
CphAuditDetails cphAuditDetails = selectCphAuditDetailsById(auditId);
if(cphAuditDetails == null){
throw new Exception("审核记录不存在");
}
Long iamId = cphAuditDetails.getProjectId();
CphIam cphIam = cphIamService.selectCphIamById(iamId);
if(cphIam == null){
throw new Exception("思想品德记录不存在");
}
QueryWrapper<ViewStuInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("stu_id", cphIam.getToAdd());
ViewStuInfo viewStuInfo = viewStuInfoMapper.selectOne(queryWrapper);
if(viewStuInfo == null) {
throw new Exception("学生信息不存在");
}
SrsAddRecord query = new SrsAddRecord();
query.setIamId(iamId);
query.setStatusCode("6");
query.setStuYearId(Math.toIntExact(cphIam.getStuYearId()));
List<SrsAddRecord> srsAddRecordList = srsAddRecordService.selectSrsAddRecordList(query);
if(!srsAddRecordList.isEmpty()){
throw new Exception("该记录已存在");
}
SrsAddRecord srsAddRecord = new SrsAddRecord();
srsAddRecord.setStuNo(viewStuInfo.getStuNo());
srsAddRecord.setApplicant(getUserId());
srsAddRecord.setRuleId(cphIam.getRuleId());
srsAddRecord.setDescription(cphIam.getDescription());
srsAddRecord.setMaterial(cphIam.getMaterial());
srsAddRecord.setRecordScore(cphIam.getIamScore());
srsAddRecord.setStuYearId(Math.toIntExact(cphIam.getStuYearId()));
srsAddRecord.setIamId(cphIam.getId());
srsAddRecord.setStatusCode("6");
srsAddRecord.setStatus("0");
srsAddRecord.setDelFlag("0");
srsAddRecord.setCreateBy(getUsername());
srsAddRecord.setUpdateBy(getUsername());
srsAddRecord.setCreateTime(getNowDate());
srsAddRecord.setUpdateTime(getNowDate());
int i = srsAddRecordService.insertSrsAddRecord(srsAddRecord);
if(i == 0){
throw new Exception("添加加分记录失败");
}
return AjaxResult.success();
}catch(Exception ex){
return AjaxResult.error(ex.getMessage());
}
}
}

View File

@@ -177,4 +177,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join cph_iam as b on a.iam_id = b.id
where b.audit_status not in (6,12)
</select>
<select id="checkIamList" resultType="CheckIam">
-- 先将两个查询结果作为子查询,再进行比较
SELECT
q2.stu_year_id,
q2.stu_no,
q2.iam_score AS q2_score,
q1.iam_score AS q1_score,
-- 标记差异类型
CASE
WHEN q1.iam_score IS NULL THEN '加分记录表中不存在'
ELSE '分数不相等'
END AS diff_type
FROM
(
-- 第二个查询作为子查询q2
SELECT
b.stu_year_id,
c.stu_no,
SUM(b.iam_score) AS iam_score
FROM
cph_audit_details AS a
LEFT JOIN cph_iam AS b ON a.project_id = b.id
LEFT JOIN view_stu_info AS c ON b.to_add = c.stu_id
WHERE
a.status_code = 6
GROUP BY
b.stu_year_id,
c.stu_no
) AS q2
LEFT JOIN (
-- 第一个查询作为子查询q1
SELECT
a.stu_year_id,
a.stu_no,
SUM(record_score) AS iam_score
FROM
srs_add_record AS a
GROUP BY
a.stu_year_id,
a.stu_no
) AS q1 ON q2.stu_year_id = q1.stu_year_id
AND q2.stu_no = q1.stu_no
WHERE
-- 条件要么q1中不存在要么分数不相等
q1.iam_score IS NULL
OR q2.iam_score != q1.iam_score;
</select>
<select id="listCheckAudit" parameterType="CheckIam" resultType="CphAuditDetails">
SELECT
a.*,b.iam_score,b.audit_status,c.stu_no,b.stu_year_id
FROM
cph_audit_details AS a
LEFT JOIN cph_iam AS b ON a.project_id = b.id
LEFT JOIN view_stu_info AS c ON b.to_add = c.stu_id
WHERE
a.status_code = 6
and c.stu_no = #{stuNo}
and b.stu_year_id = #{stuYearId}
</select>
<select id="ListCheckRecord" parameterType="CheckIam" resultType="SrsAddRecord">
select a.*,b.rule_name
from srs_add_record as a
left join cph_rules as b on a.rule_id = b.rule_id
where stu_no = #{stuNo} and stu_year_id = #{stuYearId};
</select>
</mapper>