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.TrainingPlanDao; import com.zcloud.service.corp.CorpInfoService; import com.zcloud.service.system.DictionariesService; import com.zcloud.util.*; import fr.opensagres.xdocreport.document.IXDocReport; import fr.opensagres.xdocreport.document.images.FileImageProvider; import fr.opensagres.xdocreport.document.images.IImageProvider; 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 org.apache.commons.lang3.StringUtils; import org.jfree.data.general.DefaultPieDataset; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; 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.*; import java.util.stream.Collectors; /** * 说明:班级管理 * 作者:luoxiaobao * 时间:2022-05-26 * 官网:www.zcloudchina.com * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/class") public class ClassController extends BaseController { @Autowired private ClassService classService; @Autowired private StudentService studentService; @Autowired private PostPaperService postPaperService; @Resource private DictionariesService dictionariesService; @Resource private CorpInfoService corpInfoService; @Autowired private ClassCurriculumService classCurriculumService; @Autowired private ClassPostService classPostService; @Autowired private InitPageDataUtil initPageDataUtil; @Autowired private StageStudentRelationService stageStudentRelationService; @Autowired private CourseStudyVideoRecordService courseStudyVideoRecordService; /** * @Description: 机构或者企业下得所有班级 * @Author: dearLin * @Date: 2023/6/5/005 14:08 * @Param: [] [] * @Return: java.lang.Object */ @RequestMapping(value = "/getClassAllByCorOrEnt") @ResponseBody public Object getClassAllByCorp() { PageData pageData = this.getPageData(); // 2 3 是机构 pageData.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); List varList = classService.getClassAllByCorp(pageData); pageData.put("varList", varList); pageData.put("result", "success"); return pageData; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list") @ResponseBody public Object list(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); int classNum = 0; PageData data = new PageData(); //注意数据权限。企业看企业数据,机构看机构数据 pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); classNum = classService.getClassNum(pd); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); if (StringUtils.isNotBlank(pd.getString("STARTTIME"))) { pd.put("STARTTIME", pd.getString("STARTTIME") + " 00:00:00"); } if (StringUtils.isNotBlank(pd.getString("ENDTIME"))) { pd.put("ENDTIME", pd.getString("ENDTIME") + " 23:59:59"); } if (StringUtils.isNotBlank(pd.getString("OVERSTARTTIME"))) { pd.put("OVERSTARTTIME", pd.getString("OVERSTARTTIME") + " 00:00:00"); } if (StringUtils.isNotBlank(pd.getString("OVERENDTIME"))) { pd.put("OVERENDTIME", pd.getString("OVERENDTIME") + " 23:59:59"); } page.setPd(pd); // 机构首页统计 传参orgcount List varList = classService.list(page); //列出Class列表 int stuNum = studentService.getStuNumByCrop(pd); map.put("varList", varList); map.put("stuNum", stuNum); map.put("clsNum", classNum); map.put("page", page); map.put("result", errInfo); return map; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/classForHealthList") @ResponseBody public Object classForHealthList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); PageData data = new PageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim()); page.setPd(pd); List varList = classService.classForHealthList(page); //列出Class列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } @RequestMapping(value = "/strengthenlist") @ResponseBody public Object strengthenlist(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); page.setPd(pd); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); List varList = classService.listStrengthenClassById(page); //列出Class列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } @RequestMapping(value = "/strengthenstudentlist") @ResponseBody public Object strengthenstudentlist(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); page.setPd(pd); // 机构首页统计 传参orgcount List varList = classService.listStrengthenStudentById(page); //列出Class列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } @RequestMapping(value = "/allstrengthenlist") @ResponseBody public Object allstrengthenlist(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); /*String training_content = pd.getString("TRAINING_CONTENT"); //关键词检索条件 if(Tools.notEmpty(training_content))pd.put("TRAINING_CONTENT", training_content.trim()); pd.put("ENTERPRISE_ID", Jurisdiction.getENTERPRISE_ID());*/ page.setPd(pd); List varList = classService.listallstrengthenlist(page); //列出TrainingPlan列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } @RequestMapping(value = "/personnelstrengthenlist") @ResponseBody public Object personnelstrengthenlist(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); Object USER_ID = pd.get("USER_ID"); if (USER_ID == null) { pd.put("USER_ID", Jurisdiction.getUSER_ID()); } page.setPd(pd); List varList = classService.listStudentStrengthenbyId(page); //列出TrainingPlan列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 新增 * * @param * @throws Exception */ @RequestMapping(value = "/add") // @RequiresPermissions("class:add") @ResponseBody @Transactional public Object add() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CLASS_ID", this.get32UUID()); //主键 pd.put("CREATOR", Jurisdiction.getUsername()); //添加人 pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //修改时间 pd.put("ISDELETE", "0"); //是否删除(0:有效 1:删除) pd.put("STATE", "0"); // 状态 String code = ""; if (pd.get("TRAINTYPE") != null && Tools.notEmpty(pd.get("TRAINTYPE").toString())) { if ("9cbe83925bbb4d84bc057b5eb5607a53".equals(pd.get("TRAINTYPE").toString())) {// 三岗人员 code = "SGRY_"; } else if ("bd73ea91fdcd4ef38ecd6f45a42f26af".equals(pd.get("TRAINTYPE").toString())) {// 全员培训 code = "QYPX_"; } } pd.put("START_TIME", pd.get("START_TIME") + " 00:00:00"); pd.put("END_TIME", pd.get("END_TIME") + " 23:59:59"); pd.put("CODE", code + DateUtil.getSdfTimesSSS()); pd.put("STATE", "1"); classService.save(pd); map.put("result", errInfo); map.put("CLASS_ID", pd.getString("CLASS_ID")); return map; } /** * 修改 * * @param * @throws Exception */ @RequestMapping(value = "/edit") // @RequiresPermissions("class:edit") @ResponseBody @Transactional public Object edit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); boolean isThreeDuty = false; if (pd.get("TRAINTYPE") != null && Tools.notEmpty(pd.get("TRAINTYPE").toString()) && "9cbe83925bbb4d84bc057b5eb5607a53".equals(pd.get("TRAINTYPE").toString())) { isThreeDuty = true; } pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 pd.put("ISDELETE", "0"); //是否删除(0:有效 1:删除) pd.put("START_TIME", pd.get("START_TIME").toString().length() > 10 ? pd.get("START_TIME") : pd.get("START_TIME") + " 00:00:00"); pd.put("END_TIME", pd.get("END_TIME").toString().length() > 10 ? pd.get("END_TIME") : pd.get("END_TIME") + " 23:59:59"); if ("0".equals(pd.get("EXAMINATION").toString())) { pd.put("NUMBEROFEXAMS", 0); } classService.edit(pd); // 三岗类型删除考试相关信息 if (isThreeDuty) { postPaperService.deleteByClass(pd); } map.put("CLASS_ID", pd.getString("CLASS_ID")); map.put("ENTERPRISE_ID", pd.getString("ENTERPRISE_ID")); map.put("result", errInfo); return map; } /** * 删除 * * @param * @throws Exception */ @RequestMapping(value = "/delete") // @RequiresPermissions("class:del") @ResponseBody public Object delete() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 classService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /** * 延期 * * @param * @throws Exception */ @RequestMapping(value = "/postpone") @ResponseBody @Transactional public Object postpone() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String endTimeStr = pd.getString("TIME") + " 23:59:59"; Date end_Time = formatter.parse(endTimeStr); pd = classService.findById(pd); Date start_Time = formatter.parse(pd.getString("START_TIME")); Date oldEndTime = formatter.parse(pd.getString("END_TIME")); String oldSTATE = pd.getString("STATE"); Date now = new Date(); if (now.before(start_Time)) { pd.put("STATE", "4"); } else if (now.before(end_Time)) { pd.put("STATE", "5"); if (oldEndTime.before(now) && ("6").equals(oldSTATE)) { List list = classService.listStagestudentrelationByClassId(pd); for (PageData pageData : list) { if ("4".equals(pageData.getString("STAGEEXAMSTATE"))) { pageData.put("STAGEEXAMSTATE", "1"); } if ("4".equals(pageData.getString("STUDYSTATE"))) { // 判断是否开始学习 PageData data = new PageData(); PageData stuent = studentService.findById(pageData); data.put("POST_ID", stuent.getString("POST_ID")); data.put("CLASS_ID", pd.getString("CLASS_ID")); data.put("STUDENT_ID", pageData.getString("STUDENT_ID")); List varList = courseStudyVideoRecordService.getAllByuserInfo(data); List creattime = varList.stream().filter(item -> null != item.getString("CREATTIME")).collect(Collectors.toList()); List FINISHTIMES = varList.stream().filter(item -> null != item.getString("FINISHTIME") && !"".equals(item.getString("FINISHTIME"))).collect(Collectors.toList()); if (creattime.size() > 0 && FINISHTIMES.size() != creattime.size()) { pageData.put("STUDYSTATE", "1"); } else { pageData.put("STUDYSTATE", "0"); } } classService.updateStagestudentrelation(pageData); } } } else { pd.put("STATE", "6"); } initPageDataUtil.initEdit(pd); pd.put("NEW_END_TIME", endTimeStr); classService.editState(pd); map.put("result", errInfo); return map; } /** * 班级完成 * * @param * @throws Exception */ @RequestMapping(value = "/finish") @ResponseBody @Transactional public Object finish() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = classService.findById(pd); boolean isThreeDuty = false; String examination = pd.get("EXAMINATION").toString(); if (pd.get("TRAINTYPE") != null && Tools.notEmpty(pd.get("TRAINTYPE").toString()) && "9cbe83925bbb4d84bc057b5eb5607a53".equals(pd.get("TRAINTYPE").toString())) { isThreeDuty = true; } // 判断有没有学员 int stuNum = studentService.countByClass(pd); if (stuNum < 1) { errInfo = "error"; map.put("result", errInfo); map.put("msg", "未添加学员,请先添加学员"); return map; } // 判断有没有课程 int curNum = classCurriculumService.countByClass(pd); if (curNum < 1) { errInfo = "error"; map.put("result", errInfo); map.put("msg", "未添加课程,请先添加课程"); return map; } // 判断工种有没有关联课程, 全员时。判断有没有考试 List classPostList = classPostService.countCurByClass(pd); StringBuffer msgStr = new StringBuffer(); for (PageData cp : classPostList) { if (Integer.parseInt(cp.get("CURNUM").toString()) <= 0) { msgStr.append("工种:" + cp.get("POST_NAME").toString() + "未关联课程;"); } // 1需要考试 if ("1".equals(pd.get("EXAMINATION").toString())) { if (!isThreeDuty && Integer.parseInt(cp.get("PAPERNUM").toString()) <= 0) { msgStr.append("工种:" + cp.get("POST_NAME").toString() + "未关联考试;"); } } } // 判断每个课程有没有工种 List countCurByClassPost = classPostService.countCurByClassPost(pd); for (PageData cp : countCurByClassPost) { if (Integer.parseInt(cp.get("CURRICULUM_NUM").toString()) <= 0) { msgStr.append("课程:" + cp.get("CURRICULUMNAME").toString() + "未关联工种;"); } } if (msgStr.length() > 0) { errInfo = "error"; map.put("result", errInfo); map.put("msg", msgStr); return map; } SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = formatter.parse(pd.getString("START_TIME")); Date endTime = formatter.parse(pd.getString("END_TIME")); Date now = new Date(); if (now.before(startTime)) { pd.put("STATE", "4"); } else if (now.before(endTime)) { pd.put("STATE", "5"); } else { pd.put("STATE", "6"); } // 给各学员增加stageStudent 表 List stuList = studentService.listByClass(pd); List paperList = postPaperService.listByClass(pd); Map paperMap = new HashMap(); for (PageData paper : paperList) { paperMap.put(paper.getString("POST_ID"), paper.getString("STAGEEXAMPAPERINPUT_ID")); } for (PageData stu : stuList) { saveStageStudent(stu, paperMap, examination); } initPageDataUtil.initEdit(pd); classService.editState(pd); map.put("result", errInfo); return map; } public void saveStageStudent(PageData pd, Map paperMap, String examination) throws Exception { // 保存班级-学员关系 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 ("0".equals(examination)) { // 三岗没有考试 stageStudent.put("STAGEEXAMSTATE", "0"); // 阶段考试状态(0.不考试 1.未开始 2.考试中 3.考试完成 4.未参加) } else {// 全员有考试 stageStudent.put("STAGEEXAMSTATE", "1"); // 阶段考试状态(0.不考试 1.未开始 2.考试中 3.考试完成 4.未参加) } 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")); stageStudent.put("STAGEEXAMPAPER_ID", paperMap.get(pd.get("POST_ID"))); stageStudent.put("PAPER_ID", paperMap.get(pd.get("POST_ID"))); stageStudentRelationService.save(stageStudent); } @RequestMapping(value = "/goEdit") // @RequiresPermissions("class:edit") @ResponseBody public Object goEdit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = classService.findById(pd); //根据ID读取 pd.put("OFFICIAL_SEAL_PATH", Const.HTTPFILEURL + pd.getString("OFFICIAL_SEAL_PATH")); List POSSESSIONALL = new ArrayList(); if (pd.get("PROVINCE") != null && Tools.notEmpty(pd.get("PROVINCE").toString())) { POSSESSIONALL.add(pd.get("PROVINCE").toString()); } if (pd.get("CITY") != null && Tools.notEmpty(pd.get("CITY").toString())) { POSSESSIONALL.add(pd.get("CITY").toString()); } if (pd.get("COUNTY") != null && Tools.notEmpty(pd.get("COUNTY").toString())) { POSSESSIONALL.add(pd.get("COUNTY").toString()); } if (pd.get("VILLAGE") != null && Tools.notEmpty(pd.get("VILLAGE").toString())) { POSSESSIONALL.add(pd.get("VILLAGE").toString()); } if (pd.get("STREET") != null && Tools.notEmpty(pd.get("STREET").toString())) { POSSESSIONALL.add(pd.get("STREET").toString()); } if (POSSESSIONALL != null && POSSESSIONALL.size() > 0) { pd.put("posOption", initDicTreeByNum(POSSESSIONALL.get(POSSESSIONALL.size() - 1), POSSESSIONALL.size())); } map.put("pd", pd); map.put("result", errInfo); return map; } @RequestMapping(value = "/findById") @ResponseBody public Object findById() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = classService.findById(pd); //根据ID读取 map.put("pd", pd); map.put("result", errInfo); return map; } /** * 初始化数据字典懒加载下拉树(根据编码) * * @param * @return * @throws Exception */ public List initDicTreeByNum(String dictionaries_bianma, int level) throws Exception { PageData dic = new PageData(); dic.put("BIANMA", dictionaries_bianma); dic = dictionariesService.findByBianma(dic); dic.put("value", dic.get("DICTIONARIES_ID")); dic.put("numValue", dic.get("BIANMA")); dic.put("id", dic.get("DICTIONARIES_ID")); dic.put("label", dic.get("NAME")); dic.put("level", level); List industryOption = dictionariesService.getTreeFromBelowHebei(new ArrayList(), dic); return industryOption; } @RequestMapping(value = "/editNumberofexams") @ResponseBody public Object editNumberofexams() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); classService.editNumberofexams(pd); //根据ID读取 map.put("result", errInfo); return map; } /** * 获取效果评估表 * * @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 = classService.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 = classService.getEvaluation(pd); File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "class-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"); Map ratioMap = (Map) pageData.get("ratioMap"); List list1 = new ArrayList<>(); for (String key : ratioMap.keySet()) { TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); trainingPlanDao.setValue1(key); trainingPlanDao.setValue2(ratioMap.get(key).toString()); list1.add(trainingPlanDao); } context.put("list1", list1); List NO_PASS_List = (List) pageData.get("PASS_List"); List list2 = new ArrayList<>(); for (int i = 0; i < NO_PASS_List.size(); i++) { TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); trainingPlanDao.setValue1(String.valueOf(i + 1)); trainingPlanDao.setValue2(NO_PASS_List.get(i).getString("NAME")); trainingPlanDao.setValue3(NO_PASS_List.get(i).getString("USER_ID_CARD")); trainingPlanDao.setValue4(NO_PASS_List.get(i).getString("PHONE")); trainingPlanDao.setValue5(NO_PASS_List.get(i).getString("SEX")); trainingPlanDao.setValue6(NO_PASS_List.get(i).getString("STRENGTHENEXAMSCORE")); list2.add(trainingPlanDao); } context.put("list2", list2); List PASS_List = (List) pageData.get("NO_PASS_List"); List list3 = new ArrayList<>(); for (int i = 0; i < PASS_List.size(); i++) { TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); trainingPlanDao.setValue1(String.valueOf(i + 1)); trainingPlanDao.setValue2(PASS_List.get(i).getString("NAME")); trainingPlanDao.setValue3(PASS_List.get(i).getString("USER_ID_CARD")); trainingPlanDao.setValue4(PASS_List.get(i).getString("PHONE")); trainingPlanDao.setValue5(PASS_List.get(i).getString("SEX")); trainingPlanDao.setValue6(PASS_List.get(i).getString("STRENGTHENEXAMSCORE")); list3.add(trainingPlanDao); } context.put("list3", list3); DefaultPieDataset pds = new DefaultPieDataset(); if (Double.valueOf(pageData.getString("count1")) > 0) { pds.setValue("正确率100%", Double.valueOf(pageData.getString("count1"))); } if (Double.valueOf(pageData.getString("count2")) > 0) { pds.setValue("正确率80%-100%", Double.valueOf(pageData.getString("count2"))); } if (Double.valueOf(pageData.getString("count3")) > 0) { pds.setValue("正确率80%以下", Double.valueOf(pageData.getString("count3"))); } File jpg = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + "classChart-" + now + ".jpg"); ChartUtil.createPieChart("统计图", pds, PathUtil.getProjectpath() + Const.FILEPATHFILE + "classChart-" + now + ".jpg"); context.put("value1", Tools.notEmpty(pageData.getString("CORP_NAME")) ? pageData.getString("CORP_NAME") : ""); context.put("value2", Tools.notEmpty(pageData.getString("START_TIME")) ? formatdate.format(formatter.parse(pageData.getString("START_TIME"))) : ""); context.put("value3", Tools.notEmpty(pageData.getString("END_TIME")) ? formatdate.format(formatter.parse(pageData.getString("END_TIME"))) : ""); context.put("value4", Tools.notEmpty(pageData.getString("CLASS_NAME")) ? pageData.getString("CLASS_NAME") : ""); context.put("value5", Tools.notEmpty(pageData.getString("coursewareName")) ? pageData.getString("coursewareName") : ""); context.put("value6", Tools.notEmpty(pageData.get("EXMA_COUNT").toString()) ? pageData.get("EXMA_COUNT").toString() : ""); context.put("value7", Tools.notEmpty(pageData.get("PASS_COUNT").toString()) ? pageData.get("PASS_COUNT").toString() : ""); context.put("value8", Tools.notEmpty(pageData.get("NO_PASS_COUNT").toString()) ? pageData.get("NO_PASS_COUNT").toString() : ""); context.put("value9", Tools.notEmpty(pageData.getString("passRate")) ? pageData.getString("passRate") : ""); context.put("value10", Tools.notEmpty(pageData.getString("error")) ? pageData.getString("error") : ""); context.put("value11", Tools.notEmpty(pageData.getString("errorVideoName")) ? pageData.getString("errorVideoName") : ""); context.put("value12", Tools.notEmpty(pageData.get("STR_EXMA_COUNT").toString()) ? pageData.get("STR_EXMA_COUNT").toString() : ""); context.put("value13", Tools.notEmpty(pageData.get("STR_PASS_COUNT").toString()) ? pageData.get("STR_PASS_COUNT").toString() : ""); FieldsMetadata fm = report.createFieldsMetadata(); //Word模板中的表格数据对应的集合类型 fm.addFieldAsImage("pic"); IImageProvider iImageProvider = new FileImageProvider(jpg, false); context.put("pic", iImageProvider); report.setFieldsMetadata(fm); fm.load("list1", TrainingPlanDao.class, true); fm.load("list2", TrainingPlanDao.class, true); fm.load("list3", TrainingPlanDao.class, true); //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(); jpg.delete(); File pdf = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + "安全生产教育培训动态评估报告-" + now + ".pdf"); pdf.delete(); } }