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

720 lines
31 KiB
Java
Raw Normal View History

2024-03-06 16:25:53 +08:00
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;
2024-03-08 08:50:53 +08:00
import com.zcloud.service.system.DictionariesService;
2024-03-06 16:25:53 +08:00
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
2024-03-08 08:50:53 +08:00
private DictionariesService dictionariesService;
2024-03-06 16:25:53 +08:00
@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
2024-03-12 17:20:55 +08:00
public Object getClassAllByCorp() {
2024-03-06 16:25:53 +08:00
PageData pageData = this.getPageData();
// 2 3 是机构
pageData.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
2024-03-12 17:20:55 +08:00
List<PageData> varList = classService.getClassAllByCorp(pageData);
2024-03-06 16:25:53 +08:00
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();
//注意数据权限。企业看企业数据,机构看机构数据
2024-03-27 15:52:48 +08:00
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
classNum = classService.getClassNum(pd);
2024-03-06 16:25:53 +08:00
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删除)
2024-03-22 09:37:32 +08:00
2024-03-06 16:25:53 +08:00
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);
2024-03-08 08:50:53 +08:00
dic = dictionariesService.findByBianma(dic);
2024-03-06 16:25:53 +08:00
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);
2024-03-08 08:50:53 +08:00
List<PageData> industryOption = dictionariesService.getTreeFromBelowHebei(new ArrayList<PageData>(), dic);
2024-03-06 16:25:53 +08:00
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");
2024-03-22 09:37:32 +08:00
context.put("value1", Tools.notEmpty(pageData.getString("CORP_NAME")) ? pageData.getString("CORP_NAME") : "");
2024-03-06 16:25:53 +08:00
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();
}
}