integrated_traffic/src/main/java/com/zcloud/controller/eduStudy/ClassController.java

720 lines
31 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
page.setPd(pd);
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
List<PageData> 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<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
page.setPd(pd);
// 机构首页统计 传参orgcount
List<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<String, String> map = new HashMap<String, String>();
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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<PageData> varList = courseStudyVideoRecordService.getAllByuserInfo(data);
List<PageData> creattime = varList.stream().filter(item -> null != item.getString("CREATTIME")).collect(Collectors.toList());
List<PageData> 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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<PageData> 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<PageData> stuList = studentService.listByClass(pd);
List<PageData> paperList = postPaperService.listByClass(pd);
Map<String, String> paperMap = new HashMap<String, String>();
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<String, String> 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<String, Object> map = new HashMap<String, Object>();
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<String> POSSESSIONALL = new ArrayList<String>();
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<String, Object> map = new HashMap<String, Object>();
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<PageData> 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<PageData> industryOption = dictionariesService.getTreeFromBelowHebei(new ArrayList<PageData>(), dic);
return industryOption;
}
@RequestMapping(value = "/editNumberofexams")
@ResponseBody
public Object editNumberofexams() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Object> map = new HashMap<String, Object>();
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<String, Double> ratioMap = (Map<String, Double>) pageData.get("ratioMap");
List<TrainingPlanDao> 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<PageData> NO_PASS_List = (List<PageData>) pageData.get("PASS_List");
List<TrainingPlanDao> 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<PageData> PASS_List = (List<PageData>) pageData.get("NO_PASS_List");
List<TrainingPlanDao> 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();
}
}