|
@@ -6,6 +6,7 @@ import java.util.*;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.MarkerDTO;
|
|
|
import cn.com.qmth.stmms.common.enums.*;
|
|
|
import cn.com.qmth.stmms.common.utils.*;
|
|
|
import com.google.common.collect.Lists;
|
|
@@ -15,6 +16,7 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -66,6 +68,9 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
+
|
|
|
+ @Value("${marker.showBtnImportAndBtnUpdateImport}")
|
|
|
+ private String showBtnImport;
|
|
|
|
|
|
@RequestMapping
|
|
|
public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
|
|
@@ -82,6 +87,7 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
}
|
|
|
model.addAttribute("query", query);
|
|
|
+ model.addAttribute("showBtnImport",showBtnImport);
|
|
|
model.addAttribute("subjectList", getMarkExamSubject(examId));
|
|
|
return "modules/exam/param/markerList";
|
|
|
} else {
|
|
@@ -446,13 +452,13 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
return "redirect:" + "/admin/exam-param/marker";
|
|
|
}
|
|
|
- @RequestMapping(value = "/UpdateLoginNameTemplate")
|
|
|
- public String UpdateLoginNameTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
|
+ @RequestMapping(value = "/updateLoginNameTemplate")
|
|
|
+ public String updateLoginNameTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
|
try {
|
|
|
- String fileName = "评卷员用户名修改导入模板.xlsx";
|
|
|
- List<Marker> list = Lists.newArrayList();
|
|
|
- list.add(new Marker());
|
|
|
- new ExportExcel("评卷员数据", Marker.class, 2).setDataList(list).write(response, fileName).dispose();
|
|
|
+ String fileName = "评卷员账号修改导入模板.xlsx";
|
|
|
+ List<MarkerDTO> list = Lists.newArrayList();
|
|
|
+ list.add(new MarkerDTO());
|
|
|
+ new ExportExcel("评卷员账号修改数据", MarkerDTO.class, 2).setDataList(list).write(response, fileName).dispose();
|
|
|
return null;
|
|
|
} catch (Exception e) {
|
|
|
addMessage(redirectAttributes, "导入模板下载失败!失败信息:" + e.getMessage());
|
|
@@ -505,7 +511,7 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
successNum = markerService.batchSave(saveList);
|
|
|
if (failureNum > 0) {
|
|
|
- failureMsg.insert(0, ",失败 " + failureNum + " 条用户");
|
|
|
+ failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
|
}
|
|
|
addMessage(redirectAttributes, "已成功导入 " + successNum + " 条评卷员" + failureMsg);
|
|
|
} catch (Exception e) {
|
|
@@ -514,6 +520,51 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
return "redirect:" + "/admin/exam-param/marker";
|
|
|
}
|
|
|
+ @RequestMapping(value = "/importUpdate", method = RequestMethod.POST)
|
|
|
+ public String importUpdateFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ try {
|
|
|
+ int successNum = 0;
|
|
|
+ int failureNum = 0;
|
|
|
+ StringBuilder failureMsg = new StringBuilder();
|
|
|
+ ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
|
+ List<MarkerDTO> list = ei.getDataList(MarkerDTO.class);
|
|
|
+ List<Marker> saveList = new LinkedList<Marker>();
|
|
|
+ Map<String, Marker> current = null;
|
|
|
+ current = new HashMap<String, Marker>();
|
|
|
+ List<Marker> list2 = markerService.findExamAndCommon(examId,false);
|
|
|
+ for (Marker s : list2) {
|
|
|
+ current.put(s.getLoginName(), s);
|
|
|
+ }
|
|
|
+ for (MarkerDTO markerDTO : list) {
|
|
|
+ if (StringUtils.isBlank(markerDTO.getSubjectCode()) || StringUtils.isBlank(markerDTO.getLoginName())
|
|
|
+ || StringUtils.isBlank(markerDTO.getNewLoginName()) || StringUtils.isBlank(markerDTO.getPassword())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ MarkerExcelError markerExcelError = checkExcelData(markerDTO,current);
|
|
|
+ if (markerExcelError.equals(MarkerExcelError.MARKER)) {
|
|
|
+ Marker marker = current.get(markerDTO.getLoginName());
|
|
|
+ marker.setLoginName(markerDTO.getNewLoginName());
|
|
|
+ marker.setPassword(markerDTO.getPassword());
|
|
|
+ saveList.add(marker);
|
|
|
+ } else {
|
|
|
+ failureMsg.append("<br/>科目代码(" + markerDTO.getSubjectCode()+")原评卷员("+markerDTO.getLoginName() +")更换新评卷员为("+markerDTO.getNewLoginName()+ ")失败!");
|
|
|
+ failureMsg.append("---->失败原因:("+markerExcelError.getName()+")");
|
|
|
+ failureNum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ successNum = markerService.batchSave(saveList);
|
|
|
+ if (failureNum > 0) {
|
|
|
+ failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
|
+ }
|
|
|
+ addMessage(redirectAttributes, "已成功导入 " + successNum + " 条" + failureMsg);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("Batch import marker error!", e);
|
|
|
+ addMessage(redirectAttributes, "导入修改评卷员账号失败!失败信息:" + e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:" + "/admin/exam-param/marker";
|
|
|
+ }
|
|
|
private MarkerExcelError checkLongNameAndPassword(Marker marker, Map<String, ExamSubject> current,Map<String, Marker> saveMap) {
|
|
|
Marker previous = null;
|
|
|
|
|
@@ -539,4 +590,26 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
return MarkerExcelError.MARKERED;
|
|
|
}
|
|
|
+
|
|
|
+ //校验excel中数据
|
|
|
+ public MarkerExcelError checkExcelData(MarkerDTO markerDTO,Map<String, Marker> current ){
|
|
|
+ Marker marker = current.get(markerDTO.getLoginName());
|
|
|
+ if(markerDTO != null){
|
|
|
+ if(markerDTO.getPassword().length() < 4){
|
|
|
+ return MarkerExcelError.MARKERPWERROR;
|
|
|
+ }
|
|
|
+ if(marker != null){
|
|
|
+ if(marker.getSubjectCode().equals(markerDTO.getSubjectCode())){
|
|
|
+ if(markerService.countByLoginName(markerDTO.getNewLoginName()) > 0) return MarkerExcelError.MARKERNEWMISS;
|
|
|
+ }else{
|
|
|
+ return MarkerExcelError.MARKERCODEMISS;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ return MarkerExcelError.MARKERMISS;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ return MarkerExcelError.MARKERNOTINFO;
|
|
|
+ }
|
|
|
+ return MarkerExcelError.MARKER;
|
|
|
+ }
|
|
|
}
|