package com.zcloud.controller.eduStudy; import com.zcloud.controller.base.BaseController; import com.zcloud.service.eduStudy.*; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.entity.Response; import com.zcloud.entity.TrainingPlanDao; import com.zcloud.service.corp.CorpInfoService; import com.zcloud.service.system.DepartmentService; import com.zcloud.service.system.PostService; import com.zcloud.service.system.UsersService; import com.zcloud.util.*; import fr.opensagres.xdocreport.document.IXDocReport; import fr.opensagres.xdocreport.document.registry.XDocReportRegistry; import fr.opensagres.xdocreport.template.IContext; import fr.opensagres.xdocreport.template.TemplateEngineKind; import fr.opensagres.xdocreport.template.formatter.FieldsMetadata; import fr.opensagres.xdocreport.template.formatter.NullImageBehaviour; import org.apache.commons.lang.StringUtils; import org.apache.shiro.crypto.hash.SimpleHash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 说明:学员管理 * 作者:zhangyue * 时间:2021-07-03 * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/student") public class StudentController extends BaseController { public static final String fileNumberPrefix = "XYBH-"; @Autowired private UsersService usersService; @Autowired private StudentService studentService; @Autowired private DepartmentService departmentService; @Autowired private PostService postService; @Autowired private ClassPostService classPostService; @Autowired private InitPageDataUtil initPageDataUtil; @Autowired private StageStudentRelationService stageStudentRelationService; @Autowired private PostPaperService postPaperService; @Autowired private ClassService classService; @Autowired private CorpInfoService corpInfoService; /** * 新增 * * @param * @throws Exception */ @RequestMapping(value = "/add") // @RequiresPermissions("student:add") @ResponseBody public Object add() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("USER_ID_CARD", pd.get("USER_ID_CARD").toString().replace("x", "X")); //身份证最后小写x转换成大写X pd.put("FILE_NUMBER", fileNumberPrefix + DateUtil.getSdfTimesSSS()); if (pd.get("CLASS_ID") == null || Tools.isEmpty(pd.get("CLASS_ID").toString()) || pd.get("ENTERPRISE_ID") == null || Tools.isEmpty(pd.get("ENTERPRISE_ID").toString())) { map.put("result", "error"); //返回结果 map.put("msg", "数据不全,请联系管理员"); return map; } if (!IdcardUtils.validateCard(pd.getString("USER_ID_CARD"))) { map.put("result", "error"); //返回结果 map.put("msg", "身份证号校验不通过,请核对信息"); return map; } // 查询班级信息 PageData classInfo = classService.findById(pd); // state 不是1 的班级。只允许在 班级内已经有的 部门-工种 下添加学员。 // int fileNum = studentService.findByFileNumber(pd); String importClassId = (String) pd.get("CLASS_ID"); String idCard = (String) pd.get("USER_ID_CARD"); PageData info = studentService.findByFileNumber(pd); // 编号如果不为0 那么肯定有记录 user无需添加 身份证比较过了 可以修改班级内的信息 if (!"0".equals(info.get("num").toString())) { // 库里有数据 if (Integer.valueOf(String.valueOf(info.get("num"))) >= 1) { // 查一下 是这个档案编号的人 看是不是这个班级里的 是可修改 PageData userCard = studentService.findUserCardByFileNumber(pd); if (userCard != null && !userCard.get("USER_ID_CARD").toString().equals(idCard)) { map.put("result", "error"); //返回结果 map.put("msg", "档案编号已经存在。"); return map; } // if (!userCard.getString("CLASS_ID").equals(importClassId)) { // map.put("result", "error"); //返回结果 // map.put("msg", "档案编号已经存在。"); // return map; // } } } // PageData ent = enterpriseService.findById(pd); // if (ent == null || ent.get("ENTERPRISE_ID") == null) { // map.put("result", "error"); //返回结果 // map.put("msg", "被培训企业不存在,请联系管理员"); // return map; // } pd.put("STUDENT_ID", this.get32UUID()); //主键 initPageDataUtil.initSave(pd); // 初始化新建时间等基本信息 pd.put("STUDENT_ID", this.get32UUID()); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); pd.put("USERNAME", pd.get("USER_ID_CARD")); pd.put("ENTERPRISE_ID", pd.getString("ENTERPRISE_ID")); pd.put("PERSONNELTYPE", "6");// 账号类型 pd.put("CERTIFICATETYPE", "4bed7fac8fe24ad4b5c0c69321fd5916"); pd.put("STATE", "1"); if (pd.get("POST_NAME") == null || StringUtils.isBlank(pd.getString("POST_NAME"))) { PageData _post = postService.findById(pd); pd.put("POST_NAME", _post.getString("NAME")); } if (pd.get("DEPARTMENT_NAME") == null || StringUtils.isBlank(pd.getString("DEPARTMENT_NAME"))) { PageData _department = departmentService.findById(pd); pd.put("DEPARTMENT_NAME", _department.getString("NAME")); } // 查询是否有此账号 PageData studentUser = usersService.findByIdCard(pd); // PageData userCount = usersService.countUserByIdCrd(pageData); // 此学员没有账号时,添加此账号 if (studentUser == null || studentUser.get("USER_ID") == null) { studentUser = pd; studentUser.put("USER_ID", this.get32UUID()); studentUser.put("PASSWORD", new SimpleHash("SHA-1", pd.get("USER_ID_CARD").toString(), "666666").toString()); //密码加密 studentUser.put("ROLE_ID", "ac93b53f01da44eeb9210d557b97a65e"); studentUser.put("STATUS", "0"); studentUser.put("AUTHENTICATION", "0"); studentUser.put("CULTURAL_LEVEL", pd.get("DEGREE_OF_EDUCATION")); usersService.saveUser(studentUser); } pd.put("USER_ID", studentUser.get("USER_ID")); pd.put("CLASS_ID", pd.get("CLASS_ID")); // 查看本班级是否添加过这个学员,若添加过,则编辑,若没有,则新增 List _student = studentService.findByIdCardInClass(pd); if (_student != null && _student.size() >= 2) { map.put("result", "error"); //返回结果 map.put("msg", "本班级存在重复人员,请联系管理员!"); return map; } boolean isClassStart = false; // state 不是1 的班级。只允许在 班级内已经有的 部门-工种 下添加学员。 if (classInfo != null && classInfo.get("STATE") != null && !"1".equals(classInfo.getString("STATE"))) { isClassStart = true; } if (_student == null || _student.size() <= 0) { // 已开班,增加学习记录 if (isClassStart) { saveStageStudent(pd); } // 已开班,新增学员时校验培训人次 if (isClassStart) { PageData peoplecount = corpInfoService.peoplecountlist(pd); int surpluscount = (int) peoplecount.get("PEOPLECOUNT") - Integer.parseInt(peoplecount.get("TRAININGCOUNT").toString()) - 1; //充值总人次-使用人次-该新增学员 if (surpluscount < 0) { map.put("result", "error"); //返回结果 map.put("msg", "人次不足,请及时续费!"); return map; } } studentService.save(pd); List posts = classPostService.findInClass(pd); if (posts == null || posts.size() <= 0) { PageData classPost = new PageData(); classPost.put("CLASSPOST_ID", this.get32UUID()); initPageDataUtil.initSave(classPost); classPost.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); classPost.put("ENTERPRISE_ID", pd.get("ENTERPRISE_ID")); classPost.put("CLASS_ID", pd.get("CLASS_ID")); classPost.put("DEPARTMENT_ID", pd.get("DEPARTMENT_ID")); classPost.put("POST_ID", pd.get("POST_ID")); PageData post = postService.findById(pd); if (post == null || post.size() <= 0) { map.put("result", "error"); //返回结果 map.put("msg", "工种不存在,请联系管理员!"); return map; } classPost.put("POST_NAME", post.getString("NAME")); PageData department = departmentService.findById(classPost); if (department == null || department.size() <= 0) { // throw new RuntimeException("数据异常:[部门不存在,请联系管理员]"); map.put("result", "error"); //返回结果 map.put("msg", "部门不存在,请联系管理员!"); return map; } classPost.put("DEPARTMENT_NAME", department.getString("NAME")); classPostService.save(classPost); } } else { if (isClassStart) { map.put("result", "error"); //返回结果 map.put("msg", "开班后不能添加重复人员!"); return map; } // 已开班,新增学员时校验培训人次 if (isClassStart) { PageData peoplecount = corpInfoService.peoplecountlist(pd); int surpluscount = (int) peoplecount.get("PEOPLECOUNT") - Integer.parseInt(peoplecount.get("TRAININGCOUNT").toString()) - 1; //充值总人次-使用人次-该新增学员 if (surpluscount < 0) { map.put("result", "error"); //返回结果 map.put("msg", "人次不足,请及时续费!"); return map; } } List posts = classPostService.findInClass(pd); if (posts == null || posts.size() <= 0) { PageData classPost = new PageData(); classPost.put("CLASSPOST_ID", this.get32UUID()); initPageDataUtil.initSave(classPost); classPost.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); classPost.put("ENTERPRISE_ID", pd.get("ENTERPRISE_ID")); classPost.put("CLASS_ID", pd.get("CLASS_ID")); classPost.put("DEPARTMENT_ID", pd.get("DEPARTMENT_ID")); classPost.put("POST_ID", pd.get("POST_ID")); PageData post = postService.findById(pd); if (post == null || post.size() <= 0) { map.put("result", "error"); //返回结果 map.put("message", "工种不存在,请联系管理员!"); return map; } classPost.put("POST_NAME", post.getString("NAME")); PageData department = departmentService.findById(classPost); if (department == null || department.size() <= 0) { map.put("result", "error"); //返回结果 map.put("message", "部门不存在,请联系管理员!"); return map; } classPost.put("DEPARTMENT_NAME", department.getString("NAME")); classPostService.save(classPost); // 2、检查旧工种是否有人关联,没人关联则删除 List _post = classPostService.findInClass(_student.get(0)); if (_post != null && _post.size() <= 1) { classPostService.deleteByClassPost(_post.get(0)); } studentService.delete(_student.get(0)); studentService.save(pd); } } map.put("result", errInfo); return map; } /** * 删除 * * @param * @throws Exception */ @RequestMapping(value = "/deleteStudent") // @RequiresPermissions("student:del") @ResponseBody public Object deleteStudent() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = studentService.findById(pd); initPageDataUtil.initEdit(pd); // 删除学员信息 studentService.delete(pd); // 查看班级内 是否还有与该学员相同工种的学员,如果没有。则删除班级内工种及相关关系 int samePostCount = studentService.CountByClassPost(pd); if (samePostCount <= 0) { // 此工种没有学员时,删除工种,及工种关联数据 PageData cp = classPostService.findByPostDept(pd); pd.put("CLASSPOST_ID", cp.get("CLASSPOST_ID")); classPostService.delete(pd); } // 删除学习记录 stageStudentRelationService.deleteByStu(pd); map.put("result", errInfo); //返回结果 return map; } /** * 去修改页面获取数据 * * @param * @throws Exception */ @RequestMapping(value = "/goEdit") // @RequiresPermissions("student:edit") @ResponseBody public Object goEdit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = studentService.findById(pd); //根据ID读取 map.put("pd", pd); map.put("result", errInfo); return map; } /** * 下载模版 * * @param response * @throws Exception */ @RequestMapping(value = "/downExcel") public void downExcel(HttpServletResponse response) throws Exception { FileDownload.fileDownload(response, PathUtil.getProjectpath() + Const.FILEPATHFILE + "studentExcelTemplate.xls", "学员导入模板.xls"); } /** * 下载模版(职业健康专用) * * @param response * @throws Exception */ @RequestMapping(value = "/downExcelForHealth") public void downExcelForHealth(HttpServletResponse response) throws Exception { FileDownload.fileDownload(response, PathUtil.getProjectpath() + Const.FILEPATHFILE + "studentExcelForHealthTemplate.xls", "学员导入模板.xls"); } public void saveStageStudent(PageData pd) throws Exception { PageData paper = postPaperService.findByClassPost(pd); // 保存班级-学员关系 PageData stageStudent = new PageData(); stageStudent.put("STAGESTUDENTRELATION_ID", this.get32UUID()); initPageDataUtil.initSave(stageStudent); stageStudent.put("USER_ID", pd.get("USER_ID")); PageData c = classService.findById(pd); // -----------未用------- if ("bd73ea91fdcd4ef38ecd6f45a42f26af".equals(c.get("TRAINTYPE"))) {// 全员有考试 stageStudent.put("STAGEEXAMSTATE", "1"); // 阶段考试状态(0.不考试 1.未开始 2.考试中 3.考试完成 4.未参加) } else if ("9cbe83925bbb4d84bc057b5eb5607a53".equals(c.get("TRAINTYPE"))) { // 三岗没有 stageStudent.put("STAGEEXAMSTATE", "0"); // 阶段考试状态(0.不考试 1.未开始 2.考试中 3.考试完成 4.未参加) } // -------------在用---------- if ("1".equals(c.get("EXAMINATION").toString())) { stageStudent.put("STAGEEXAMSTATE", "1"); } else { stageStudent.put("STAGEEXAMSTATE", "0"); } stageStudent.put("STAGEEXAMSCORE", "-1"); stageStudent.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); stageStudent.put("COMPLETE_COURSEWARE", "0"); stageStudent.put("COMPLETE_CLASSHOUR", "0"); stageStudent.put("STUDYSTATE", "0"); stageStudent.put("CLASS_ID", pd.get("CLASS_ID")); stageStudent.put("STUDENT_ID", pd.get("STUDENT_ID")); if (paper != null && paper.get("STAGEEXAMPAPERINPUT_ID") != null && Tools.notEmpty(paper.getString("STAGEEXAMPAPERINPUT_ID"))) { stageStudent.put("STAGEEXAMPAPER_ID", paper.get("STAGEEXAMPAPERINPUT_ID")); stageStudent.put("PAPER_ID", paper.get("STAGEEXAMPAPERINPUT_ID")); } stageStudentRelationService.save(stageStudent); } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/classStudentList") @ResponseBody public Object classStudentList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); if ("0".equals(Jurisdiction.getIS_MAIN())){ pd.put("USER_ID", Jurisdiction.getUSER_ID()); } page.setPd(pd); List varList = studentService.list(page); //列出PostPaper列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/classForHealthStudentList") @ResponseBody public Object classForHealthStudentList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); page.setPd(pd); List varList = studentService.healthlist(page); //列出PostPaper列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/exportStudentList") @ResponseBody public Object exportStudentList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); page.setPd(pd); List varList = studentService.listAllByExoprt(page); //列出PostPaper列表 map.put("varList", varList); map.put("result", errInfo); return map; } @RequestMapping("/list") @ResponseBody public Response list(Page page) throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); request.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); if ("0".equals(Jurisdiction.getIS_MAIN())){ request.put("USER_ID", Jurisdiction.getUSER_ID()); } page.setPd(request); List list = usersService.simplelistPage(page); response.put("list", list); response.put("page", page); return response.OK(); } catch (Exception e) { e.printStackTrace(); return response.error(e.getMessage()); } } @RequestMapping("/getInfo") @ResponseBody public Response getInfo() throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); PageData info = usersService.getInfo(request); response.put("info", info); return response.OK(); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } } @RequestMapping("/setState") @ResponseBody public Response setState() throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); usersService.setState(request); return response.OK(); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } } @RequestMapping("getLogs") @ResponseBody public Response getLogs(Page page) throws Exception { Response response = Response.getResponse(); try { PageData request = this.getPageData(); page.setPd(request); List list = studentService.getUserStudyList(page); response.put("list", list); response.put("page", page); return response.OK(); } catch (Exception e) { e.printStackTrace(); return response.errorMessage(e.getMessage()); } } /** * 获取效果评估表 * * @return */ @RequestMapping(value = "/getEvaluation") @ResponseBody public Object getEvaluation() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData pageData = studentService.getEvaluation(pd); map.put("pageData", pageData); map.put("result", errInfo); return map; } @RequestMapping("/hs") public void hs(HttpServletResponse response) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String now = DateUtil.getSdfTimesSSS(); // 表头 PageData pageData = studentService.getEvaluation(pd); File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "student-estimate.docx"); InputStream mbwj = new FileInputStream(file); //注册xdocreport实例并加载FreeMarker模板引擎 IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); //创建xdocreport上下文对象 IContext context = report.createContext(); SimpleDateFormat formatdate = new SimpleDateFormat("yyyy年MM月dd日"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); context.put("value1", Tools.notEmpty(pageData.getString("NAME")) ? pageData.getString("NAME") : ""); context.put("value2", Tools.notEmpty(pageData.getString("USER_ID_CARD")) ? pageData.getString("USER_ID_CARD") : ""); context.put("value3", Tools.notEmpty(pageData.getString("OPERATTIME")) ? formatdate.format(formatter.parse(pageData.getString("OPERATTIME"))) : ""); context.put("value4", Tools.notEmpty(pageData.getString("SEX")) ? pageData.getString("SEX") : ""); context.put("value5", Tools.notEmpty(pageData.getString("DEGREE_OF_EDUCATION")) ? pageData.getString("DEGREE_OF_EDUCATION") : ""); context.put("value6", Tools.notEmpty(pageData.getString("MAJOR")) ? pageData.getString("MAJOR") : ""); context.put("value7", Tools.notEmpty(pageData.getString("DUTIES")) ? pageData.getString("DUTIES") : ""); context.put("value8", Tools.notEmpty(pageData.getString("DEPARTMENT_NAME")) ? pageData.getString("DEPARTMENT_NAME") : ""); context.put("value9", Tools.notEmpty(pageData.getString("POST_NAME")) ? pageData.getString("POST_NAME") : ""); context.put("value10", Tools.notEmpty(pageData.getString("INDUSTRY_ALL_NAME")) ? pageData.getString("INDUSTRY_ALL_NAME") : ""); context.put("value11", Tools.notEmpty(pageData.getString("PHONE")) ? pageData.getString("PHONE") : ""); context.put("value12", Tools.notEmpty(pageData.getString("START_TIME")) ? formatdate.format(formatter.parse(pageData.getString("START_TIME"))) : ""); context.put("value13", Tools.notEmpty(pageData.getString("END_TIME")) ? formatdate.format(formatter.parse(pageData.getString("END_TIME"))) : ""); context.put("value14", Tools.notEmpty(pageData.getString("CLASS_NAME")) ? pageData.getString("CLASS_NAME") : ""); context.put("value15", Tools.notEmpty(pageData.getString("coursewareName")) ? pageData.getString("coursewareName") : ""); context.put("value16", Tools.notEmpty(pageData.getString("STAGEEXAMSCORE")) ? pageData.getString("STAGEEXAMSCORE") : ""); context.put("value17", Tools.notEmpty(pageData.getString("correct")) ? pageData.getString("correct") : ""); context.put("value18", Tools.notEmpty(pageData.getString("error")) ? pageData.getString("error") : ""); context.put("value19", Tools.notEmpty(pageData.getString("errorVideoName")) ? pageData.getString("errorVideoName") : ""); context.put("value20", Tools.notEmpty(pageData.getString("STRENGTHEN_EXAMNAME")) ? pageData.getString("STRENGTHEN_EXAMNAME") : ""); context.put("value21", Tools.notEmpty(pageData.getString("STRENGTHEN_EXAMSCORE")) ? pageData.getString("STRENGTHEN_EXAMSCORE") : ""); context.put("value22", Tools.notEmpty(pageData.getString("STRENGTHEN_OPERATTIME")) ? formatdate.format(formatter.parse(pageData.getString("STRENGTHEN_OPERATTIME"))) : ""); context.put("value23", Tools.notEmpty(pageData.getString("STRENGTHENEXAMSCORE")) ? pageData.getString("STRENGTHENEXAMSCORE") : ""); context.put("value24", Tools.notEmpty(pageData.getString("PERSONNEL_TYPE")) ? pageData.getString("PERSONNEL_TYPE") : ""); List strengthenexamrecord = (List) pageData.get("strengthenexamrecord"); List list1 = new ArrayList<>(); for (int i = 0; i < strengthenexamrecord.size(); i++) { TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); String questiontype = strengthenexamrecord.get(i).getString("QUESTIONTYPE"); if (("1").equals(questiontype)) { trainingPlanDao.setValue1("(单选题)"); trainingPlanDao.setValue5(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONA")) ? "A." + strengthenexamrecord.get(i).getString("OPTIONA") : ""); trainingPlanDao.setValue6(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONB")) ? "B." + strengthenexamrecord.get(i).getString("OPTIONB") : ""); trainingPlanDao.setValue7(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONC")) ? "C." + strengthenexamrecord.get(i).getString("OPTIONC") : ""); trainingPlanDao.setValue8(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIOND")) ? "D." + strengthenexamrecord.get(i).getString("OPTIOND") : ""); } else if (("2").equals(questiontype)) { trainingPlanDao.setValue1("(多选题)"); trainingPlanDao.setValue5(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONA")) ? "A." + strengthenexamrecord.get(i).getString("OPTIONA") : ""); trainingPlanDao.setValue6(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONB")) ? "B." + strengthenexamrecord.get(i).getString("OPTIONB") : ""); trainingPlanDao.setValue7(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONC")) ? "C." + strengthenexamrecord.get(i).getString("OPTIONC") : ""); trainingPlanDao.setValue8(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIOND")) ? "D." + strengthenexamrecord.get(i).getString("OPTIOND") : ""); } else if (("3").equals(questiontype)) { trainingPlanDao.setValue1("(判断题)"); trainingPlanDao.setValue5(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONA")) ? "A." + strengthenexamrecord.get(i).getString("OPTIONA") : ""); trainingPlanDao.setValue6(Tools.notEmpty(strengthenexamrecord.get(i).getString("OPTIONB")) ? "B." + strengthenexamrecord.get(i).getString("OPTIONB") : ""); trainingPlanDao.setValue7(""); trainingPlanDao.setValue8(""); } else if (("4").equals(questiontype)) { trainingPlanDao.setValue1("(填空题)"); trainingPlanDao.setValue5(""); trainingPlanDao.setValue6(""); trainingPlanDao.setValue7(""); trainingPlanDao.setValue8(""); } else { trainingPlanDao.setValue1(""); trainingPlanDao.setValue5(""); trainingPlanDao.setValue6(""); trainingPlanDao.setValue7(""); trainingPlanDao.setValue8(""); } trainingPlanDao.setValue2(String.valueOf(i + 1)); trainingPlanDao.setValue3(Tools.notEmpty(strengthenexamrecord.get(i).getString("QUESTIONDRY")) ? strengthenexamrecord.get(i).getString("QUESTIONDRY") : ""); trainingPlanDao.setValue4(Tools.notEmpty(strengthenexamrecord.get(i).getString("SCORE")) ? strengthenexamrecord.get(i).getString("SCORE") : ""); trainingPlanDao.setValue9(Tools.notEmpty(strengthenexamrecord.get(i).getString("ANSWER")) ? strengthenexamrecord.get(i).getString("ANSWER") : ""); trainingPlanDao.setValue10(Tools.notEmpty(strengthenexamrecord.get(i).getString("ANSWERRIGHT")) ? strengthenexamrecord.get(i).getString("ANSWERRIGHT") : ""); trainingPlanDao.setValue11(Tools.notEmpty(strengthenexamrecord.get(i).getString("DESCR")) ? strengthenexamrecord.get(i).getString("DESCR") : ""); list1.add(trainingPlanDao); } context.put("list1", list1); FieldsMetadata fm = report.createFieldsMetadata(); fm.load("list1", TrainingPlanDao.class, true); // word模板中图片标签对应关系 pic---word模板中图片标签 item-- word模板中图片列表的遍历项,即模板中«@before-row[#list list2 as item]» 的item item.pic中的pic 为 后台实体类的图片字段名 fm.addFieldAsImage("pic", "item.pic", NullImageBehaviour.RemoveImageTemplate); //Word模板中的表格数据对应的集合类型 FileOutputStream out = new FileOutputStream(new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".docx")); report.process(context, out); WordToPdfUtil.docToPdf(PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".docx", PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".pdf"); FileDownload.fileDownload(response, PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".pdf", "安全生产教育培训动态评估报告.pdf"); //删除本地word pdf File word = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".docx"); word.delete(); File pdf = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".pdf"); pdf.delete(); } /** * 学员统计列表 * * @param page * @throws Exception */ @RequestMapping(value = "/studentList") @ResponseBody public Object studentList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("STARTTIME"))) { pd.put("STARTTIME", pd.getString("STARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("ENDTIME"))) { pd.put("ENDTIME", pd.getString("ENDTIME") + " 23:59:59"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("OVERSTARTTIME"))) { pd.put("OVERSTARTTIME", pd.getString("OVERSTARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("OVERENDTIME"))) { pd.put("OVERENDTIME", pd.getString("OVERENDTIME") + " 23:59:59"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("CREATESTARTTIME"))) { pd.put("CREATESTARTTIME", pd.getString("CREATESTARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("CREATENDTIME"))) { pd.put("CREATENDTIME", pd.getString("CREATENDTIME") + " 23:59:59"); } pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); page.setPd(pd); List varList = studentService.studentlistPage(page); map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 学员统计列表导出 * * @param * @throws Exception */ @RequestMapping(value = "/derivedRecord") @ResponseBody public Object derivedRecord() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("STARTTIME"))) { pd.put("STARTTIME", pd.getString("STARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("ENDTIME"))) { pd.put("ENDTIME", pd.getString("ENDTIME") + " 23:59:59"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("OVERSTARTTIME"))) { pd.put("OVERSTARTTIME", pd.getString("OVERSTARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("OVERENDTIME"))) { pd.put("OVERENDTIME", pd.getString("OVERENDTIME") + " 23:59:59"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("CREATESTARTTIME"))) { pd.put("CREATESTARTTIME", pd.getString("CREATESTARTTIME") + " 00:00:00"); } if (org.apache.commons.lang3.StringUtils.isNotBlank(pd.getString("CREATENDTIME"))) { pd.put("CREATENDTIME", pd.getString("CREATENDTIME") + " 23:59:59"); } pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); List varList = studentService.derivedRecord(pd); map.put("varList", varList); map.put("result", errInfo); return map; } }