提交 75778001 authored 作者: 133's avatar 133

[线上培训] 代码提交

上级 f81ce61e
......@@ -126,7 +126,7 @@ public enum StatusEnum {
TRAIN1006(1006, "市培训申请发证审核"),
TRAIN1007(1007, "省培训发证审核"),
TRAIN1007(1007, "培训等待发证"),
TRAIN1008(1008, "成绩录入"),
......
......@@ -2,14 +2,18 @@ package com.tykj.dev.device.train.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import com.tykj.dev.device.train.entity.TrainTheme;
import com.tykj.dev.device.train.service.TestPaperService;
import com.tykj.dev.device.train.service.TrainThemeService;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
import com.tykj.dev.misc.utils.JacksonUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
/**
* @author zjm
......@@ -25,6 +29,9 @@ import org.springframework.web.bind.annotation.RestController;
public class TestPaperController {
@Autowired
TestPaperService testPaperService;
@Autowired
TrainThemeService trainThemeService;
/**
* 生成试卷
*/
......@@ -33,4 +40,48 @@ public class TestPaperController {
return ResponseEntity.ok(testPaperService.generateTestPaper(generateTestPaper));
}
/**
* 查询试卷
*/
@GetMapping("/select/{status}")
@ApiOperation(value = "查询试卷(status 为0 待批阅 1 为已批阅)", notes = "查询试卷")
public ResponseEntity trainThemeVoResponseEntity(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser,@PathVariable Integer status) {
return ResponseEntity.ok(testPaperService.TEST_PAPER_MANAGEMENT_LIST_VOS(securityUser.getCurrentUserInfo().getUnitsId(),status));
}
/**
* 批阅试卷上边框集合接口
*/
@GetMapping("/testPaperListVo/{trainId}")
@ApiOperation(value = "批阅试卷上边框集合接口", notes = "批阅试卷上边框集合接口")
public ResponseEntity trainThemeVoResponseEntity(@PathVariable Integer trainId) {
return ResponseEntity.ok(testPaperService.findAllByTrainId(trainId));
}
/**
* 根据试卷id查询试卷详情
*/
@GetMapping("/testPaper/{id}")
@ApiOperation(value = "根据试卷id查询试卷详情", notes = "根据试卷id查询试卷详情")
public ResponseEntity testPaperById(@PathVariable Integer id) {
return ResponseEntity.ok(testPaperService.findByIdProble(id));
}
/**
* 根据id查询试卷的模版
*/
@GetMapping("/generateTestPaper/{trainId}")
@ApiOperation(value = "根据id查询试卷的模版", notes = "根据id查询试卷的模版")
public ResponseEntity generateTestPaperById(@PathVariable Integer trainId) {
TrainTheme trainTheme=trainThemeService.findById(trainId);
trainTheme.setGenerateTestPaper(JacksonUtil.readValue(trainTheme.getGenerateTestPaperString(),GenerateTestPaper.class));
return ResponseEntity.ok(trainTheme);
}
}
......@@ -9,6 +9,7 @@ import com.tykj.dev.device.task.service.TaskLogService;
import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.bto.TaskLogBto;
import com.tykj.dev.device.task.subject.domin.Task;
import com.tykj.dev.device.train.dao.OnlineTainUserTimeDao;
import com.tykj.dev.device.train.dao.TestPaperDao;
import com.tykj.dev.device.train.dao.TrainUnitDao;
......@@ -180,7 +181,11 @@ public class TrainJobController {
List<Integer> integers = new ArrayList<>();
integers.add(securityUser.getCurrentUserInfo().getUserId());
TaskBto task = taskService.start(new TaskBto(StatusEnum.TRAIN1000.id, trainTheme.getName(), null, null, trainTheme.getTrainId(), BusinessEnum.TRAIN.id, securityUser.getCurrentUserInfo().getUnitsId(), 0, null, integers));
TaskBto taskVo = new TaskBto(StatusEnum.TRAIN1000.id, trainTheme.getName(), null, null, trainTheme.getTrainId(), BusinessEnum.TRAIN.id, securityUser.getCurrentUserInfo().getUnitsId(), 0, null, integers);
if (trainThemeAddVo.getTrainType() == 0) {
taskVo.setCustomInfo("online");
}
TaskBto task = taskService.start(taskVo);
trainTheme.setTrainStatus(StatusEnum.TRAIN1000.id);
trainThemeAddVo.getUnitsIds().forEach(
......@@ -333,6 +338,30 @@ public class TrainJobController {
return ResponseEntity.ok(trainThemeService.save(trainTheme));
}
//等待批阅接口 判断人员是否全部提交试卷
@GetMapping("/waitExamines/{trainId}/{taskId}")
@Transactional(rollbackFor = Exception.class)
@ApiOperation(value = "等待批阅接口 判断人员是否全部提交试卷", notes = "等待批阅接口 判断人员是否全部提交试卷")
public ResponseEntity inTraining(@PathVariable Integer trainId, @PathVariable Integer taskId) {
TrainTheme trainTheme = trainThemeService.findById(trainId);
//5 培训中
TaskBto taskBto = taskService.get(taskId);
WaitExaminesVo waitExaminesVo=trainTheme.toWaitExaminesVo();
waitExaminesVo.setTrainDataFileList(FilesUtil.stringFileToList(trainTheme.getTrainDataFiles()));
waitExaminesVo.setCoursewareFileList(JacksonUtil.readValue(trainTheme.getCoursewareFiles(), new TypeReference<List<CoursewareFile>>() {
}));
waitExaminesVo.setGenerateTestPaper(JacksonUtil.readValue(trainTheme.getGenerateTestPaperString(), GenerateTestPaper.class));
List<TrainUser> userList= trainUserDao.findAllByTrainId(trainId).stream().filter(trainUser -> trainUser.getIsSignUp()==1).collect(Collectors.toList());
if (userList.stream().allMatch(trainUser -> trainUser.getOnlineStatus()==2)) {
waitExaminesVo.setIsNot(1);
taskService.moveToSpecial(taskBto, StatusEnum.TRAIN1015);
trainTheme.setIsNotExamines(1);
}
waitExaminesVo.setTrainUsers(userList);
trainTheme.setTrainStatus(StatusEnum.TRAIN1015.id);
trainThemeService.save(trainTheme);
return ResponseEntity.ok(waitExaminesVo);
}
/**
......@@ -364,10 +393,10 @@ public class TrainJobController {
boolean falg= onlineTainUserTime.getSubjectVoList().stream().allMatch(subjectVo -> subjectVo.getIsEnd()==1);
if (falg){
onlineTainUserTime.setIsNotCanExam(1);
TaskBto taskBto= taskService.get(onlineTainUserTime.getTaskId());
TaskBto taskBto = taskService.get(onlineTainUserTime.getTaskId());
taskService.moveToSpecial(taskBto,StatusEnum.TRAIN1014);
}
onlineTainUserTime= onlineTainUserTimeDao.save(onlineTainUserTime);
onlineTainUserTime = onlineTainUserTimeDao.save(onlineTainUserTime);
return ResponseEntity.ok(onlineTainUserTime);
}
......@@ -392,6 +421,9 @@ public class TrainJobController {
testPaper.setMultipleChoiceProblem(JacksonUtil.toJSon(testPaper.getMultipleChoiceProblemList()));
testPaper.setShortAnswerProblem(JacksonUtil.toJSon(testPaper.getShortAnswerProblemList()));
automaticReadingTestPaper(testPaper);
TrainUser trainUser= trainUserDao.findByUserIdAndTrainId(testPaper.getUserId(),testPaper.getTrainId());
trainUser.setOnlineStatus(2);
trainUserDao.save(trainUser);
TaskBto taskBto = taskService.get(testPaper.getTaskId());
taskService.moveToSpecial(taskBto,StatusEnum.TRAIN1012,-1);
testPaper = testPaperDao.save(testPaper);
......@@ -407,6 +439,7 @@ public class TrainJobController {
@Transactional(rollbackFor = Exception.class)
public ResponseEntity readOverTestPaper(@RequestBody ReadOverTestPaper readOverTestPaper){
AtomicReference<Float> shortAnswerScore = new AtomicReference<>();
shortAnswerScore.set(0f);
readOverTestPaper.getProblemVos().forEach(
problemVo -> shortAnswerScore.set(shortAnswerScore.get() + problemVo.getScore())
);
......@@ -414,10 +447,20 @@ public class TrainJobController {
testPaper.setShortAnswerScore(shortAnswerScore.get());
testPaper.setShortAnswerProblem(JacksonUtil.toJSon(readOverTestPaper.getProblemVos()));
testPaper.setCountScore(testPaper.getChooseScore()+testPaper.getJudgeScore()+testPaper.getMultipleScore()+testPaper.getShortAnswerScore());
testPaper.setStatus(1);
TrainUser trainUser= trainUserDao.findByUserIdAndTrainId(testPaper.getUserId(),testPaper.getTrainId());
trainUser.setScore(testPaper.getCountScore().toString());
trainUser.setOnlineStatus(3);
trainUserDao.save(trainUser);
testPaper = testPaperDao.save(testPaper);
List<TestPaper> testPapers= testPaperService.findByTrainIdAndStatus(testPaper.getTrainId(),0);
if (testPapers==null||testPapers.size()==0){
TaskBto taskBto = trainTaskService.selectFatherIsNullAndBillidAndBillType(testPaper.getTrainId(), BusinessEnum.TRAIN.id);
taskService.moveToSpecial(taskBto,StatusEnum.TRAIN1007);
TrainTheme trainTheme= trainThemeService.findById(testPaper.getTrainId());
trainTheme.setIsNotExamines(2);
trainThemeService.save(trainTheme);
}
return ResponseEntity.ok(testPaper);
}
......@@ -491,7 +534,10 @@ public class TrainJobController {
trainTheme.setTrainPapersFiles(FilesUtil.stringFileToList(gradeEntryVo.getTrainPapersFileList()));
TaskBto taskBto = trainTaskService.selectFatherIsNullAndBillidAndBillType(trainTheme.getTrainId(), BusinessEnum.TRAIN.id);
//判断
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),StatusEnum.TRAIN1004);
List<StatusEnum> statusEnums=new ArrayList<>();
statusEnums.add(StatusEnum.TRAIN1004);
statusEnums.add(StatusEnum.TRAIN1007);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),statusEnums);
taskBto.setOwnUnit(1);
taskService.moveToSpecial(taskBto, StatusEnum.TRAIN1006,0);
......@@ -503,7 +549,7 @@ public class TrainJobController {
trainUser.setEvaluation(gradeEntry.getEvaluation());
trainUser.setCertificate(gradeEntry.getCertificate());
// trainUserDao.save(trainUser);
saveTrainUser(trainUser);
saveTrainUser(trainUser);
}
);
trainTheme.setTrainStatus(StatusEnum.TRAIN1006.id);
......@@ -519,6 +565,15 @@ public class TrainJobController {
@PostMapping("/auditResult")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity gradeeEntry(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser, @RequestBody GradeEntryVo gradeEntryVo) {
TrainTheme trainTheme = trainThemeService.findById(gradeEntryVo.getTrainThemeId());
//给培训报名的人员都发起一个通知,查看自己都证书
TaskBto taskBto = trainTaskService.selectFatherIsNullAndBillidAndBillType(trainTheme.getTrainId(), BusinessEnum.TRAIN.id);
List<StatusEnum> statusEnums=new ArrayList<>();
statusEnums.add(StatusEnum.TRAIN1006);
statusEnums.add(StatusEnum.TRAIN1004);
statusEnums.add(StatusEnum.TRAIN1007);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),statusEnums);
//向专管员证书表中添加数据
CompletableFuture.runAsync(()-> {
log.info("[培训] 异步添加人员,证书以及人员日志");
......@@ -536,14 +591,7 @@ public class TrainJobController {
);
}
});
TrainTheme trainTheme = trainThemeService.findById(gradeEntryVo.getTrainThemeId());
//给培训报名的人员都发起一个通知,查看自己都证书
TaskBto taskBto = trainTaskService.selectFatherIsNullAndBillidAndBillType(trainTheme.getTrainId(), BusinessEnum.TRAIN.id);
List<StatusEnum> statusEnums=new ArrayList<>();
statusEnums.add(StatusEnum.TRAIN1006);
statusEnums.add(StatusEnum.TRAIN1004);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),statusEnums);
trainTheme.setTrainPapersFiles(FilesUtil.stringFileToList(gradeEntryVo.getTrainPapersFileList()));
trainTheme.setTrainDataFiles(FilesUtil.stringFileToList(gradeEntryVo.getTrainDataFileList()));
taskService.moveToEnd(taskBto);
......
......@@ -5,6 +5,12 @@ import com.tykj.dev.device.train.entity.TrainTheme;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface TestPaperDao extends JpaRepository<TestPaper, Integer>, JpaSpecificationExecutor<TestPaper> {
TestPaper findByTrainIdAndUserId(Integer trainId,Integer userId);
List<TestPaper> findAllByTrainIdAndStatus(Integer trainId,Integer status);
List<TestPaper> findAllByTrainId(Integer trainId);
}
......@@ -16,4 +16,6 @@ import java.util.List;
public interface TrainThemeDao extends JpaRepository<TrainTheme, Integer>, JpaSpecificationExecutor<TrainTheme> {
List<TrainTheme> findAllByTrainStatus(Integer status);
List<TrainTheme> findAllByUnitsIdAndIsNotExamines(Integer unitId,Integer isNotExamines);
}
package com.tykj.dev.device.train.entity;
import com.tykj.dev.device.train.entity.vo.ProblemVo;
import com.tykj.dev.device.train.entity.vo.TestPaperListVo;
import com.tykj.dev.device.train.entity.vo.TrainAuditVo;
import com.tykj.dev.misc.base.BaseEntity;
import com.tykj.dev.misc.base.BeanHelper;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
......@@ -30,7 +34,7 @@ import java.util.List;
@Entity
public class TestPaper extends BaseEntity {
/**
/**
* 阅卷人
*/
@ApiModelProperty(value = "阅卷人(不)", example = "bmxx", name = "taskId")
......@@ -42,6 +46,12 @@ public class TestPaper extends BaseEntity {
@ApiModelProperty(value = "总分(不)", example = "bmxx", name = "taskId")
private Float countScore;
// /**
// * 总分得分
// */
// @ApiModelProperty(value = "总分(不)", example = "bmxx", name = "taskId")
// private Float countUserScore;
/**
* 试卷所属用户id
*/
......@@ -118,4 +128,9 @@ public class TestPaper extends BaseEntity {
private GenerateTestPaper generateTestPaper;
public TestPaperListVo toTestPaperListVo() {
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, TestPaperListVo.class);
}
}
......@@ -170,7 +170,7 @@ public class TrainTheme {
private LocalDateTime updateTime;
/**
* 培训类别
* 培训类别 0.线上 1.线下
*/
@ApiModelProperty(value = "培训类别", name = "trainType")
private Integer trainType;
......@@ -180,6 +180,10 @@ public class TrainTheme {
*/
private Integer examinationTL;
/**
* 线上培训使用字段 是否批阅完成
*/
private Integer isNotExamines=0;
@Column(name = "generate_test_paper_string",columnDefinition = "TEXT")
private String generateTestPaperString;
......@@ -231,6 +235,12 @@ public class TrainTheme {
return mapper.map(this, TrainTrainingVo.class);
}
public WaitExaminesVo toWaitExaminesVo() {
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, WaitExaminesVo.class);
}
public TrainAuditVo toTrainAuditVo() {
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, TrainAuditVo.class);
......
......@@ -155,6 +155,9 @@ public class TrainUser {
@ApiModelProperty(value = "是否必须报名 1.必须 2.不必须", name = "certificate")
private Integer isNotJoinUserId;
@ApiModelProperty(value = "线上人员状态 1.未提交 2.已提交 3.已批阅", name = "certificate")
private Integer onlineStatus=1;
@ApiModelProperty(value = "区块链RID",name = "recordId")
private String recordId;
......
......@@ -2,6 +2,7 @@ package com.tykj.dev.device.train.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import com.tykj.dev.device.train.entity.TrainUser;
import com.tykj.dev.device.user.subject.entity.Mgrcert;
import io.swagger.annotations.ApiModelProperty;
......@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
......@@ -130,4 +132,10 @@ public class ByTrainingPeople {
@ApiModelProperty(value = "本单位需要参加培训的人员",name = "trainUserList")
List<TrainUser> trainUserList;
@ApiModelProperty(value = "课件集合")
private List<CoursewareFile> coursewareFileList;
@Transient
private GenerateTestPaper generateTestPaper;
}
package com.tykj.dev.device.train.entity.vo;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
/**
* @author zjm
* @version 1.0.0
* @ClassName TestPaperListVo.java
* @Description 批阅页面上方滚动条
* @createTime 2021年06月15日 17:22:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "批阅对象的集合", description = "批阅对象的集合")
public class TestPaperListVo {
private Integer id;
/**
* 总分
*/
@ApiModelProperty(value = "总分(不)", example = "bmxx", name = "taskId")
private Float countScore;
/**
* 试卷所属用户id
*/
@ApiModelProperty(value = "用户id", example = "bmxx", name = "taskId")
private Integer userId;
/**
* 试卷所属用户名称
*/
@ApiModelProperty(value = "用户名称", example = "bmxx", name = "taskId")
private String userName;
@ApiModelProperty(value = "培训id", example = "bmxx", name = "taskId")
private Integer trainId;
@ApiModelProperty(value = "任务id", example = "bmxx", name = "taskId")
private Integer taskId;
/**
* 0。待批阅 1。批阅完成
*/
private Integer status = 0;
}
package com.tykj.dev.device.train.entity.vo;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zjm
* @version 1.0.0
* @ClassName TestPaperManagementListVo.java
* @Description TODO
* @createTime 2021年06月15日 14:44:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "课题对象vo", description = "课题对象vo")
public class TestPaperManagementListVo {
private Integer trainId;
private String name;
private Integer count;
}
......@@ -50,6 +50,13 @@ public class TrainThemeVo {
@ApiModelProperty(value = "主办单位名称")
private String unitsName;
/**
* 培训类别 0.线上 1.线下
*/
@ApiModelProperty(value = "培训类别", name = "trainType")
private Integer trainType;
private Integer taskId;
public TrainThemeVo(Integer trainId, String name, Date trainTime, String originatorName, Integer trainStatus, String unitsName) {
......
package com.tykj.dev.device.train.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import com.tykj.dev.device.train.entity.TrainUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName WaitExaminesVo.java
* @Description TODO
* @createTime 2021年06月15日 16:10:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "培训中人员数据查询", description = "培训中人员数据查询")
public class WaitExaminesVo {
/**
* 培训id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty(value = "培训id")
private Integer trainId;
/**
* 培训主题
*/
@ApiModelProperty(value = "培训主题")
private String name;
/**
* 报名截止时间
*/
@ApiModelProperty(value = "报名截止时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date trainTime;
/**
* 发起人 originator
*/
@ApiModelProperty(value = "发起人")
private String originatorName;
/**
* 发起人 originator
*/
@ApiModelProperty(value = "发起人id")
private Integer originatorId;
/**
* 主办单位
*/
@ApiModelProperty(value = "主办单位名称")
private String unitsName;
/**
* 主办单位
*/
@ApiModelProperty(value = "主办单位")
private Integer unitsId;
/**
* 培训开始时间
*/
@ApiModelProperty(value = "培训开始时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startTime;
/**
* 培训结束时间
*/
@ApiModelProperty(value = "培训结束时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endTime;
/**
* 培训地点
*/
@ApiModelProperty(value = "培训地点")
private String trainLocation;
/**
* 主讲人
*/
@ApiModelProperty(value = "主讲人")
private String speakerUserId;
@ApiModelProperty(value = "培训资料集合")
private List<FileRet> trainDataFileList;
/**
* 培训简介
*/
@ApiModelProperty(value = "trainSynopsis")
private String trainSynopsis;
/**
* 以报名人员
*/
@ApiModelProperty(value = "trainUsers")
private List<TrainUser> trainUsers;
/**
* 培训类别
*/
@ApiModelProperty(value = "培训类别", name = "trainType")
private Integer trainType;
/**
* 考试时间限制
*/
@ApiModelProperty(value = "考试时间限制")
private Integer examinationTL;
@ApiModelProperty(value = "课件集合")
private List<CoursewareFile> coursewareFileList;
private GenerateTestPaper generateTestPaper;
private Integer isNot=0;
}
......@@ -2,6 +2,8 @@ package com.tykj.dev.device.train.service;
import com.tykj.dev.device.train.entity.TestPaper;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import com.tykj.dev.device.train.entity.vo.TestPaperListVo;
import com.tykj.dev.device.train.entity.vo.TestPaperManagementListVo;
import java.util.List;
......@@ -23,6 +25,13 @@ public interface TestPaperService {
*/
TestPaper findByUserIdAndTrainId(Integer userId,Integer trainId);
/**
* 根据培训id以及状态查询试卷
*/
List<TestPaper> findByTrainIdAndStatus(Integer trainId,Integer status);
/**
* 查询所有试卷
*/
......@@ -38,5 +47,11 @@ public interface TestPaperService {
*/
TestPaper generateTestPaper(GenerateTestPaper generateTestPaper);
List<TestPaperManagementListVo> TEST_PAPER_MANAGEMENT_LIST_VOS(Integer unitId,Integer status);
List<TestPaperListVo> findAllByTrainId(Integer trainId);
// Page<TestPaper> pageTestPaperSelect(TestPaperPageVo TestPaperPageVo);
}
......@@ -43,4 +43,9 @@ public interface TrainThemeService {
TrainTheme findBytaskId(Integer taskId);
List<TrainUser> findAllTrainUserByTrainId(Integer trainId);
List<TrainTheme> findByUnitIdAndisNotExamines(Integer isNotExamines,Integer unitId);
WaitExaminesVo findWaitExaminesVo(Integer trainId);
}
......@@ -7,7 +7,11 @@ import com.tykj.dev.device.train.dao.TestPaperDao;
import com.tykj.dev.device.train.entity.TestPaper;
import com.tykj.dev.device.train.entity.GenerateTestPaper;
import com.tykj.dev.device.train.entity.vo.ProblemVo;
import com.tykj.dev.device.train.entity.vo.TestPaperListVo;
import com.tykj.dev.device.train.entity.vo.TestPaperManagementListVo;
import com.tykj.dev.device.train.service.TestPaperService;
import com.tykj.dev.device.train.service.TrainTaskService;
import com.tykj.dev.device.train.service.TrainThemeService;
import com.tykj.dev.misc.base.BeanHelper;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.JacksonUtil;
......@@ -20,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Random;
import java.util.stream.Collectors;
/**
* @author zjm
......@@ -33,9 +38,15 @@ public class TestPaperServiceImpl implements TestPaperService {
@Autowired
TestPaperDao testPaperDao;
@Autowired
TestPaperService testPaperService;
@Autowired
ProblemService problemService;
@Autowired
TrainThemeService trainThemeService;
@Override
public TestPaper saveProble(TestPaper testPaper) {
return testPaperDao.save(testPaper);
......@@ -74,6 +85,11 @@ public class TestPaperServiceImpl implements TestPaperService {
return testPaper;
}
@Override
public List<TestPaper> findByTrainIdAndStatus(Integer trainId, Integer status) {
return testPaperDao.findAllByTrainIdAndStatus(trainId,status);
}
@Override
public List<TestPaper> findAll() {
......@@ -133,7 +149,6 @@ public class TestPaperServiceImpl implements TestPaperService {
testPaper.setShortAnswerProblemList(shortAnswerProblemList);
testPaper.setMultipleChoiceProblemList(multipleChoiceProblemList);
testPaper.setJudgeProblemList(judgeProblemList);
testPaper.setChooseProblem(JacksonUtil.toJSon(testPaper.getChooseProblemList()));
testPaper.setJudgeProblem(JacksonUtil.toJSon(testPaper.getJudgeProblemList()));
testPaper.setMultipleChoiceProblem(JacksonUtil.toJSon(testPaper.getMultipleChoiceProblemList()));
......@@ -141,6 +156,35 @@ public class TestPaperServiceImpl implements TestPaperService {
return testPaper;
}
@Override
public List<TestPaperManagementListVo> TEST_PAPER_MANAGEMENT_LIST_VOS(Integer unitId,Integer status) {
Integer trainStatus;
Integer testPaperStatus;
if (status==0){
trainStatus=1;
testPaperStatus=0;
}else {
trainStatus=2;
testPaperStatus=1;
}
List<TestPaperManagementListVo> testPaperManagementListVos=new ArrayList<>();
trainThemeService.findByUnitIdAndisNotExamines(trainStatus,unitId).forEach(
trainTheme -> {
TestPaperManagementListVo testPaperManagementListVo=new TestPaperManagementListVo();
testPaperManagementListVo.setTrainId(trainTheme.getTrainId());
testPaperManagementListVo.setName(trainTheme.getName());
testPaperManagementListVo.setCount(this.findByTrainIdAndStatus(trainTheme.getTrainId(),testPaperStatus).size());
testPaperManagementListVos.add(testPaperManagementListVo);
}
);
return testPaperManagementListVos;
}
@Override
public List<TestPaperListVo> findAllByTrainId(Integer trainId) {
return testPaperDao.findAllByTrainId(trainId).stream().map(TestPaper::toTestPaperListVo).collect(Collectors.toList());
}
public List<ProblemVo> getSubStringByRadom(List<Problem> list, int count){
List backList = null;
backList = new ArrayList<ProblemVo>();
......
......@@ -143,13 +143,14 @@ public class TrainThemeServiceImpl implements TrainThemeService {
trainUsers.forEach(
trainUser1 -> trainUser1.setMgrcert(mgrcertService.findByUserId(trainUser1.getUserId()))
);
byTrainingPeople.setCoursewareFileList(JacksonUtil.readValue(trainTheme.getCoursewareFiles(), new TypeReference<List<CoursewareFile>>() {}));
byTrainingPeople.setGenerateTestPaper(JacksonUtil.readValue(trainTheme.getGenerateTestPaperString(), GenerateTestPaper.class));
byTrainingPeople.setTrainDataFileList(FilesUtil.stringFileToList(trainTheme.getTrainDataFiles()));
byTrainingPeople.setTrainUserList(trainUsers);
return byTrainingPeople;
}
@Override
public TrainRegistrationVo findRegistrationVo(Integer trainThemeId) {
TrainTheme trainTheme = trainThemeDao.findById(trainThemeId).get();
......@@ -296,6 +297,21 @@ public class TrainThemeServiceImpl implements TrainThemeService {
return trainUserDao.findAllByTrainId(trainId).stream().filter(trainUser -> trainUser.getIsSignUp()==1).collect(Collectors.toList());
}
@Override
public List<TrainTheme> findByUnitIdAndisNotExamines(Integer isNotExamines, Integer unitId) {
return trainThemeDao.findAllByUnitsIdAndIsNotExamines(unitId,isNotExamines);
}
@Override
public WaitExaminesVo findWaitExaminesVo(Integer trainId) {
TrainTheme trainTheme = trainThemeDao.findById(trainId).get();
WaitExaminesVo trainTrainingVo = trainTheme.toWaitExaminesVo();
trainTrainingVo.setCoursewareFileList(JacksonUtil.readValue(trainTheme.getCoursewareFiles(), new TypeReference<List<CoursewareFile>>() {
}));
trainTrainingVo.setGenerateTestPaper(JacksonUtil.readValue(trainTheme.getGenerateTestPaperString(), GenerateTestPaper.class));
return trainTrainingVo;
}
private Page<TrainTheme> getContacts(ConditionsTrainVo conditionsTrainVo, Pageable pageable) {
PredicateBuilder<TrainTheme> predicateBuilder = Specifications.and();
if (conditionsTrainVo.getEndTime() != null && conditionsTrainVo.getStartTime() != null) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论