教师端毕业申请-毕业论文申请
1、.xml文件中的SQL语句
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.sdu.postgraduate.entity.GraduatePaper" >
select
<include refid="Base_Column_List" />
from graduate_paper
where grapaper_apply_id = #{grapaperApplyId,jdbcType=INTEGER}
</select>
<update id="updateByPrimaryKeySelective" parameterType="com.sdu.postgraduate.entity.GraduatePaper" >
update graduate_paper
<set >
<if test="stuType != null" >
stu_type = #{stuType,jdbcType=VARCHAR},
</if>
<if test="paperTitle != null" >
paper_title = #{paperTitle,jdbcType=VARCHAR},
</if>
<if test="abstractText != null" >
abstract_text = #{abstractText,jdbcType=VARCHAR},
</if>
<if test="chineseKeywords != null" >
chinese_keywords = #{chineseKeywords,jdbcType=VARCHAR},
</if>
<if test="englishKeywords != null" >
english_keywords = #{englishKeywords,jdbcType=VARCHAR},
</if>
<if test="major != null" >
major = #{major,jdbcType=VARCHAR},
</if>
<if test="researchDirection != null" >
research_direction = #{researchDirection,jdbcType=VARCHAR},
</if>
<if test="workUnit != null" >
work_unit = #{workUnit,jdbcType=VARCHAR},
</if>
<if test="teaName != null" >
tea_name = #{teaName,jdbcType=VARCHAR},
</if>
<if test="title != null" >
title = #{title,jdbcType=VARCHAR},
</if>
<if test="state != null" >
state = #{state,jdbcType=VARCHAR},
</if>
<if test="additionPath != null" >
addition_path = #{additionPath,jdbcType=VARCHAR},
</if>
</set>
where grapaper_apply_id = #{grapaperApplyId,jdbcType=INTEGER}
</update>
<select id="selectCommittedAllByTeacherIdAndState" resultMap="BaseResultMap">
select
*
from graduate_paper
where
tea_id = #{teaId,jdbcType=INTEGER} and state = #{state,jdbcType=VARCHAR}
</select>
2、mapper接口中的方法定义
GraduatePaper selectByPrimaryKey(GraduatePaper record);
int updateByPrimaryKeySelective(GraduatePaper record);
List<GraduatePaper> selectCommittedAllByTeacherIdAndState(GraduatePaper record);
3、service层中的方法定义
public List<GraduateRequest> loadGraduateRequestByTeacherIdAndState(GraduateRequest gr){
return graduateRequestDao.selectCommittedAllByTeacherIdAndState(gr);
}
public GraduateRequest selectGraduateRequestById(GraduateRequest gr){
return graduateRequestDao.selectByPrimaryKey(gr);
}
public int updateGraduateRequestState(GraduateRequest gr){
return graduateRequestDao.updateByPrimaryKeySelective(gr);
}
public int updateGraduateRelationshipByRequestId(GraduateRelationship gr){
return graduateRelationshipDao.updateByGraduateRequestId(gr);
}
public GraduateRelationship selectGraduateRelationByRequestId(GraduateRelationship gr){
return graduateRelationshipDao.selectByRequestId(gr);
}
4、controller层业务逻辑
/**
* 毕业论文申请:
* 根据teacherID加载所有毕业论文申请
* 状态不包括未提交
* @param request
* @return
*/
@RequestMapping("/loadGraduatePaperByTeacherId")
@Transactional(rollbackFor = {RuntimeException.class, Error.class})
public Result loadGraduatePaperByTeacherId(@RequestBody Map<String, Object> request) {
// Integer tea_id = (int) request.get("tea_id");
Integer tea_id = Integer.valueOf(request.get("tea_id").toString());
List<String> state = Arrays.asList("审核中", "审核成功", "审核失败");
List<String> kind = Arrays.asList("notExamineInfo", "passInfo", "forbidInfo");
HashMap<String,ArrayList> state_request = new HashMap<>();
GraduatePaper apply = new GraduatePaper();
apply.setTeaId(tea_id);
for(int j = 0 ; j < state.size() ; j++){
ArrayList fullList = new ArrayList();
apply.setState(state.get(j));
List<GraduatePaper> origin_request = teacherService.loadGraduatePaperByTeacherIdAndState(apply);
for(int i = 0;i < origin_request.size();i++){
LinkedHashMap<String,Object> full_request = new LinkedHashMap<>();
GraduatePaper gr = origin_request.get(i);
Student stu = teacherService.selectStudentByPrimaryKey(gr.getStuId());
full_request.put("stuName",stu.getStuName());
full_request.put("GraduatePaper",gr);
fullList.add(full_request);
}
state_request.put(kind.get(j),fullList);
}
return Result.succ(state_request);
}
/**
* 外审论文审核:
* 教师对申请状态为审核中的申请进行审核
* 状态可更改为审核成功or审核失败
* 同时修改graduateRelationship表
* @param request
* @return
*/
@RequestMapping("/updateGraduatePaperStateById")
@Transactional(rollbackFor = {RuntimeException.class, Error.class})
public Result updateGraduatePaperStateById(@RequestBody Map<String, Object> request){
Integer apply_id = (int) request.get("apply_id");
String state = (String) request.get("state");
GraduatePaper gr = new GraduatePaper();
gr.setGrapaperApplyId(apply_id);
if(teacherService.selectGraduatePaperById(gr) == null){
return Result.fail("不存在毕业申请信息");
}
gr = teacherService.selectGraduatePaperById(gr);
GraduateRelationship ship = new GraduateRelationship();
ship.setGrapaperApplyId(apply_id);
ship = teacherService.selectGraduateRelationByGraduatePaperId(ship);
if(ship==null){
return Result.fail("不存在毕业关系信息");
}
gr.setState(state);
if(state.equals("审核成功")){
ship.setState("毕业论文审核成功");
if(teacherService.updateGraduatePaperState(gr)==1&&teacherService.updateGraduateRelationByGraduatePaperId(ship)==1){
return Result.succ("操作成功1!");
}else{
return Result.fail("操作失败!");
}
}else if(state.equals("审核失败")){
ship.setState("毕业论文审核失败");
if(teacherService.updateGraduatePaperState(gr)==1&&teacherService.updateGraduateRelationByGraduatePaperId(ship)==1){
return Result.succ("操作成功2!");
}else{
return Result.fail("操作失败!");
}
}else if(state.equals("取消审核")){
gr.setState("未提交");
ship.setState("毕业论文未提交");
if(teacherService.updateGraduatePaperState(gr)==1&&teacherService.updateGraduateRelationByGraduatePaperId(ship)==1){
return Result.succ("操作成功2!");
}else{
return Result.fail("操作失败!");
}
}else{
return Result.succ("参数不匹配!");
}
}