541 lines
17 KiB
Plaintext
541 lines
17 KiB
Plaintext
|
|
package com.bonus.question.controller;
|
|||
|
|
|
|||
|
|
import java.io.InputStream;
|
|||
|
|
import java.text.SimpleDateFormat;
|
|||
|
|
import java.util.Date;
|
|||
|
|
import java.util.regex.Matcher;
|
|||
|
|
import java.util.regex.Pattern;
|
|||
|
|
|
|||
|
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|||
|
|
import org.apache.poi.hssf.usermodel.HSSFRow;
|
|||
|
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|||
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|||
|
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
|||
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|||
|
|
import org.apache.poi.ss.usermodel.Row;
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
import org.springframework.stereotype.Controller;
|
|||
|
|
import org.springframework.ui.Model;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|||
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|||
|
|
import org.springframework.web.multipart.MultipartFile;
|
|||
|
|
|
|||
|
|
import com.bonus.question.beans.QuestionBean;
|
|||
|
|
import com.bonus.question.service.QuestionService;
|
|||
|
|
import com.bonus.sys.AjaxRes;
|
|||
|
|
import com.bonus.sys.BaseController;
|
|||
|
|
import com.bonus.sys.GlobalConst;
|
|||
|
|
import com.bonus.sys.Page;
|
|||
|
|
import com.bonus.sys.beans.UserBean;
|
|||
|
|
import com.bonus.sys.service.UserService;
|
|||
|
|
|
|||
|
|
@Controller
|
|||
|
|
@RequestMapping("/backstage/question/")
|
|||
|
|
public class QuestionController extends BaseController<QuestionBean> {
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
QuestionService service;
|
|||
|
|
@Autowired
|
|||
|
|
UserService userService;
|
|||
|
|
|
|||
|
|
@RequestMapping("questionList")
|
|||
|
|
public String questionList(Model model) {
|
|||
|
|
return "/question/questionTree";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("findByPage")
|
|||
|
|
public String findByPage(@RequestBody Page<QuestionBean> page, QuestionBean o, Model model) {
|
|||
|
|
try {
|
|||
|
|
o = page.getObj();
|
|||
|
|
page = service.findByPage(o, page);
|
|||
|
|
if (page.getResults() != null && page.getResults().size() != 0) {
|
|||
|
|
for (int i = 0; i < page.getResults().size(); i++) {
|
|||
|
|
QuestionBean bean = page.getResults().get(i);
|
|||
|
|
if (bean.getContent().trim().length() > 14) {
|
|||
|
|
String temp = bean.getContent().trim().substring(0, 14);
|
|||
|
|
temp += "..";
|
|||
|
|
bean.setContent(temp);
|
|||
|
|
}
|
|||
|
|
if (bean.getOperation().length() > 12) {
|
|||
|
|
String temp = bean.getOperation().trim().substring(0, 12);
|
|||
|
|
temp += "..";
|
|||
|
|
bean.setOperation(temp);
|
|||
|
|
}
|
|||
|
|
if (bean.getAnswer() != null && bean.getAnswer().length() > 4) {
|
|||
|
|
String temp = bean.getAnswer().trim().substring(0, 4);
|
|||
|
|
temp += "..";
|
|||
|
|
bean.setAnswer(temp);
|
|||
|
|
}
|
|||
|
|
page.getResults().set(i, bean);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
model.addAttribute("page", page);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return "/question/questionDetails";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("questionFormPage")
|
|||
|
|
public String questionFormPage(Model model) {
|
|||
|
|
return "/question/questionForm";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("findQuestionForm")
|
|||
|
|
public String questionFormPage(QuestionBean o, Model model) {
|
|||
|
|
try {
|
|||
|
|
String type = o.getType();
|
|||
|
|
o = service.findById(o);
|
|||
|
|
o.setType(type);
|
|||
|
|
model.addAttribute("question", o);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return "/question/questionForm";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("addQuestion")
|
|||
|
|
@ResponseBody
|
|||
|
|
public AjaxRes addQuestion(@RequestBody QuestionBean o) {
|
|||
|
|
AjaxRes ar = getAjaxRes();
|
|||
|
|
try {
|
|||
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式
|
|||
|
|
String date = df.format(new Date());
|
|||
|
|
o.setUploadTime(date);
|
|||
|
|
if (o.getClassification().equals("4") || o.getClassification().equals("5")
|
|||
|
|
|| o.getClassification().equals("6")) {
|
|||
|
|
o.setOperation("无");
|
|||
|
|
}
|
|||
|
|
ar = service.addQuestion(o);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
ar.setFailMsg("新增题目失败!");
|
|||
|
|
}
|
|||
|
|
return ar;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("updateQuestion")
|
|||
|
|
@ResponseBody
|
|||
|
|
public AjaxRes updateQuestion(@RequestBody QuestionBean o) {
|
|||
|
|
AjaxRes ar = getAjaxRes();
|
|||
|
|
try {
|
|||
|
|
if ((o.getOperation() == null || o.getOperation() == "")
|
|||
|
|
&& (o.getClassification().equals("4") || o.getClassification().equals("5"))) {
|
|||
|
|
o.setOperation("无");
|
|||
|
|
}
|
|||
|
|
ar = service.updateQuestion(o);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
ar.setFailMsg("修改题目失败!");
|
|||
|
|
}
|
|||
|
|
return ar;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping("deleteApply")
|
|||
|
|
@ResponseBody
|
|||
|
|
public AjaxRes deleteApply(QuestionBean o) {
|
|||
|
|
AjaxRes ar = getAjaxRes();
|
|||
|
|
try {
|
|||
|
|
String ids = o.getIds();
|
|||
|
|
String idsss = toChangeString(ids);
|
|||
|
|
o.setIds(idsss);
|
|||
|
|
ar = service.deleteApply(o);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString(), e);
|
|||
|
|
ar.setFailMsg("删除失败!");
|
|||
|
|
}
|
|||
|
|
return ar;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping(value = "import", method = RequestMethod.POST)
|
|||
|
|
@ResponseBody
|
|||
|
|
public AjaxRes export(@RequestParam("file") MultipartFile file) {
|
|||
|
|
AjaxRes ar = getAjaxRes();
|
|||
|
|
int errorNum = 0;
|
|||
|
|
int result = 0;
|
|||
|
|
try {
|
|||
|
|
// @RequestParam("file") MultipartFile file 是用来接收前端传递过来的文件
|
|||
|
|
// 创建workbook对象,读取整个文档
|
|||
|
|
InputStream inputStream = file.getInputStream();
|
|||
|
|
POIFSFileSystem poifsFileSystem = new POIFSFileSystem(inputStream);
|
|||
|
|
HSSFWorkbook wb = new HSSFWorkbook(poifsFileSystem);
|
|||
|
|
|
|||
|
|
// Sheet sheet1 = wb.getSheet("sheet1"); // excel文件的工作簿的名称
|
|||
|
|
|
|||
|
|
// 读取页脚sheet 第一页工作表
|
|||
|
|
HSSFSheet hssfSheet = wb.getSheetAt(0);
|
|||
|
|
|
|||
|
|
// 判断Sheet是否为空
|
|||
|
|
if (hssfSheet != null) {
|
|||
|
|
// 判断不为空 打印
|
|||
|
|
System.out.println(hssfSheet.getLastRowNum());
|
|||
|
|
// 获得数据的总行数
|
|||
|
|
int totalRowNum = hssfSheet.getLastRowNum();
|
|||
|
|
|
|||
|
|
// 要获得的值
|
|||
|
|
String content = ""; // 题目
|
|||
|
|
String operation = ""; // 选项
|
|||
|
|
String answer = ""; // 正确答案
|
|||
|
|
String classification = ""; // 题目类型
|
|||
|
|
String questionType = ""; // 题目分类
|
|||
|
|
String questionLevel = ""; // 题目难易程度
|
|||
|
|
|
|||
|
|
// 遍历每一行row,continue只是终止本次循环,接着还执行后面的循环
|
|||
|
|
for (int rownum = 2; rownum <= hssfSheet.getLastRowNum(); rownum++) { // 从第三行开始
|
|||
|
|
// 获取到每一行
|
|||
|
|
errorNum = rownum;
|
|||
|
|
HSSFRow sheetRow = hssfSheet.getRow(rownum);
|
|||
|
|
if (sheetRow != null && !isRowEmpty(sheetRow)) {
|
|||
|
|
|
|||
|
|
// 获得第i行对象
|
|||
|
|
Row row = hssfSheet.getRow(rownum);
|
|||
|
|
|
|||
|
|
// 获得获得第i行第1列的 String类型对象
|
|||
|
|
Cell cell = row.getCell((short) 1);
|
|||
|
|
content = cell.getStringCellValue().toString();
|
|||
|
|
// 获得获得第i行第2列的 String类型对象
|
|||
|
|
Cell cell1 = row.getCell((short) 2);
|
|||
|
|
operation = cell1.getStringCellValue().toString();
|
|||
|
|
if (row.getCell(3) != null) {
|
|||
|
|
row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
|
|||
|
|
answer = (row.getCell(3).getStringCellValue());
|
|||
|
|
}
|
|||
|
|
// 获取题目类型 int类型的值转换为string类型再由对象接收转换后的值
|
|||
|
|
if (row.getCell(5) != null) {
|
|||
|
|
row.getCell(5).setCellType(Cell.CELL_TYPE_STRING);
|
|||
|
|
classification = (row.getCell(5).getStringCellValue());
|
|||
|
|
}
|
|||
|
|
// 获取题目分类 int类型的值转换为string类型再由对象接收转换后的值
|
|||
|
|
if (row.getCell(6) != null) {
|
|||
|
|
row.getCell(6).setCellType(Cell.CELL_TYPE_STRING);
|
|||
|
|
questionType = (row.getCell(6).getStringCellValue());
|
|||
|
|
}
|
|||
|
|
// 获取题目难易程度 int类型的值转换为string类型再由对象接收转换后的值
|
|||
|
|
if (row.getCell(7) != null) {
|
|||
|
|
row.getCell(7).setCellType(Cell.CELL_TYPE_STRING);
|
|||
|
|
questionLevel = (row.getCell(7).getStringCellValue());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (content.isEmpty() || operation.isEmpty() || classification.isEmpty()
|
|||
|
|
|| questionType.isEmpty() || questionLevel.isEmpty()) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行有空值");
|
|||
|
|
System.out.println("判断为空 已进入");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 判断难易程度是否符合规则
|
|||
|
|
boolean isRule = isQuestionLevelTypeRule(questionLevel);
|
|||
|
|
if (!isRule) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行,难易程度不符合规则!");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 判断题目分类(题库id)是否符合规则
|
|||
|
|
isRule = isQuestionTypeRule(questionType);
|
|||
|
|
if (!isRule) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行,题目分类(题库id)不符合规则!");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 判断题目类型是否符合规则
|
|||
|
|
isRule = isClassificationRule(classification);
|
|||
|
|
if (!isRule) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行,题目类型不符合规则!");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 判断选项/正确答案是否符合规则
|
|||
|
|
if ("1".equals(classification) || "2".equals(classification) || "3".equals(classification)) {
|
|||
|
|
// 判断选项是否符合规则
|
|||
|
|
isRule = isOperationRule(operation);
|
|||
|
|
if (!isRule) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行,选项不符合规则!");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
// 判断正确答案是否符合规则
|
|||
|
|
isRule = isAnswerRule(answer, classification);
|
|||
|
|
if (!isRule) {
|
|||
|
|
ar.setFailMsg("导入失败,第" + (rownum + 1) + "行,正确答案不符合规则!");
|
|||
|
|
result = 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (result == 0) {
|
|||
|
|
// 从第三行开始
|
|||
|
|
for (int rownum = 2; rownum <= hssfSheet.getLastRowNum(); rownum++) {
|
|||
|
|
HSSFRow sheetRow = hssfSheet.getRow(rownum);
|
|||
|
|
if (sheetRow != null && !isRowEmpty(sheetRow)) {
|
|||
|
|
addSaveData(sheetRow);
|
|||
|
|
ar.setSucceedMsg(GlobalConst.IMP_SUCCEED);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString(), e);
|
|||
|
|
ar.setFailMsg("第" + errorNum + "行导入失败");
|
|||
|
|
}
|
|||
|
|
return ar;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 判断正确答案是否符合规则
|
|||
|
|
*
|
|||
|
|
* @param answer
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
private boolean isAnswerRule(String answer, String classification) {
|
|||
|
|
boolean tf = true;
|
|||
|
|
try {
|
|||
|
|
if ("1".equals(classification) || "2".equals(classification)) {
|
|||
|
|
Pattern pattern = Pattern.compile("[A-Z]*");
|
|||
|
|
Matcher matcher = pattern.matcher(answer);
|
|||
|
|
if (!matcher.matches()) {
|
|||
|
|
System.out.println(answer + "不全是大写字母");
|
|||
|
|
tf = false;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (!("正确".equals(answer) || "错误".equals(answer))) {
|
|||
|
|
tf = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.equals(e.toString());
|
|||
|
|
tf = false;
|
|||
|
|
}
|
|||
|
|
return tf;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 判断难易程度是否符合规则
|
|||
|
|
*
|
|||
|
|
* @param questionLevel
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
private boolean isQuestionLevelTypeRule(String questionLevel) {
|
|||
|
|
try {
|
|||
|
|
if ("1".equals(questionLevel) || "2".equals(questionLevel) || "3".equals(questionLevel)) {
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString());
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 判断题目分类(题库id)是否符合规则
|
|||
|
|
*
|
|||
|
|
* @param questionType
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
private boolean isQuestionTypeRule(String questionType) {
|
|||
|
|
boolean tf = true;
|
|||
|
|
try {
|
|||
|
|
int orgId = Integer.parseInt(questionType);
|
|||
|
|
UserBean bean = userService.findOrgId(orgId);
|
|||
|
|
if (bean == null) {
|
|||
|
|
tf = false;
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString());
|
|||
|
|
tf = false;
|
|||
|
|
}
|
|||
|
|
return tf;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 判断题目类型是否符合规则
|
|||
|
|
*
|
|||
|
|
* @param classification
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
private boolean isClassificationRule(String classification) {
|
|||
|
|
try {
|
|||
|
|
if ("1".equals(classification) || "2".equals(classification) || "3".equals(classification)
|
|||
|
|
|| "4".equals(classification) || "5".equals(classification) || "6".equals(classification)) {
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString());
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 判断选项是否符合规则
|
|||
|
|
*
|
|||
|
|
* @param operation
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
private boolean isOperationRule(String operation) {
|
|||
|
|
try {
|
|||
|
|
String[] op = operation.split(";");
|
|||
|
|
for (int j = 0; j < op.length; j++) {
|
|||
|
|
try {
|
|||
|
|
Integer.parseInt(op[j].charAt(0) + "");
|
|||
|
|
} catch (NumberFormatException e) {
|
|||
|
|
System.err.println("isOperationRule:" + operation);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
logger.error(e.toString());
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 判断该行是否为空
|
|||
|
|
public static boolean isRowEmpty(Row row) {
|
|||
|
|
int count = 0;
|
|||
|
|
for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
|
|||
|
|
Cell cell = row.getCell(c);
|
|||
|
|
if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
|
|||
|
|
count++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (count > 3) { // 表示是有效数据行
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void addSaveData(HSSFRow sheetRow) throws Exception {
|
|||
|
|
QuestionBean bean = new QuestionBean();
|
|||
|
|
String content = getValue(sheetRow.getCell(1));
|
|||
|
|
String operation = getValue(sheetRow.getCell(2));
|
|||
|
|
String answer = getValue(sheetRow.getCell(3));
|
|||
|
|
String keyword = getValue(sheetRow.getCell(4));
|
|||
|
|
String classification = change(getValue(sheetRow.getCell(5)));
|
|||
|
|
String questionType = change(getValue(sheetRow.getCell(6)));
|
|||
|
|
String questionLevel = change(getValue(sheetRow.getCell(7)));
|
|||
|
|
String questionGrade = "";
|
|||
|
|
if (classification.equals("1")) { // 单选
|
|||
|
|
questionGrade = "1";
|
|||
|
|
} else if (classification.equals("2")) { // 多选
|
|||
|
|
questionGrade = "2";
|
|||
|
|
String temp = "";
|
|||
|
|
for (int i = 0; i < answer.length(); i++) {
|
|||
|
|
temp += answer.charAt(i) + ",";
|
|||
|
|
}
|
|||
|
|
answer = temp.substring(0, temp.length() - 1);
|
|||
|
|
} else if (classification.equals("3")) { // 判断
|
|||
|
|
questionGrade = "1";
|
|||
|
|
operation = "1正确;2错误";
|
|||
|
|
if (answer.equals("正确")) {
|
|||
|
|
answer = "A";
|
|||
|
|
} else {
|
|||
|
|
answer = "B";
|
|||
|
|
}
|
|||
|
|
} else if (classification.equals("4")) { // 填空
|
|||
|
|
questionGrade = "2";
|
|||
|
|
String temp = answer.replace(';', ';');
|
|||
|
|
answer = temp;
|
|||
|
|
operation = "无";
|
|||
|
|
} else if (classification.equals("5")) { // 简答
|
|||
|
|
questionGrade = "5";
|
|||
|
|
String temp = answer.replace(';', ';');
|
|||
|
|
answer = temp;
|
|||
|
|
if (answer.charAt(answer.length() - 1) != ';') { // 如果answer不以分号结尾
|
|||
|
|
answer += ";";
|
|||
|
|
}
|
|||
|
|
operation = "无";
|
|||
|
|
// 处理关键字
|
|||
|
|
temp = keyword.replace(';', ';');
|
|||
|
|
keyword = temp;
|
|||
|
|
if (keyword.charAt(keyword.length() - 1) != ';') { // 如果keyword不以分号结尾
|
|||
|
|
keyword += ";";
|
|||
|
|
}
|
|||
|
|
// 关键字与标准答案互换
|
|||
|
|
temp = keyword;
|
|||
|
|
keyword = answer;
|
|||
|
|
answer = temp;
|
|||
|
|
} else if (classification.equals("6")) { // 案例
|
|||
|
|
questionGrade = "10";
|
|||
|
|
String temp = answer.replace(';', ';');
|
|||
|
|
answer = temp;
|
|||
|
|
if (answer.charAt(answer.length() - 1) != ';') { // 如果answer不以分号结尾
|
|||
|
|
answer += ";";
|
|||
|
|
}
|
|||
|
|
operation = "无";
|
|||
|
|
// 处理关键字
|
|||
|
|
temp = keyword.replace(';', ';');
|
|||
|
|
keyword = temp;
|
|||
|
|
if (keyword.charAt(keyword.length() - 1) != ';') { // 如果keyword不以分号结尾
|
|||
|
|
keyword += ";";
|
|||
|
|
}
|
|||
|
|
// 关键字与标准答案互换
|
|||
|
|
temp = keyword;
|
|||
|
|
keyword = answer;
|
|||
|
|
answer = temp;
|
|||
|
|
}
|
|||
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式
|
|||
|
|
String uploadTime = df.format(new Date());
|
|||
|
|
if (operation != null && operation != "") {
|
|||
|
|
operation = trimBlank(operation); // 去空格
|
|||
|
|
operation = operation.replace(" ", "");
|
|||
|
|
answer = answer.replace(" ", "");
|
|||
|
|
}
|
|||
|
|
bean.setContent(content);
|
|||
|
|
bean.setOperation(operation);
|
|||
|
|
bean.setAnswer(answer);
|
|||
|
|
bean.setClassification(classification);
|
|||
|
|
bean.setQuestionType(questionType);
|
|||
|
|
bean.setQuestionLevel(questionLevel);
|
|||
|
|
bean.setQuestionGrade(questionGrade);
|
|||
|
|
bean.setUploadTime(uploadTime);
|
|||
|
|
if (keyword != null) { // 只针对案例、简答题
|
|||
|
|
bean.setKeyword(keyword);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
service.addQuestion(bean);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 去除选项的不规范空格
|
|||
|
|
private static String trimBlank(String operation) {
|
|||
|
|
String str = operation.replace(';', ';');
|
|||
|
|
String[] s = str.split(";");
|
|||
|
|
String result = "";
|
|||
|
|
for (int i = 0; i < s.length; i++) {
|
|||
|
|
char start = s[i].charAt(0);
|
|||
|
|
String temp = s[i].substring(1, s[i].length()).trim();
|
|||
|
|
temp = start + temp + ";";
|
|||
|
|
result += temp;
|
|||
|
|
}
|
|||
|
|
return result.substring(0, result.length() - 1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private static String getValue(HSSFCell hssfCell) {
|
|||
|
|
// hssfCell.getCellType() 获取当前列的类型
|
|||
|
|
if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
|
|||
|
|
return String.valueOf(hssfCell.getBooleanCellValue());
|
|||
|
|
} else if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
|
|||
|
|
return String.valueOf(hssfCell.getNumericCellValue());
|
|||
|
|
} else {
|
|||
|
|
return String.valueOf(hssfCell.getStringCellValue());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 将double类型字符串转化为整型
|
|||
|
|
private static String change(String str) {
|
|||
|
|
if (str.indexOf('.') != -1) {
|
|||
|
|
return str.substring(0, str.indexOf('.'));
|
|||
|
|
} else {
|
|||
|
|
return str;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|