parent
f466eba1d8
commit
9eff617749
65 changed files with 1912 additions and 321 deletions
@ -0,0 +1,55 @@ |
|||||||
|
package com.msdw.tms.api; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.AchievementVo; |
||||||
|
import com.msdw.tms.entity.vo.SearchAchievementVo; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import io.swagger.annotations.ApiParam; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Api(value = "成绩管理",tags = "成绩管理") |
||||||
|
public interface AchievementManagementApi { |
||||||
|
|
||||||
|
@ApiOperation(value = "川大新增实验记录",notes = "川大新增实验记录") |
||||||
|
R addReport(AchievementVo vo); |
||||||
|
|
||||||
|
@ApiOperation(value = "查询实验记录",notes = "查询实验记录") |
||||||
|
R queryReport(@ApiParam(value = "实验报告主键id",required = true) Integer reportId); |
||||||
|
|
||||||
|
// @ApiOperation(value = "直接修改实验记录分数",notes = "直接修改实验记录分数")
|
||||||
|
// R updateScore(@ApiParam(value = "recordid和score") ProjectRecordEntity entity);
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除实验报告",notes = "根据实验记录主键reportId和实验报告主键recordId删除实验报告") |
||||||
|
R deleteReport(@ApiParam(value = "实验记录主键reportId(此处为ids集合)",required = true) AchievementManagementVo vo); |
||||||
|
|
||||||
|
@ApiOperation(value = "班级实验报告列表查询",notes = "班级实验报告列表查询") |
||||||
|
R queryEvaluationReport(@ApiParam(value = "搜索内容(学校名称/学生姓名)",required = false) String searchContant, |
||||||
|
@ApiParam(value = "项目",required = true) Integer projectId, |
||||||
|
@ApiParam(value = "当前页码",required = true) Integer page, |
||||||
|
@ApiParam(value = "每页显示数据量",required = true) Integer size); |
||||||
|
|
||||||
|
@ApiOperation(value = "班级实验成绩导出",notes = "班级实验成绩导出") |
||||||
|
void exportAchievement(HttpServletResponse response, @ApiParam(value = "实验记录集合recordId(此处为ids字符串(1,2,3))")String ids) throws Exception; |
||||||
|
|
||||||
|
@ApiOperation(value = "成绩管理列表",notes = "成绩管理列表筛选查询") |
||||||
|
R queryAchievement(@ApiParam(value = "平台id",required = false) Integer systemId, |
||||||
|
@ApiParam(value = "项目类型",required = false) Integer projectPermissions, |
||||||
|
@ApiParam(value = "搜索内容",required = false) String searchContant, |
||||||
|
@ApiParam(value = "开始时间",required = false) String startingtime, |
||||||
|
@ApiParam(value = "结束时间",required = false) String endtime, |
||||||
|
@ApiParam(value = "最近几月",required = false) Integer month); |
||||||
|
|
||||||
|
@ApiOperation(value = "修改教师评语",notes = "修改教师评语:评语comment和实验报告主键reportId") |
||||||
|
R updateComment(@ApiParam(value = "评语comment和实验报告主键reportId",required = true) ExperimentalReportEntity entity); |
||||||
|
|
||||||
|
@ApiOperation(value = "发布成绩",notes = "发布成绩--修改教师签名") |
||||||
|
R updateSignatrue(@ApiParam(value = "实验报告主键reportId+是否使用教师签名isSignature+教师签名id signatureId") ExperimentalReportEntity entity); |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package com.msdw.tms.api; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.CommentEntity; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiImplicitParam; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import io.swagger.annotations.ApiParam; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
|
||||||
|
@Api(value = "教师评语",tags = "教师评语") |
||||||
|
public interface CommentApi { |
||||||
|
@ApiOperation(value = "添加老师评语",notes = "添加老师评语") |
||||||
|
R addComment(@ApiParam(value = "老师评语comment和评级level") CommentEntity entity); |
||||||
|
|
||||||
|
@ApiOperation(value = "修改老师评语",notes = "根据主键id修改评语") |
||||||
|
R updateComment(@ApiParam(value = "主键id+老师评语comment+评级level") CommentEntity entity); |
||||||
|
|
||||||
|
@ApiOperation(value ="查询所有评语",notes = "查询所有评语") |
||||||
|
R queryComment(); |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package com.msdw.tms.api; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.SignatureEntity; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import io.swagger.annotations.ApiParam; |
||||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
@Api(value = "老师签名照", tags = "老师签名照") |
||||||
|
public interface SignatureApi { |
||||||
|
|
||||||
|
@ApiOperation(value = "上传老师签名照",notes = "上传老师签名照") |
||||||
|
R uploadSignature(MultipartFile file,@ApiParam(value = "用户id",required = true) Integer userId) throws IOException; |
||||||
|
|
||||||
|
@ApiOperation(value = "查询老师签名照",notes = "查询老师签名照") |
||||||
|
R querySignature(@ApiParam(value = "用户id",required = true) Integer userId); |
||||||
|
|
||||||
|
@ApiOperation(value = "删除教师签名照",notes = "根据主键id删除教师签名照") |
||||||
|
R daleteSignature(@ApiParam(value = "签名名称signatureName和主键id",required = true) SignatureEntity entity); |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
package com.msdw.tms.config; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
public class PageResult implements Serializable { |
||||||
|
|
||||||
|
// 总记录数
|
||||||
|
private Long total; |
||||||
|
// 总记录
|
||||||
|
private List<?> rows; |
||||||
|
private int totalPages; |
||||||
|
|
||||||
|
public PageResult(Long total, List<?> rows, int totalPages) { |
||||||
|
this.total = total; |
||||||
|
this.rows = rows; |
||||||
|
this.totalPages = totalPages; |
||||||
|
} |
||||||
|
|
||||||
|
public int getTotalPages() { |
||||||
|
return totalPages; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void setTotalPages(int totalPages) { |
||||||
|
this.totalPages = totalPages; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public Long getTotal() { |
||||||
|
return total; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTotal(Long total) { |
||||||
|
this.total = total; |
||||||
|
} |
||||||
|
|
||||||
|
public List<?> getRows() { |
||||||
|
return rows; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRows(List<?> rows) { |
||||||
|
this.rows = rows; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return "PageResult{" + |
||||||
|
"total=" + total + |
||||||
|
", rows=" + rows + |
||||||
|
", totalPages=" + totalPages + |
||||||
|
'}'; |
||||||
|
} |
||||||
|
} |
@ -1,33 +1,14 @@ |
|||||||
package com.msdw.tms.config; |
package com.msdw.tms.config; |
||||||
|
|
||||||
import com.msdw.tms.config.quartz.CheckCodeQuartz; |
//import com.msdw.tms.config.quartz.CheckCodeQuartz;
|
||||||
import com.msdw.tms.config.quartz.TimeOutQuartz; |
import com.msdw.tms.config.quartz.TimeOutQuartz; |
||||||
import org.quartz.*; |
import org.quartz.*; |
||||||
import org.springframework.context.annotation.Bean; |
import org.springframework.context.annotation.Bean; |
||||||
import org.springframework.context.annotation.Configuration; |
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
@Configuration |
@Configuration |
||||||
public class CheckCodeQuartzConfig { |
public class QuartzConfig { |
||||||
//定义任务详情
|
|
||||||
@Bean |
|
||||||
public JobDetail orderjobDetail() { |
|
||||||
return JobBuilder |
|
||||||
.newJob(CheckCodeQuartz.class) |
|
||||||
.withIdentity("checkCodeQuartz") |
|
||||||
.storeDurably() |
|
||||||
.build(); |
|
||||||
} |
|
||||||
//定义触发器
|
|
||||||
@Bean |
|
||||||
public Trigger orderTrigger() { |
|
||||||
CronScheduleBuilder scheduleBuilder |
|
||||||
= CronScheduleBuilder.cronSchedule("0 0 18 * * ? "); //时间表达式,每天的18点执行任务
|
|
||||||
return TriggerBuilder |
|
||||||
.newTrigger() |
|
||||||
.forJob(orderjobDetail()) |
|
||||||
.withIdentity("checkCodeQuartz") |
|
||||||
.withSchedule(scheduleBuilder).build(); |
|
||||||
} |
|
||||||
//定义任务详情
|
//定义任务详情
|
||||||
@Bean |
@Bean |
||||||
public JobDetail timeOutJob() { |
public JobDetail timeOutJob() { |
@ -1,25 +0,0 @@ |
|||||||
package com.msdw.tms.config.quartz; |
|
||||||
|
|
||||||
import com.msdw.tms.service.UserService; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.quartz.Job; |
|
||||||
import org.quartz.JobExecutionContext; |
|
||||||
import org.quartz.JobExecutionException; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Component; |
|
||||||
|
|
||||||
@Slf4j |
|
||||||
@Component |
|
||||||
public class CheckCodeQuartz implements Job { |
|
||||||
|
|
||||||
@Autowired |
|
||||||
private UserService userService; |
|
||||||
|
|
||||||
@Override |
|
||||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { |
|
||||||
boolean clean = userService.cleanUp(); |
|
||||||
log.info("清理过期验证码"); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,13 +1,131 @@ |
|||||||
package com.msdw.tms.controller; |
package com.msdw.tms.controller; |
||||||
|
|
||||||
|
import com.msdw.tms.api.AchievementManagementApi; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.ProjectRecordEntity; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.AchievementVo; |
||||||
import com.msdw.tms.service.AchievementManagementService; |
import com.msdw.tms.service.AchievementManagementService; |
||||||
|
import com.msdw.tms.service.ProjectRecordService; |
||||||
import org.springframework.beans.factory.annotation.Autowired; |
import org.springframework.beans.factory.annotation.Autowired; |
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
import org.springframework.transaction.annotation.Transactional; |
||||||
import org.springframework.web.bind.annotation.RestController; |
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* 成绩管理 |
||||||
|
*/ |
||||||
@RestController |
@RestController |
||||||
@RequestMapping("/Achievement") |
@RequestMapping("/Achievement") |
||||||
public class AchievementManagementController { |
public class AchievementManagementController implements AchievementManagementApi { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private AchievementManagementService service; |
||||||
|
|
||||||
@Autowired |
@Autowired |
||||||
private AchievementManagementService achievementManagementService; |
private ProjectRecordService projectRecordService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 提交实验结果--川大 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@PostMapping("/addReport") |
||||||
|
public R addReport(@RequestBody AchievementVo vo){ |
||||||
|
R result = service.addReport(vo); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询实验记录 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@GetMapping("/queryReport") |
||||||
|
public R queryReport(@RequestParam(required = true) Integer reportId){ |
||||||
|
R result = service.queryReport(reportId); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
//直接修改实验记录分数
|
||||||
|
// @Override
|
||||||
|
@Transactional |
||||||
|
@PostMapping("/updateReport") |
||||||
|
public R updateScore(@RequestBody ProjectRecordEntity entity){ |
||||||
|
ProjectRecordEntity vo = new ProjectRecordEntity() |
||||||
|
.setRecordid(entity.getRecordid()).setScore(entity.getScore()); |
||||||
|
projectRecordService.updateScore(vo); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 需求:删除实验记录====管理端删除,但是学生端仍需保留 |
||||||
|
* 将isdel属性设置为0 |
||||||
|
* @param vo (recordid 、reportId) |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@PostMapping("/deleteReport") |
||||||
|
public R deleteReport(@RequestBody AchievementManagementVo vo){ |
||||||
|
R result = service.deleteReport(vo); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 班级实验报告列表查询 |
||||||
|
* @param searchContant |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@GetMapping("/queryEvaluationReport") |
||||||
|
public R queryEvaluationReport(@RequestParam(required = false) String searchContant, |
||||||
|
@RequestParam(required = true) Integer projectId, |
||||||
|
@RequestParam(required = true) Integer page, |
||||||
|
@RequestParam(required = true) Integer size){ |
||||||
|
R result = service.queryEvaluationReport(searchContant,projectId,page,size); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 班级实验成绩导出 |
||||||
|
* @param response |
||||||
|
* @param ids (ids:recordId) |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@GetMapping("/exportAchievement") |
||||||
|
public void exportAchievement(HttpServletResponse response, @RequestParam String ids) throws Exception { |
||||||
|
service.exportAchievement(response,ids);//SearchAchievementVo vo
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@GetMapping("/queryAchievement") |
||||||
|
public R queryAchievement(@RequestParam(required = false) Integer systemId, |
||||||
|
@RequestParam(required = false) Integer projectPermissions, |
||||||
|
@RequestParam(required = false) String searchContant, |
||||||
|
@RequestParam(required = false) String startingtime, |
||||||
|
@RequestParam(required = false) String endtime, |
||||||
|
@RequestParam(required = false) Integer month){ |
||||||
|
R result = service.queryAchievement(systemId,projectPermissions,searchContant,startingtime,endtime,month); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改评语 |
||||||
|
* @param entity |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@PostMapping("/updateComment") |
||||||
|
public R updateComment(@RequestBody ExperimentalReportEntity entity){ |
||||||
|
R result = service.updateComment(entity); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@PostMapping("/release") |
||||||
|
public R updateSignatrue(@RequestBody ExperimentalReportEntity entity){ |
||||||
|
service.updateSignatrue(entity); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,50 @@ |
|||||||
|
package com.msdw.tms.controller; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.msdw.tms.api.CommentApi; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.CommentEntity; |
||||||
|
import com.msdw.tms.service.CommentService; |
||||||
|
import com.sun.xml.bind.v2.model.core.ID; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 此类为老师评语 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@RequestMapping("/comment") |
||||||
|
public class Commentcontroller implements CommentApi { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private CommentService commentService; |
||||||
|
|
||||||
|
@Override |
||||||
|
@PostMapping("/addComment") |
||||||
|
@Transactional |
||||||
|
public R addComment(@RequestBody CommentEntity entity){ |
||||||
|
commentService.save(entity); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
@PostMapping("/updateComment") |
||||||
|
public R updateComment(@RequestBody CommentEntity entity){ |
||||||
|
if (entity.getId()==null){ |
||||||
|
return R.error("id不能为空!!!"); |
||||||
|
} |
||||||
|
commentService.updateById(entity); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@GetMapping("/queryComment") |
||||||
|
public R queryComment(){ |
||||||
|
List<CommentEntity> result = commentService.list(); |
||||||
|
return R.ok().put("data",result); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
package com.msdw.tms.controller; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.msdw.tms.api.SignatureApi; |
||||||
|
import com.msdw.tms.common.utils.FilesResult; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.SignatureEntity; |
||||||
|
import com.msdw.tms.service.AliyunOssService; |
||||||
|
import com.msdw.tms.service.SignatureService; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 此类为老师签名 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@RequestMapping("/signature") |
||||||
|
public class SignatureController implements SignatureApi { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private SignatureService signatureService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private AliyunOssService ossService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 上传老师签名照 |
||||||
|
* @param file 文件 |
||||||
|
* @param userId 用户id |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@PostMapping("/uploadSignature") |
||||||
|
public R uploadSignature(@RequestParam MultipartFile file, @RequestParam Integer userId) throws IOException { |
||||||
|
R result = signatureService.uploadSignature(file,userId); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询老师签名照 |
||||||
|
* @param userId |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@GetMapping("/querySignature") |
||||||
|
public R querySignature(@RequestParam Integer userId){ |
||||||
|
R result = signatureService.querySignature(userId); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除老师签名照 |
||||||
|
* @param entity |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
@PostMapping("/daleteSignature") |
||||||
|
public R daleteSignature(@RequestBody SignatureEntity entity){ |
||||||
|
R result = signatureService.daleteSignature(entity); |
||||||
|
|
||||||
|
return result; |
||||||
|
} |
||||||
|
} |
@ -1,7 +1,50 @@ |
|||||||
package com.msdw.tms.dao; |
package com.msdw.tms.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.request.AchievementImportRequest; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.AchievementVo; |
||||||
|
import com.msdw.tms.entity.vo.SearchAchievementVo; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
import org.apache.ibatis.annotations.Param; |
||||||
|
import org.apache.poi.ss.formula.functions.T; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
@Mapper |
@Mapper |
||||||
public interface AchievementManagementDao { |
public interface AchievementManagementDao extends BaseMapper<ExperimentalReportEntity> { |
||||||
|
|
||||||
|
void addReport(AchievementVo entity); |
||||||
|
|
||||||
|
AchievementManagementVo queryReport(Integer reportId); |
||||||
|
|
||||||
|
void deleteReport(AchievementManagementVo vo); |
||||||
|
|
||||||
|
IPage<AchievementManagementVo> queryEvaluationReport(Page<T> tPage, String searchContant, Integer projectId); |
||||||
|
|
||||||
|
List<AchievementImportRequest> queryAchievement(@Param("ids") List<Integer> ids); |
||||||
|
|
||||||
|
List<AchievementManagementVo> queryFictitiousRecord(Integer systemId,String searchContant, String startingtime, String endtime, Integer month,List<Integer> projectIds); |
||||||
|
|
||||||
|
List<AchievementManagementVo> queryEducationRecord(Integer systemId, String searchContant, String startingtime, String endtime, Integer month,List<Integer> projectIds); |
||||||
|
|
||||||
|
//qiyong
|
||||||
|
List<AchievementManagementVo> queryFictitiousReport(String searchContant, Integer projectId); |
||||||
|
|
||||||
|
List<Integer> countEducationProjectId(); |
||||||
|
|
||||||
|
List<Integer> countFictitiousProjectId(); |
||||||
|
|
||||||
|
|
||||||
|
String queryEvaluationName(Integer projectId); |
||||||
|
|
||||||
|
void updateComment(ExperimentalReportEntity entity); |
||||||
|
|
||||||
|
List<AchievementManagementVo> queryPythonTest(Integer eventId); |
||||||
|
|
||||||
|
void updateSignatrue(Integer isSignature,Integer signatureId,Integer reportId); |
||||||
} |
} |
||||||
|
@ -0,0 +1,9 @@ |
|||||||
|
package com.msdw.tms.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.msdw.tms.entity.CommentEntity; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
@Mapper |
||||||
|
public interface CommentDao extends BaseMapper<CommentEntity> { |
||||||
|
} |
@ -0,0 +1,10 @@ |
|||||||
|
package com.msdw.tms.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.msdw.tms.entity.SignatureEntity; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
@Mapper |
||||||
|
public interface SignatureDao extends BaseMapper<SignatureEntity> { |
||||||
|
String queryRoleIds(Integer userId); |
||||||
|
} |
@ -1,14 +0,0 @@ |
|||||||
package com.msdw.tms.entity; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
import lombok.experimental.Accessors; |
|
||||||
|
|
||||||
/** |
|
||||||
* 成绩管理/川大 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@Accessors(chain = true) |
|
||||||
public class AchievementManagementEntity { |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.msdw.tms.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 老师评语 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
@TableName("tms_comment") |
||||||
|
public class CommentEntity { |
||||||
|
|
||||||
|
//主键id
|
||||||
|
private Integer id; |
||||||
|
//评语
|
||||||
|
private String comment; |
||||||
|
//评语层级id
|
||||||
|
private Integer level; |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package com.msdw.tms.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 老师签名 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
@TableName("tms_signature") |
||||||
|
public class SignatureEntity { |
||||||
|
//主键id
|
||||||
|
private Integer id; |
||||||
|
//老师签名 存放路径
|
||||||
|
private String signatureUrl; |
||||||
|
//签名名称
|
||||||
|
private String signatureName; |
||||||
|
//绑定用户id
|
||||||
|
private Integer userId; |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
package com.msdw.tms.entity.request; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.poi.ExcelAttribute; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 班级实验成绩导出模板数据 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class AchievementImportRequest { |
||||||
|
|
||||||
|
//学校
|
||||||
|
@ExcelAttribute(sort = 0) |
||||||
|
private String schoolName; |
||||||
|
|
||||||
|
//实验班级
|
||||||
|
@ExcelAttribute(sort = 1) |
||||||
|
private String experimentalClassName; |
||||||
|
|
||||||
|
//学生姓名
|
||||||
|
@ExcelAttribute(sort = 2) |
||||||
|
private String userName; |
||||||
|
|
||||||
|
//学号
|
||||||
|
@ExcelAttribute(sort = 3) |
||||||
|
private String workNumber; |
||||||
|
|
||||||
|
//分数
|
||||||
|
@ExcelAttribute(sort = 4) |
||||||
|
private String score; |
||||||
|
|
||||||
|
//提交时间
|
||||||
|
@ExcelAttribute(sort = 5) |
||||||
|
private String submitTime; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,86 @@ |
|||||||
|
package com.msdw.tms.entity.vo; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.poi.ExcelAttribute; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.ProjectRecordEntity; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class AchievementManagementVo extends ExperimentalReportEntity { |
||||||
|
|
||||||
|
//=========================================================== 返回参数
|
||||||
|
//
|
||||||
|
private ProjectRecordEntity entity; |
||||||
|
|
||||||
|
//学校
|
||||||
|
private String schoolName; |
||||||
|
|
||||||
|
//实验班级
|
||||||
|
private String experimentalClassName; |
||||||
|
|
||||||
|
//学生姓名
|
||||||
|
private String userName; |
||||||
|
|
||||||
|
//学号
|
||||||
|
private String workNumber; |
||||||
|
|
||||||
|
//分数
|
||||||
|
private String score; |
||||||
|
|
||||||
|
//提交时间
|
||||||
|
private String submitTime; |
||||||
|
|
||||||
|
//=========================================================== 返回参数
|
||||||
|
//项目名称
|
||||||
|
private String projectName; |
||||||
|
|
||||||
|
//分类
|
||||||
|
private Integer evaluation; |
||||||
|
|
||||||
|
//成绩报告数量
|
||||||
|
private Integer resportNumber; |
||||||
|
|
||||||
|
//创建时间
|
||||||
|
private String creationTime; |
||||||
|
|
||||||
|
//类型(1虚拟仿真,2教学实验)
|
||||||
|
private Integer type; |
||||||
|
//
|
||||||
|
private Integer projectPermissions; |
||||||
|
//创建时间
|
||||||
|
private String foundTime; |
||||||
|
|
||||||
|
//实验记录id(tms_experimental_report主键)
|
||||||
|
private Integer recordId; |
||||||
|
|
||||||
|
//老师签名 存放路径
|
||||||
|
private String signatureUrl; |
||||||
|
//签名名称
|
||||||
|
private String signatureName; |
||||||
|
//评语
|
||||||
|
private String comment; |
||||||
|
//评语层级id
|
||||||
|
private Integer level; |
||||||
|
//成绩报告数量
|
||||||
|
private Integer reportNumber; |
||||||
|
//指导老师姓名
|
||||||
|
private String teacherName; |
||||||
|
//实验名称
|
||||||
|
private String evaluationName; |
||||||
|
//平台id
|
||||||
|
private Integer systemId; |
||||||
|
|
||||||
|
//=========================================================== python实验数据
|
||||||
|
//判分点id
|
||||||
|
private Integer codeId; |
||||||
|
//判分点-得分
|
||||||
|
private Integer codeScore; |
||||||
|
//学生答案
|
||||||
|
private String userAnswer; |
||||||
|
//参考答案
|
||||||
|
private String answer; |
||||||
|
//判分点名称
|
||||||
|
private String judgmentPointsName; |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package com.msdw.tms.entity.vo; |
||||||
|
|
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.ProjectRecordEntity; |
||||||
|
import com.msdw.tms.entity.RecordVo; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class AchievementVo extends ExperimentalReportEntity { |
||||||
|
|
||||||
|
private RecordVo entity; |
||||||
|
|
||||||
|
//指导老师姓名
|
||||||
|
private String teacherName; |
||||||
|
|
||||||
|
//学生姓名
|
||||||
|
private String userName; |
||||||
|
|
||||||
|
//学号
|
||||||
|
private String workNumber; |
||||||
|
//
|
||||||
|
private Integer eventId; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
package com.msdw.tms.entity.vo; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class EvaluationDataVo { |
||||||
|
//分数
|
||||||
|
private Integer score; |
||||||
|
//判分点名称
|
||||||
|
private String judgmentPointsName; |
||||||
|
//学生答案
|
||||||
|
private String userAnswer; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.msdw.tms.entity.vo; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class ExperimentalTeachingVO { |
||||||
|
//发布类型
|
||||||
|
private Integer type; |
||||||
|
//启动时间
|
||||||
|
private String startTime; |
||||||
|
//结束时间
|
||||||
|
private String stopTime; |
||||||
|
//月份
|
||||||
|
private Integer month; |
||||||
|
//搜索内容
|
||||||
|
private String searchContent; |
||||||
|
//状态
|
||||||
|
private Integer status; |
||||||
|
//学校id
|
||||||
|
private Integer schoolId; |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
package com.msdw.tms.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* |
||||||
|
* @author |
||||||
|
* @email |
||||||
|
* @date 2020-08-19 16:07:02 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class RecordVo implements Serializable { |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
/** |
||||||
|
* 记录id |
||||||
|
*/ |
||||||
|
private Integer recordid; |
||||||
|
/** |
||||||
|
* 用户id |
||||||
|
*/ |
||||||
|
private Integer userid; |
||||||
|
/** |
||||||
|
* 实验项目id |
||||||
|
*/ |
||||||
|
private Integer projectid; |
||||||
|
/** |
||||||
|
* 得分 |
||||||
|
*/ |
||||||
|
private Integer score; |
||||||
|
/** |
||||||
|
* 记录状态 |
||||||
|
*/ |
||||||
|
private Integer recordstate; |
||||||
|
/** |
||||||
|
* 起始时间 |
||||||
|
*/ |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private Date startingtime; |
||||||
|
/** |
||||||
|
* 结束时间 |
||||||
|
*/ |
||||||
|
private Date endtime; |
||||||
|
/** |
||||||
|
* 耗时 |
||||||
|
*/ |
||||||
|
private Integer timeSum; |
||||||
|
/** |
||||||
|
* 提交时间 |
||||||
|
*/ |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private Date submittime; |
||||||
|
/** |
||||||
|
* 删除(0未删除 1已删除) |
||||||
|
*/ |
||||||
|
@TableLogic(value = "0",delval = "1") |
||||||
|
private Integer isdel; |
||||||
|
|
||||||
|
private Integer eventId; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package com.msdw.tms.entity.vo; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Data |
||||||
|
@Accessors(chain = true) |
||||||
|
public class SearchAchievementVo { |
||||||
|
|
||||||
|
//
|
||||||
|
private List<Integer> ids; |
||||||
|
|
||||||
|
//项目id
|
||||||
|
private Integer projectId; |
||||||
|
|
||||||
|
} |
@ -1,4 +1,31 @@ |
|||||||
package com.msdw.tms.service; |
package com.msdw.tms.service; |
||||||
|
|
||||||
public interface AchievementManagementService { |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.AchievementVo; |
||||||
|
import com.msdw.tms.entity.vo.SearchAchievementVo; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
public interface AchievementManagementService extends IService<ExperimentalReportEntity> { |
||||||
|
|
||||||
|
R addReport(AchievementVo entity); |
||||||
|
|
||||||
|
R queryReport(Integer reportId ); |
||||||
|
|
||||||
|
R deleteReport(AchievementManagementVo vo); |
||||||
|
|
||||||
|
R queryEvaluationReport(String searchContant,Integer projectId,Integer page,Integer size); |
||||||
|
|
||||||
|
void exportAchievement(HttpServletResponse response, String vo) throws Exception; |
||||||
|
|
||||||
|
R queryAchievement(Integer systemId,Integer projectPermissions, String searchContant, String startingtime, String endtime, Integer month); |
||||||
|
|
||||||
|
R updateComment(ExperimentalReportEntity entity); |
||||||
|
|
||||||
|
void updateSignatrue(ExperimentalReportEntity entity); |
||||||
} |
} |
||||||
|
@ -0,0 +1,7 @@ |
|||||||
|
package com.msdw.tms.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.msdw.tms.entity.CommentEntity; |
||||||
|
|
||||||
|
public interface CommentService extends IService<CommentEntity> { |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package com.msdw.tms.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.msdw.tms.common.utils.FilesResult; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.entity.SignatureEntity; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
public interface SignatureService extends IService<SignatureEntity> { |
||||||
|
|
||||||
|
R uploadSignature(MultipartFile file, Integer userId) throws IOException; |
||||||
|
|
||||||
|
R querySignature(Integer userId); |
||||||
|
|
||||||
|
R daleteSignature(SignatureEntity entity); |
||||||
|
} |
@ -1,14 +1,211 @@ |
|||||||
package com.msdw.tms.service.impl; |
package com.msdw.tms.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.msdw.tms.common.utils.Constant; |
||||||
|
import com.msdw.tms.common.utils.PageUtils; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.common.utils.poi.ExcelExportUtil; |
||||||
import com.msdw.tms.dao.AchievementManagementDao; |
import com.msdw.tms.dao.AchievementManagementDao; |
||||||
|
import com.msdw.tms.dao.ExperimentalTeachingDao; |
||||||
|
import com.msdw.tms.dao.ProjectRecordDao; |
||||||
|
import com.msdw.tms.dao.UserInfoDao; |
||||||
|
import com.msdw.tms.entity.ExperimentalReportEntity; |
||||||
|
import com.msdw.tms.entity.ProjectRecordEntity; |
||||||
|
import com.msdw.tms.entity.RecordVo; |
||||||
|
import com.msdw.tms.entity.StudentEntity; |
||||||
|
import com.msdw.tms.entity.request.AchievementImportRequest; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.AchievementVo; |
||||||
import com.msdw.tms.service.AchievementManagementService; |
import com.msdw.tms.service.AchievementManagementService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.poi.ss.formula.functions.T; |
||||||
import org.springframework.beans.factory.annotation.Autowired; |
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.core.io.ClassPathResource; |
||||||
import org.springframework.stereotype.Service; |
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.util.*; |
||||||
|
@Slf4j |
||||||
@Service |
@Service |
||||||
public class AchievementManagementServiceImpl implements AchievementManagementService { |
public class AchievementManagementServiceImpl extends ServiceImpl<AchievementManagementDao, ExperimentalReportEntity> implements AchievementManagementService { |
||||||
|
|
||||||
@Autowired |
@Autowired |
||||||
private AchievementManagementDao achievementManagementDao; |
private AchievementManagementDao achievementManagementDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ProjectRecordDao projectRecordDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ExperimentalTeachingDao experimentalTeachingDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private UserInfoDao userInfoDao; |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public R addReport(AchievementVo entity) { |
||||||
|
RecordVo record = entity.getEntity(); |
||||||
|
//1.信息校验
|
||||||
|
String userName = entity.getUserName(); |
||||||
|
Integer userid = record.getUserid(); |
||||||
|
String teacherName = entity.getTeacherName(); |
||||||
|
//获取学生id和用户id
|
||||||
|
StudentEntity student = userInfoDao.queryStudentId(userName,userid); |
||||||
|
//获取学生姓名
|
||||||
|
List<String> studentName = userInfoDao.queryStudentName(userid); |
||||||
|
if (studentName.size()==0){ |
||||||
|
return R.error("不存在的学生姓名"); |
||||||
|
}else if (student==null){ |
||||||
|
log.info("学生姓名和用户id不匹配!!!"); |
||||||
|
return R.error("错误的个人信息!"); |
||||||
|
} |
||||||
|
|
||||||
|
//2.根据实验得分 自动获取评语信息
|
||||||
|
|
||||||
|
//3.将评语对应的commentId放入entity以便一齐存入实验报告表
|
||||||
|
//(无判分系统暂写commentId=4,score=100)
|
||||||
|
entity.setCommentId(4); |
||||||
|
record.setScore(100); |
||||||
|
//4.添加实验记录表信息
|
||||||
|
|
||||||
|
projectRecordDao.addReport(record);//保存至tms_project_record并返回主键
|
||||||
|
//5.添加实验报告表信息
|
||||||
|
entity.setStudentId(student.getStudentId()).setEventId(record.getEventId()); |
||||||
|
achievementManagementDao.addReport(entity); |
||||||
|
|
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public R queryReport(Integer reportId) { |
||||||
|
HashMap<String, Object> map = new HashMap<>(); |
||||||
|
AchievementManagementVo report = achievementManagementDao.queryReport(reportId); |
||||||
|
Integer eventId = report.getEventId(); |
||||||
|
ProjectRecordEntity record = projectRecordDao.queryReport(eventId); |
||||||
|
String userName = userInfoDao.queryUserReport(record.getUserid()); |
||||||
|
if (report.getProjectId()!=null){ |
||||||
|
String evaluationName = achievementManagementDao.queryEvaluationName(report.getProjectId()); |
||||||
|
report.setEvaluationName(evaluationName); |
||||||
|
} |
||||||
|
//python实验数据
|
||||||
|
Integer systemId = report.getSystemId(); |
||||||
|
if (systemId==1|systemId==4|systemId==5) { |
||||||
|
List<AchievementManagementVo> data = achievementManagementDao.queryPythonTest(eventId); |
||||||
|
map.put("data", data); |
||||||
|
} |
||||||
|
report.setUserName(userName); |
||||||
|
map.put("report",report); |
||||||
|
map.put("record",record); |
||||||
|
return R.ok().put("data",map); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public R deleteReport(AchievementManagementVo vo) { |
||||||
|
achievementManagementDao.deleteReport(vo); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public R queryEvaluationReport(String searchContant,Integer projectId,Integer page,Integer size) { |
||||||
|
Page<T> tPage = new Page<>(page,size); |
||||||
|
IPage<AchievementManagementVo> data = achievementManagementDao.queryEvaluationReport(tPage,searchContant,projectId); |
||||||
|
PageUtils result = new PageUtils(data); |
||||||
|
|
||||||
|
return R.ok().put("data",result); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void exportAchievement(HttpServletResponse response, String ids) throws Exception { |
||||||
|
//1.获取数据
|
||||||
|
List<Integer> list = new ArrayList<>(); |
||||||
|
|
||||||
|
String[] split = ids.split(","); |
||||||
|
for (int i = 0;i<split.length;i++){ |
||||||
|
list.add(Integer.parseInt(split[i])); |
||||||
|
} |
||||||
|
List<AchievementImportRequest> achievement = achievementManagementDao.queryAchievement(list); |
||||||
|
|
||||||
|
//2.加载模板流数据
|
||||||
|
ClassPathResource resource = new ClassPathResource("excel-template/川大成绩管理实验记录导出模板.xlsx"); |
||||||
|
InputStream inputStream = resource.getInputStream(); |
||||||
|
|
||||||
|
//3、通过工具类下载文件
|
||||||
|
new ExcelExportUtil(AchievementImportRequest.class, Constant.ROW_INDEX, Constant.STYLE_INDEX). |
||||||
|
export(response, inputStream, achievement, "班级实验成绩.xlsx"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public R queryAchievement(Integer systemId,Integer projectPermissions, String searchContant, String startingtime, |
||||||
|
String endtime, Integer month) { |
||||||
|
try { |
||||||
|
List<AchievementManagementVo> fictitious; |
||||||
|
List<AchievementManagementVo> education; |
||||||
|
List<AchievementManagementVo> vo = new ArrayList<>(); |
||||||
|
List<Integer> educationResult = achievementManagementDao.countEducationProjectId();//获取教学实验的主键id
|
||||||
|
List<Integer> fictitiousResult = achievementManagementDao.countFictitiousProjectId();//获取教学实验的主键id
|
||||||
|
if (projectPermissions==null){projectPermissions=-9999;} |
||||||
|
if (projectPermissions==0){//只查询练习项目
|
||||||
|
fictitious = achievementManagementDao.queryFictitiousRecord(systemId, searchContant, startingtime, endtime, month, fictitiousResult); |
||||||
|
vo = fictitious; |
||||||
|
}else if (projectPermissions==1){//只查询考核项目
|
||||||
|
education = achievementManagementDao.queryEducationRecord(systemId, searchContant, startingtime, endtime, month, educationResult); |
||||||
|
vo = education; |
||||||
|
}else {//查询练习+考核项目
|
||||||
|
if (educationResult.size() == 0) { |
||||||
|
if (fictitiousResult.size() > 0) { |
||||||
|
fictitious = achievementManagementDao.queryFictitiousRecord(systemId, searchContant, startingtime, endtime, month, fictitiousResult); |
||||||
|
vo = fictitious; |
||||||
|
} |
||||||
|
} else { |
||||||
|
education = achievementManagementDao.queryEducationRecord(systemId, searchContant, startingtime, endtime, month, educationResult); |
||||||
|
vo = education; |
||||||
|
if (fictitiousResult.size() > 0) { |
||||||
|
fictitious = achievementManagementDao.queryFictitiousRecord(systemId, searchContant, startingtime, endtime, month, fictitiousResult); |
||||||
|
for (int i = 0; i < fictitious.size(); i++) { |
||||||
|
vo.add(fictitious.get(i)); |
||||||
|
} |
||||||
|
//按创建时间时间排序
|
||||||
|
Collections.sort(vo, new Comparator<AchievementManagementVo>() { |
||||||
|
@Override |
||||||
|
public int compare(AchievementManagementVo o1, AchievementManagementVo o2) { |
||||||
|
int flag = o2.getCreationTime().compareTo(o1.getCreationTime()); |
||||||
|
return flag; |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return R.ok().put("data",vo); |
||||||
|
}catch (RuntimeException e){ |
||||||
|
log.info(e.getMessage()); |
||||||
|
return R.error(500,"系统异常!!!"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public R updateComment(ExperimentalReportEntity entity) { |
||||||
|
|
||||||
|
achievementManagementDao.updateComment(entity); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public void updateSignatrue(ExperimentalReportEntity entity) { |
||||||
|
Integer isSignature = entity.getIsSignature(); |
||||||
|
Integer signatureId = entity.getSignatureId(); |
||||||
|
Integer reportId = entity.getReportId(); |
||||||
|
if (isSignature==1){ |
||||||
|
achievementManagementDao.updateSignatrue(1,signatureId,reportId); |
||||||
|
}else { |
||||||
|
achievementManagementDao.updateSignatrue(0,null,reportId); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
} |
} |
||||||
|
@ -0,0 +1,11 @@ |
|||||||
|
package com.msdw.tms.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.msdw.tms.dao.CommentDao; |
||||||
|
import com.msdw.tms.entity.CommentEntity; |
||||||
|
import com.msdw.tms.service.CommentService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
@Service |
||||||
|
public class CommentServiceImpl extends ServiceImpl<CommentDao, CommentEntity> implements CommentService { |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
package com.msdw.tms.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.msdw.tms.common.exception.ExceptionCast; |
||||||
|
import com.msdw.tms.common.utils.Constant; |
||||||
|
import com.msdw.tms.common.utils.FilesResult; |
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.dao.SignatureDao; |
||||||
|
import com.msdw.tms.dao.UserInfoDao; |
||||||
|
import com.msdw.tms.entity.SignatureEntity; |
||||||
|
import com.msdw.tms.entity.response.CommonCode; |
||||||
|
import com.msdw.tms.entity.vo.StaffVo; |
||||||
|
import com.msdw.tms.service.SignatureService; |
||||||
|
import org.apache.commons.lang.StringUtils; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Service |
||||||
|
public class SignatureServiceImpl extends ServiceImpl<SignatureDao, SignatureEntity> implements SignatureService { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private SignatureDao signatureDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
AliyunOssServiceImpl ossService; |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public R uploadSignature(MultipartFile file, Integer userId) throws IOException { |
||||||
|
String roleIds = signatureDao.queryRoleIds(userId); |
||||||
|
if (roleIds==null){ |
||||||
|
return R.error("不存在的角色"); |
||||||
|
}else if (!roleIds.contains("3")){ |
||||||
|
return R.error("您的身份不是老师,不能进行此操作!"); |
||||||
|
} |
||||||
|
//图片格式校验
|
||||||
|
// String reg = ".+(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png)$";
|
||||||
|
// if (StringUtils.isBlank(file.getOriginalFilename())
|
||||||
|
// || !file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).matches(reg)) {
|
||||||
|
// return R.error("图片格式不对!!!");
|
||||||
|
// }
|
||||||
|
FilesResult result = ossService.uploadFiles(file);//上传图片
|
||||||
|
SignatureEntity entity = new SignatureEntity().setSignatureUrl(result.getFileUrl()).setSignatureName(result.getFileName()).setUserId(userId); |
||||||
|
this.save(entity); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public R querySignature(Integer userId) { |
||||||
|
QueryWrapper<SignatureEntity> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("user_id",userId); |
||||||
|
List<SignatureEntity> entity = signatureDao.selectList(queryWrapper); |
||||||
|
return R.ok().put("data",entity); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional |
||||||
|
public R daleteSignature(SignatureEntity entity) { |
||||||
|
Integer id = entity.getId(); |
||||||
|
SignatureEntity result = this.getById(id); |
||||||
|
if (result==null){ |
||||||
|
return R.error("不存在的图片"); |
||||||
|
} |
||||||
|
ossService.deleteFile(result.getSignatureName()); |
||||||
|
this.removeById(id); |
||||||
|
return R.ok(); |
||||||
|
} |
||||||
|
} |
Binary file not shown.
@ -0,0 +1,20 @@ |
|||||||
|
<?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.msdw.tms.dao.SignatureDao"> |
||||||
|
<resultMap id="signatureHashMap" type="com.msdw.tms.entity.SignatureEntity"> |
||||||
|
<result column="user_id" property="userId"></result> |
||||||
|
<result column="signature_name" property="signatureName"></result> |
||||||
|
<result column="signature_url" property="signatureUrl"></result> |
||||||
|
</resultMap> |
||||||
|
<select id="queryRoleIds" resultType="java.lang.String"> |
||||||
|
SELECT |
||||||
|
roleId |
||||||
|
FROM |
||||||
|
hr_user_info |
||||||
|
WHERE |
||||||
|
userId = #{userId} |
||||||
|
and |
||||||
|
isdel = 0 |
||||||
|
</select> |
||||||
|
</mapper> |
@ -0,0 +1,145 @@ |
|||||||
|
package com.msdw.tms.service; |
||||||
|
|
||||||
|
import com.msdw.tms.common.utils.R; |
||||||
|
import com.msdw.tms.dao.AchievementManagementDao; |
||||||
|
import com.msdw.tms.entity.ProjectEntity; |
||||||
|
import com.msdw.tms.entity.ProjectRecordEntity; |
||||||
|
import com.msdw.tms.entity.request.AchievementImportRequest; |
||||||
|
import com.msdw.tms.entity.vo.AchievementManagementVo; |
||||||
|
import com.msdw.tms.entity.vo.SearchAchievementVo; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.boot.test.context.SpringBootTest; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@SpringBootTest |
||||||
|
public class AchievementManagementTest { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private AchievementManagementService achievementManagementService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ProjectRecordService projectRecordService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
AchievementManagementDao achievementManagementDao; |
||||||
|
|
||||||
|
//测试新增实验记录
|
||||||
|
// @Test
|
||||||
|
// public void addReport(){
|
||||||
|
// AchievementManagementVo vo = new AchievementManagementVo();
|
||||||
|
// ProjectRecordEntity entity = new ProjectRecordEntity();
|
||||||
|
// Date date = new Date();
|
||||||
|
// //用户id
|
||||||
|
// Integer userId = 385;
|
||||||
|
//
|
||||||
|
// entity.setUserid(userId)
|
||||||
|
// .setProjectid(368)
|
||||||
|
// .setScore(100)
|
||||||
|
// .setRecordstate(0)
|
||||||
|
// .setStartingtime(date)
|
||||||
|
// .setEndtime(date)
|
||||||
|
// .setSubmittime(date)
|
||||||
|
// .setTimeSum(0)
|
||||||
|
// .setIsdel(0);
|
||||||
|
// vo.setUserId(userId)
|
||||||
|
// .setEvaluationId(158)
|
||||||
|
// .setExperimentalGoal("目标2")
|
||||||
|
// .setPrinciple("原理2")
|
||||||
|
// .setStep("步骤2")
|
||||||
|
// .setAnalysis("实验分析2")
|
||||||
|
// .setSummarize("实验总结2")
|
||||||
|
// .setImprovement("实验建议2")
|
||||||
|
// .setCommentId(3)
|
||||||
|
// .setTeacherId(178)
|
||||||
|
// .setPeriod("学时")
|
||||||
|
// .setLaboratory("实验室名称2")
|
||||||
|
// .setIsSignature(0)
|
||||||
|
// .setSignatureId(4)
|
||||||
|
// .setIsdel(0);
|
||||||
|
// vo.setEntity(entity);
|
||||||
|
// R r = achievementManagementService.addReport(vo);
|
||||||
|
// System.out.println(r);
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Test |
||||||
|
public void queryReport(){ |
||||||
|
Integer reportId = 4; |
||||||
|
Integer recordId = 100; |
||||||
|
R r = achievementManagementService.queryReport(reportId); |
||||||
|
System.out.println(r); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void updateScore(){ |
||||||
|
ProjectRecordEntity vo = new ProjectRecordEntity(); |
||||||
|
Integer recordId = 100; |
||||||
|
Integer score = 99; |
||||||
|
vo.setRecordid(recordId).setScore(score); |
||||||
|
projectRecordService.updateScore(vo); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void daleteReport(){ |
||||||
|
Integer reportId = 4; |
||||||
|
Integer recordId = 100; |
||||||
|
AchievementManagementVo vo = new AchievementManagementVo(); |
||||||
|
ProjectRecordEntity entity = new ProjectRecordEntity(); |
||||||
|
entity.setRecordid(recordId); |
||||||
|
vo.setReportId(reportId); |
||||||
|
vo.setEntity(entity); |
||||||
|
R r = achievementManagementService.deleteReport(vo); |
||||||
|
System.out.println(r); |
||||||
|
} |
||||||
|
|
||||||
|
//测试查询班级实验成绩列表
|
||||||
|
@Test |
||||||
|
public void queryEvaluationReport(){ |
||||||
|
String searchContant = "michonne"; |
||||||
|
// String searchContant = "";
|
||||||
|
Integer projectId = 368; |
||||||
|
Integer page = 1; |
||||||
|
Integer size = 2; |
||||||
|
R r = achievementManagementService.queryEvaluationReport(searchContant,projectId,page,size); |
||||||
|
System.out.println(r); |
||||||
|
} |
||||||
|
|
||||||
|
//筛选查询-教学实验
|
||||||
|
@Test |
||||||
|
public void queryEvaluationReportByRecordId(){ |
||||||
|
Integer month = 1; |
||||||
|
Integer systemId = 1; |
||||||
|
String searchContent= ""; |
||||||
|
String staingTime = ""; |
||||||
|
String endTime = ""; |
||||||
|
List<Integer> list = achievementManagementDao.countEducationProjectId(); |
||||||
|
List<AchievementManagementVo> result = achievementManagementDao.queryEducationRecord(systemId, searchContent, staingTime, endTime, month, list); |
||||||
|
System.out.println(result); |
||||||
|
} |
||||||
|
//筛选查询-虚拟实验
|
||||||
|
@Test |
||||||
|
public void queryFictitiousReportByRecordId(){ |
||||||
|
Integer month = null; |
||||||
|
Integer systemId = 1; |
||||||
|
String searchContent= ""; |
||||||
|
String staingTime = ""; |
||||||
|
String endTime = ""; |
||||||
|
List<Integer> list = achievementManagementDao.countFictitiousProjectId(); |
||||||
|
List<AchievementManagementVo> result = achievementManagementDao.queryFictitiousRecord(systemId, searchContent, staingTime, endTime, month, list); |
||||||
|
System.out.println(result); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testQuery(){ |
||||||
|
// String str = "184,185";
|
||||||
|
ArrayList<Integer> integers = new ArrayList<>(); |
||||||
|
integers.add(184); |
||||||
|
integers.add(185); |
||||||
|
|
||||||
|
List<AchievementImportRequest> achievementImportRequests = achievementManagementDao.queryAchievement(integers); |
||||||
|
System.out.println(achievementImportRequests); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue