|
|
@ -3,6 +3,7 @@ package com.ibeetl.jlw.service;
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
import cn.hutool.core.lang.Console;
|
|
|
|
import cn.hutool.core.lang.Console;
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.jlw.util.ToolUtils;
|
|
|
|
import cn.jlw.util.ToolUtils;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
@ -38,6 +39,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
|
import java.io.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
|
|
|
|
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
|
|
|
|
|
|
|
|
|
|
|
@ -49,36 +51,41 @@ import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
@Validated
|
|
|
|
@Validated
|
|
|
|
public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsOnTaskStep>{
|
|
|
|
public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsOnTaskStep> {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao;
|
|
|
|
@Autowired
|
|
|
|
@Autowired private StudentService studentService;
|
|
|
|
private StudentHandsOnTaskStepDao studentHandsOnTaskStepDao;
|
|
|
|
@Autowired private TeacherOpenCourseHandsOnSimulationTasksDao tasksService;
|
|
|
|
@Autowired
|
|
|
|
@Autowired private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService;
|
|
|
|
private StudentService studentService;
|
|
|
|
public PageQuery<StudentHandsOnTaskStep>queryByCondition(PageQuery query){
|
|
|
|
@Autowired
|
|
|
|
PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query);
|
|
|
|
private TeacherOpenCourseHandsOnSimulationTasksDao tasksService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private TeacherOpenCourseHandsOnSimulationTasksAssessmentService assessmentService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PageQuery<StudentHandsOnTaskStep> queryByCondition(PageQuery query) {
|
|
|
|
|
|
|
|
PageQuery ret = studentHandsOnTaskStepDao.queryByCondition(query);
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public PageQuery<StudentHandsOnTaskStep>queryByConditionQuery(PageQuery query){
|
|
|
|
public PageQuery<StudentHandsOnTaskStep> queryByConditionQuery(PageQuery query) {
|
|
|
|
PageQuery ret = studentHandsOnTaskStepDao.queryByConditionQuery(query);
|
|
|
|
PageQuery ret = studentHandsOnTaskStepDao.queryByConditionQuery(query);
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void deleteByList(List list){
|
|
|
|
public void deleteByList(List list) {
|
|
|
|
String ids = "";
|
|
|
|
String ids = "";
|
|
|
|
ToolUtils.deleteNullList(list);
|
|
|
|
ToolUtils.deleteNullList(list);
|
|
|
|
for(int i=0;null != list && i<list.size();i++){
|
|
|
|
for (int i = 0; null != list && i < list.size(); i++) {
|
|
|
|
ids += list.get(i).toString()+(i==list.size()-1?"":",");
|
|
|
|
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(StringUtils.isNotBlank(ids)){
|
|
|
|
if (StringUtils.isNotBlank(ids)) {
|
|
|
|
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
|
|
|
|
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void deleteStudentHandsOnTaskStep(String ids){
|
|
|
|
public void deleteStudentHandsOnTaskStep(String ids) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
|
|
|
|
studentHandsOnTaskStepDao.deleteStudentHandsOnTaskStepByIds(ids);
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
@ -86,7 +93,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String addAll(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public String addAll(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
String msg = "";
|
|
|
|
String msg = "";
|
|
|
|
List<StudentHandsOnTaskStep> studentHandsOnTaskStepList = new ArrayList<>();
|
|
|
|
List<StudentHandsOnTaskStep> studentHandsOnTaskStepList = new ArrayList<>();
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -94,11 +101,12 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
studentHandsOnTaskStepList.add(JSONObject.parseObject(studentHandsOnTaskStepQuery.getStudentHandsOnTaskStepJsonStr(), StudentHandsOnTaskStep.class));
|
|
|
|
studentHandsOnTaskStepList.add(JSONObject.parseObject(studentHandsOnTaskStepQuery.getStudentHandsOnTaskStepJsonStr(), StudentHandsOnTaskStep.class));
|
|
|
|
} catch (Exception e1) {}
|
|
|
|
} catch (Exception e1) {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ToolUtils.deleteNullList(studentHandsOnTaskStepList);
|
|
|
|
ToolUtils.deleteNullList(studentHandsOnTaskStepList);
|
|
|
|
if(null != studentHandsOnTaskStepList && studentHandsOnTaskStepList.size()>0){
|
|
|
|
if (null != studentHandsOnTaskStepList && studentHandsOnTaskStepList.size() > 0) {
|
|
|
|
for(int i=0;i<studentHandsOnTaskStepList.size();i++){
|
|
|
|
for (int i = 0; i < studentHandsOnTaskStepList.size(); i++) {
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepList.get(i);
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepList.get(i);
|
|
|
|
studentHandsOnTaskStep.setUserId(studentHandsOnTaskStepQuery.getUserId());
|
|
|
|
studentHandsOnTaskStep.setUserId(studentHandsOnTaskStepQuery.getUserId());
|
|
|
|
studentHandsOnTaskStep.setOrgId(studentHandsOnTaskStepQuery.getOrgId());
|
|
|
|
studentHandsOnTaskStep.setOrgId(studentHandsOnTaskStepQuery.getOrgId());
|
|
|
@ -108,7 +116,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
return msg;
|
|
|
|
return msg;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public JsonResult add(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public JsonResult add(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
String msg = "";
|
|
|
|
String msg = "";
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepQuery.pojo();
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = studentHandsOnTaskStepQuery.pojo();
|
|
|
|
studentHandsOnTaskStepDao.insert(studentHandsOnTaskStep);
|
|
|
|
studentHandsOnTaskStepDao.insert(studentHandsOnTaskStep);
|
|
|
@ -120,7 +128,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
return jsonResult;
|
|
|
|
return jsonResult;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String edit(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery, CoreUser coreUser){
|
|
|
|
public String edit(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery, CoreUser coreUser) {
|
|
|
|
if (!coreUser.isStudent()) {
|
|
|
|
if (!coreUser.isStudent()) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -131,7 +139,8 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
String stem = studentHandsOnTaskStep.getStem();
|
|
|
|
String stem = studentHandsOnTaskStep.getStem();
|
|
|
|
if (StringUtils.isNotEmpty(stem)) {
|
|
|
|
if (StringUtils.isNotEmpty(stem)) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
List<Map<String, Object>> maps = JSONArray.parseObject(stem, new TypeReference<List<Map<String,Object>>>(){});
|
|
|
|
List<Map<String, Object>> maps = JSONArray.parseObject(stem, new TypeReference<List<Map<String, Object>>>() {
|
|
|
|
|
|
|
|
});
|
|
|
|
if (CollectionUtil.isNotEmpty(maps)) {
|
|
|
|
if (CollectionUtil.isNotEmpty(maps)) {
|
|
|
|
double schedules = 0;
|
|
|
|
double schedules = 0;
|
|
|
|
for (Map<String, Object> map : maps) {
|
|
|
|
for (Map<String, Object> map : maps) {
|
|
|
@ -144,19 +153,35 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasks single = tasksService.createLambdaQuery()
|
|
|
|
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskStep.getHandsOnTaskId()).single();
|
|
|
|
.andEq(TeacherOpenCourseHandsOnSimulationTasks::getTaskId, studentHandsOnTaskStep.getHandsOnTaskId()).single();
|
|
|
|
if (single != null) {
|
|
|
|
if (single != null) {
|
|
|
|
if (NumberUtil.compare(schedules, maps.size()) >= 0) {
|
|
|
|
|
|
|
|
String taskScore = single.getTaskScore();
|
|
|
|
Long taskId = single.getTaskId();
|
|
|
|
int i = NumberUtil.parseInt(taskScore);
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasksAssessment teacherOpenCourseHandsOnSimulationTasksAssessment = new TeacherOpenCourseHandsOnSimulationTasksAssessment();
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(BigDecimal.valueOf(i));
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(taskId);
|
|
|
|
}else {
|
|
|
|
//实训任务的评估项
|
|
|
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasksAssessment> values = assessmentService.getValues(teacherOpenCourseHandsOnSimulationTasksAssessment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, List<Map<String, Object>>> handsOnSimulationTasksAssessmentId = maps.stream().collect(Collectors.groupingBy(e -> Long.parseLong(ObjectUtil.defaultIfNull(e.get("handsOnSimulationTasksAssessmentId"), "0").toString())));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal initScore = BigDecimal.ZERO;
|
|
|
|
|
|
|
|
if (values != null && values.size() > 0) {
|
|
|
|
|
|
|
|
//String taskScore = single.getTaskScore();
|
|
|
|
|
|
|
|
// int i = NumberUtil.parseInt(taskScore);
|
|
|
|
|
|
|
|
// studentHandsOnTaskStep.setTheoryScore(BigDecimal.valueOf(i));
|
|
|
|
|
|
|
|
for (TeacherOpenCourseHandsOnSimulationTasksAssessment value : values) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//为空就是没有评估项,这里先做0分处理
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(BigDecimal.ZERO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
Console.log(e);
|
|
|
|
Console.log(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -164,69 +189,69 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
return msg;
|
|
|
|
return msg;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String updateGivenByIds(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public String updateGivenByIds(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
String msg = "";
|
|
|
|
String msg = "";
|
|
|
|
if(StringUtils.isNotBlank(studentHandsOnTaskStepQuery.get_given())){
|
|
|
|
if (StringUtils.isNotBlank(studentHandsOnTaskStepQuery.get_given())) {
|
|
|
|
boolean flag = studentHandsOnTaskStepDao.updateGivenByIds(studentHandsOnTaskStepQuery) > 0;
|
|
|
|
boolean flag = studentHandsOnTaskStepDao.updateGivenByIds(studentHandsOnTaskStepQuery) > 0;
|
|
|
|
if(!flag){
|
|
|
|
if (!flag) {
|
|
|
|
msg = "更新指定参数失败";
|
|
|
|
msg = "更新指定参数失败";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
msg = "指定参数为空";
|
|
|
|
msg = "指定参数为空";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return msg;
|
|
|
|
return msg;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<StudentHandsOnTaskStep> getValues (Object paras){
|
|
|
|
public List<StudentHandsOnTaskStep> getValues(Object paras) {
|
|
|
|
return sqlManager.select(SqlId.of("jlw.studentHandsOnTaskStep.getStudentHandsOnTaskStepValues"), StudentHandsOnTaskStep.class, paras);
|
|
|
|
return sqlManager.select(SqlId.of("jlw.studentHandsOnTaskStep.getStudentHandsOnTaskStepValues"), StudentHandsOnTaskStep.class, paras);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<StudentHandsOnTaskStep> getValuesByQuery (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public List<StudentHandsOnTaskStep> getValuesByQuery(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
return studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
return studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<StudentHandsOnTaskStep> getValuesByQueryNotWithPermission (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public List<StudentHandsOnTaskStep> getValuesByQueryNotWithPermission(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
return studentHandsOnTaskStepDao.getValuesByQueryNotWithPermission(studentHandsOnTaskStepQuery);
|
|
|
|
return studentHandsOnTaskStepDao.getValuesByQueryNotWithPermission(studentHandsOnTaskStepQuery);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public StudentHandsOnTaskStep getInfo (Long studentHandsOnTaskStepId){
|
|
|
|
public StudentHandsOnTaskStep getInfo(Long studentHandsOnTaskStepId) {
|
|
|
|
StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery();
|
|
|
|
StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery = new StudentHandsOnTaskStepQuery();
|
|
|
|
studentHandsOnTaskStepQuery.setStudentHandsOnTaskStepId(studentHandsOnTaskStepId);
|
|
|
|
studentHandsOnTaskStepQuery.setStudentHandsOnTaskStepId(studentHandsOnTaskStepId);
|
|
|
|
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
if(null != list && list.size()>0){
|
|
|
|
if (null != list && list.size() > 0) {
|
|
|
|
return list.get(0);
|
|
|
|
return list.get(0);
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public StudentHandsOnTaskStep getInfo (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public StudentHandsOnTaskStep getInfo(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
List<StudentHandsOnTaskStep> list = studentHandsOnTaskStepDao.getValuesByQuery(studentHandsOnTaskStepQuery);
|
|
|
|
if(null != list && list.size()>0){
|
|
|
|
if (null != list && list.size() > 0) {
|
|
|
|
return list.get(0);
|
|
|
|
return list.get(0);
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){
|
|
|
|
public JsonResult importTemplate(List<FileEntity> fileEntityList, List<Long> list, CoreUser coreUser) {
|
|
|
|
List<String[]>errMsg = new ArrayList<>();
|
|
|
|
List<String[]> errMsg = new ArrayList<>();
|
|
|
|
String msg ="";
|
|
|
|
String msg = "";
|
|
|
|
int count = 0;
|
|
|
|
int count = 0;
|
|
|
|
Date date = new Date();
|
|
|
|
Date date = new Date();
|
|
|
|
for(int item=0;null != fileEntityList && item<fileEntityList.size();item++){
|
|
|
|
for (int item = 0; null != fileEntityList && item < fileEntityList.size(); item++) {
|
|
|
|
FileEntity fileEntity = fileEntityList.get(item);
|
|
|
|
FileEntity fileEntity = fileEntityList.get(item);
|
|
|
|
if(null != fileEntity){
|
|
|
|
if (null != fileEntity) {
|
|
|
|
File file = new File(fileEntity.getAbsoluteUrl());
|
|
|
|
File file = new File(fileEntity.getAbsoluteUrl());
|
|
|
|
if(file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx",fileEntity.getFormat())){
|
|
|
|
if (file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx", fileEntity.getFormat())) {
|
|
|
|
Workbook wb = null;
|
|
|
|
Workbook wb = null;
|
|
|
|
InputStream is = null;
|
|
|
|
InputStream is = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
is = new FileInputStream(fileEntity.getAbsoluteUrl());
|
|
|
|
is = new FileInputStream(fileEntity.getAbsoluteUrl());
|
|
|
|
if("xls".equals(fileEntity.getFormat())){
|
|
|
|
if ("xls".equals(fileEntity.getFormat())) {
|
|
|
|
wb = new HSSFWorkbook(is);
|
|
|
|
wb = new HSSFWorkbook(is);
|
|
|
|
}else if("xlsx".equals(fileEntity.getFormat())){
|
|
|
|
} else if ("xlsx".equals(fileEntity.getFormat())) {
|
|
|
|
wb = new XSSFWorkbook(is);
|
|
|
|
wb = new XSSFWorkbook(is);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
@ -235,13 +260,13 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
if(null != is){
|
|
|
|
if (null != is) {
|
|
|
|
is.close();
|
|
|
|
is.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}catch (Exception e){
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(wb != null){
|
|
|
|
if (wb != null) {
|
|
|
|
//获取Sheet1
|
|
|
|
//获取Sheet1
|
|
|
|
Sheet sheet = wb.getSheet("Sheet1");
|
|
|
|
Sheet sheet = wb.getSheet("Sheet1");
|
|
|
|
//获取最大行数
|
|
|
|
//获取最大行数
|
|
|
@ -252,47 +277,47 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
int colNum = firstRow.getPhysicalNumberOfCells();
|
|
|
|
int colNum = firstRow.getPhysicalNumberOfCells();
|
|
|
|
|
|
|
|
|
|
|
|
String[] columns = {
|
|
|
|
String[] columns = {
|
|
|
|
"课程开课",
|
|
|
|
"课程开课",
|
|
|
|
"课程实操",
|
|
|
|
"课程实操",
|
|
|
|
"课程实操任务",
|
|
|
|
"课程实操任务",
|
|
|
|
"题干",
|
|
|
|
"题干",
|
|
|
|
"得分",
|
|
|
|
"得分",
|
|
|
|
"创建时间",
|
|
|
|
"创建时间",
|
|
|
|
"教师",
|
|
|
|
"教师",
|
|
|
|
"学生"
|
|
|
|
"学生"
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Map<String,Integer> map = new HashMap<>();//获取需要的表头的列
|
|
|
|
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
|
|
|
|
|
|
|
|
|
|
|
|
//从第一列找到需要的表头
|
|
|
|
//从第一列找到需要的表头
|
|
|
|
for (int i=0; i<colNum; i++){
|
|
|
|
for (int i = 0; i < colNum; i++) {
|
|
|
|
String cellData = getCellFormatValue(firstRow.getCell(i));
|
|
|
|
String cellData = getCellFormatValue(firstRow.getCell(i));
|
|
|
|
for(int j=0;j<columns.length;j++){
|
|
|
|
for (int j = 0; j < columns.length; j++) {
|
|
|
|
if(columns[j].equals(cellData)){
|
|
|
|
if (columns[j].equals(cellData)) {
|
|
|
|
map.put(columns[j],i);
|
|
|
|
map.put(columns[j], i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//验证所需要的表头是否全
|
|
|
|
//验证所需要的表头是否全
|
|
|
|
Integer flag = 0;
|
|
|
|
Integer flag = 0;
|
|
|
|
for(int i=0;i<columns.length;i++){
|
|
|
|
for (int i = 0; i < columns.length; i++) {
|
|
|
|
if(null != map.get(columns[i])){
|
|
|
|
if (null != map.get(columns[i])) {
|
|
|
|
flag ++;
|
|
|
|
flag++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(flag != columns.length){
|
|
|
|
if (flag != columns.length) {
|
|
|
|
String str = " ";
|
|
|
|
String str = " ";
|
|
|
|
for(int i=0;i<columns.length;i++){
|
|
|
|
for (int i = 0; i < columns.length; i++) {
|
|
|
|
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", ");
|
|
|
|
str += "\"" + columns[i] + "\"" + (i == columns.length - 1 ? "" : ", ");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return JsonResult.failMessage("导入失败,表格表头应包含"+str);
|
|
|
|
return JsonResult.failMessage("导入失败,表格表头应包含" + str);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 1; i<rowNum; i++) {
|
|
|
|
for (int i = 1; i < rowNum; i++) {
|
|
|
|
Row row = sheet.getRow(i);
|
|
|
|
Row row = sheet.getRow(i);
|
|
|
|
if(null == row){
|
|
|
|
if (null == row) {
|
|
|
|
errMsg.add(new String[]{"第"+(i+1)+"数据为空"});
|
|
|
|
errMsg.add(new String[]{"第" + (i + 1) + "数据为空"});
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -309,69 +334,57 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
String teacherId = getCellFormatValue(row.getCell(map.get(columns[10])));
|
|
|
|
String teacherId = getCellFormatValue(row.getCell(map.get(columns[10])));
|
|
|
|
String studentId = getCellFormatValue(row.getCell(map.get(columns[11])));
|
|
|
|
String studentId = getCellFormatValue(row.getCell(map.get(columns[11])));
|
|
|
|
//TODO 判断(如重复等复杂判断要额外写)
|
|
|
|
//TODO 判断(如重复等复杂判断要额外写)
|
|
|
|
if(StringUtils.isBlank(teacherOpenCourseId)){
|
|
|
|
if (StringUtils.isBlank(teacherOpenCourseId)) {
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行课程开课为空"});
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行课程开课为空"});
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(handsOnId)) {
|
|
|
|
if(StringUtils.isBlank(handsOnId)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[1]) + 1) + "列,第" + (i + 1) + "行课程实操为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行课程实操为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(handsOnTaskId)) {
|
|
|
|
if(StringUtils.isBlank(handsOnTaskId)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[2]) + 1) + "列,第" + (i + 1) + "行课程实操任务为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行课程实操任务为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(stem)) {
|
|
|
|
if(StringUtils.isBlank(stem)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[3]) + 1) + "列,第" + (i + 1) + "行题干为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行题干为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(questionType)) {
|
|
|
|
if(StringUtils.isBlank(questionType)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[4]) + 1) + "列,第" + (i + 1) + "行题型为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行题型为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(myOptions)) {
|
|
|
|
if(StringUtils.isBlank(myOptions)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[5]) + 1) + "列,第" + (i + 1) + "行我的选项为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行我的选项为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(rightKey)) {
|
|
|
|
if(StringUtils.isBlank(rightKey)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[6]) + 1) + "列,第" + (i + 1) + "行正确答案为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行正确答案为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(theoryStatus)) {
|
|
|
|
if(StringUtils.isBlank(theoryStatus)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[7]) + 1) + "列,第" + (i + 1) + "行状态为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行状态为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(theoryScore)) {
|
|
|
|
if(StringUtils.isBlank(theoryScore)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[8]) + 1) + "列,第" + (i + 1) + "行得分为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行得分为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(createTime)) {
|
|
|
|
if(StringUtils.isBlank(createTime)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[9]) + 1) + "列,第" + (i + 1) + "行创建时间为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[9])+1)+"列,第"+(i+1)+"行创建时间为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(teacherId)) {
|
|
|
|
if(StringUtils.isBlank(teacherId)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[10]) + 1) + "列,第" + (i + 1) + "行教师为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[10])+1)+"列,第"+(i+1)+"行教师为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else if (StringUtils.isBlank(studentId)) {
|
|
|
|
if(StringUtils.isBlank(studentId)){
|
|
|
|
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[11]) + 1) + "列,第" + (i + 1) + "行学生为空"});
|
|
|
|
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[11])+1)+"列,第"+(i+1)+"行学生为空"});
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}else
|
|
|
|
} else {
|
|
|
|
{
|
|
|
|
//TODO 保存
|
|
|
|
//TODO 保存
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = new StudentHandsOnTaskStep();
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = new StudentHandsOnTaskStep();
|
|
|
|
studentHandsOnTaskStep.setTeacherOpenCourseId(Long.parseLong(teacherOpenCourseId));
|
|
|
|
studentHandsOnTaskStep.setTeacherOpenCourseId(Long.parseLong(teacherOpenCourseId));
|
|
|
|
studentHandsOnTaskStep.setHandsOnId(Long.parseLong(handsOnId));
|
|
|
|
studentHandsOnTaskStep.setHandsOnId(Long.parseLong(handsOnId));
|
|
|
|
studentHandsOnTaskStep.setHandsOnTaskId(Long.parseLong(handsOnTaskId));
|
|
|
|
studentHandsOnTaskStep.setHandsOnTaskId(Long.parseLong(handsOnTaskId));
|
|
|
|
studentHandsOnTaskStep.setStem(stem);
|
|
|
|
studentHandsOnTaskStep.setStem(stem);
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(new BigDecimal(theoryScore));
|
|
|
|
studentHandsOnTaskStep.setTheoryScore(new BigDecimal(theoryScore));
|
|
|
|
studentHandsOnTaskStep.setCreateTime(TimeTool.getTime(createTime));
|
|
|
|
studentHandsOnTaskStep.setCreateTime(TimeTool.getTime(createTime));
|
|
|
|
studentHandsOnTaskStep.setOrgId(coreUser.getOrgId());
|
|
|
|
studentHandsOnTaskStep.setOrgId(coreUser.getOrgId());
|
|
|
|
studentHandsOnTaskStep.setUserId(coreUser.getId());
|
|
|
|
studentHandsOnTaskStep.setUserId(coreUser.getId());
|
|
|
|
studentHandsOnTaskStep.setTeacherId(Long.parseLong(teacherId));
|
|
|
|
studentHandsOnTaskStep.setTeacherId(Long.parseLong(teacherId));
|
|
|
|
studentHandsOnTaskStep.setStudentId(Long.parseLong(studentId));
|
|
|
|
studentHandsOnTaskStep.setStudentId(Long.parseLong(studentId));
|
|
|
|
|
|
|
|
|
|
|
|
count++;
|
|
|
|
count++;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -379,18 +392,18 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
JsonResult jsonResult = new JsonResult();
|
|
|
|
JsonResult jsonResult = new JsonResult();
|
|
|
|
jsonResult.setCode(count>0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode());
|
|
|
|
jsonResult.setCode(count > 0 ? JsonReturnCode.SUCCESS.getCode() : JsonReturnCode.FAIL.getCode());
|
|
|
|
jsonResult.setData(errMsg);
|
|
|
|
jsonResult.setData(errMsg);
|
|
|
|
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:""));
|
|
|
|
jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "<br>" + msg : ""));
|
|
|
|
return jsonResult;
|
|
|
|
return jsonResult;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<Map<String,Object>> getExcelValues (StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery){
|
|
|
|
public List<Map<String, Object>> getExcelValues(StudentHandsOnTaskStepQuery studentHandsOnTaskStepQuery) {
|
|
|
|
return studentHandsOnTaskStepDao.getExcelValues(studentHandsOnTaskStepQuery);
|
|
|
|
return studentHandsOnTaskStepDao.getExcelValues(studentHandsOnTaskStepQuery);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public JsonResult<StudentHandsOnTaskStep> getHandsOnTaskkStepByTaskId(Long taskId,Integer sourceType, CoreUser coreUser) {
|
|
|
|
public JsonResult<StudentHandsOnTaskStep> getHandsOnTaskkStepByTaskId(Long taskId, Integer sourceType, CoreUser coreUser) {
|
|
|
|
//查询登录用的学生id
|
|
|
|
//查询登录用的学生id
|
|
|
|
if (!coreUser.isStudent()) {
|
|
|
|
if (!coreUser.isStudent()) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
@ -399,7 +412,7 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = this.sqlManager.lambdaQuery(StudentHandsOnTaskStep.class).andEq(StudentHandsOnTaskStep::getHandsOnTaskId, taskId)
|
|
|
|
StudentHandsOnTaskStep studentHandsOnTaskStep = this.sqlManager.lambdaQuery(StudentHandsOnTaskStep.class).andEq(StudentHandsOnTaskStep::getHandsOnTaskId, taskId)
|
|
|
|
.andEq(StudentHandsOnTaskStep::getStudentId, student.getStudentId()).singleSimple();
|
|
|
|
.andEq(StudentHandsOnTaskStep::getStudentId, student.getStudentId()).singleSimple();
|
|
|
|
if (studentHandsOnTaskStep == null) {
|
|
|
|
if (studentHandsOnTaskStep == null) {
|
|
|
|
if (Objects.equals(sourceType,2)){
|
|
|
|
if (Objects.equals(sourceType, 2)) {
|
|
|
|
return JsonResult.failMessage("该任务未完成");
|
|
|
|
return JsonResult.failMessage("该任务未完成");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
studentHandsOnTaskStep = new StudentHandsOnTaskStep();
|
|
|
|
studentHandsOnTaskStep = new StudentHandsOnTaskStep();
|
|
|
@ -426,15 +439,17 @@ public class StudentHandsOnTaskStepService extends CoreBaseService<StudentHandsO
|
|
|
|
map.put("rightAnswer", assessment.getHandsOnSimulationTasksAssessmentAnswer());
|
|
|
|
map.put("rightAnswer", assessment.getHandsOnSimulationTasksAssessmentAnswer());
|
|
|
|
map.put("studentAnswer", "");
|
|
|
|
map.put("studentAnswer", "");
|
|
|
|
map.put("score", assessment.getHandsOnSimulationTasksAssessmentScore());
|
|
|
|
map.put("score", assessment.getHandsOnSimulationTasksAssessmentScore());
|
|
|
|
|
|
|
|
map.put("handsOnSimulationTasksAssessmentId", assessment.getHandsOnSimulationTasksAssessmentId());
|
|
|
|
list.add(map);
|
|
|
|
list.add(map);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
studentHandsOnTaskStep.setStem(JSONArray.toJSONString(list));
|
|
|
|
studentHandsOnTaskStep.setStem(JSONArray.toJSONString(list));
|
|
|
|
studentHandsOnTaskStep.setStems(list);
|
|
|
|
studentHandsOnTaskStep.setStems(list);
|
|
|
|
this.insert(studentHandsOnTaskStep);
|
|
|
|
this.insert(studentHandsOnTaskStep);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
String videoFile = studentHandsOnTaskStep.getStem();
|
|
|
|
String videoFile = studentHandsOnTaskStep.getStem();
|
|
|
|
if (StringUtils.isNotEmpty(videoFile)) {
|
|
|
|
if (StringUtils.isNotEmpty(videoFile)) {
|
|
|
|
studentHandsOnTaskStep.setStems(JSONArray.parseObject(videoFile, new TypeReference<List<Map<String,Object>>>(){}));
|
|
|
|
studentHandsOnTaskStep.setStems(JSONArray.parseObject(videoFile, new TypeReference<List<Map<String, Object>>>() {
|
|
|
|
|
|
|
|
}));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|