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-08 18:01:32 +08:00
|
|
|
|
// pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
|
|
|
|
// data.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
|
|
|
|
// if ("0".equals(Jurisdiction.getIS_MAIN())){
|
|
|
|
|
// pd.put("USER_ID", Jurisdiction.getUSER_ID());
|
|
|
|
|
// data.put("USER_ID", Jurisdiction.getUSER_ID());
|
|
|
|
|
// }
|
2024-03-06 16:25:53 +08:00
|
|
|
|
classNum = classService.getClassNum(data);
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
if ("0".equals(Jurisdiction.getIS_MAIN())){
|
|
|
|
|
pd.put("USER_ID", Jurisdiction.getUSER_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"));
|
|
|
|
|
map.put("ENTERPRISE_ID", pd.getString("ENTERPRISE_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:删除)
|
|
|
|
|
// PageData indFull = industryTypeService.getIndFull(pd);
|
|
|
|
|
// String[] industryIds = indFull.getString("FULLID").split(",");
|
|
|
|
|
// pd.put("INDUSTRY_ALL_NAME", indFull.get("FULLNAME")+"-"+pd.getString("INDUSTRY_END_ID_NAME"));
|
|
|
|
|
// pd.put("INDUSTRY1", industryIds.length > 0? industryIds[0]:null);
|
|
|
|
|
// pd.put("INDUSTRY2", industryIds.length > 1? industryIds[1]:null);
|
|
|
|
|
//通过被培训企业id获取服务日期
|
|
|
|
|
// List<PageData> list = enterpriseService.getContractAll(pd);
|
|
|
|
|
// List<PageData> connectDateList = new ArrayList<>();
|
|
|
|
|
// if (list.size() > 1) {
|
|
|
|
|
// SimpleDateFormat formatDay = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
// String start_date = list.get(0).getString("DEADLINE_START");
|
|
|
|
|
// String end_date = list.get(0).getString("DEADLINE_END");
|
|
|
|
|
// for (int i = 1; i < list.size(); i++) {
|
|
|
|
|
// String date1 = list.get(i).getString("DEADLINE_START");
|
|
|
|
|
// String date2 = list.get(i).getString("DEADLINE_END");
|
|
|
|
|
// // 判断两个时间段是否连接,如果连接则两个时间段拼接
|
|
|
|
|
// if (DateUtil.isContinuation(formatDay.parse(date1 + " 00:00:00"), formatDay.parse(end_date + " 00:00:00"))) {
|
|
|
|
|
// end_date = date2;
|
|
|
|
|
// //判断是否是最后时间段,如果最后一个时间段,则存一下
|
|
|
|
|
// if (i == list.size() - 1) {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", start_date);
|
|
|
|
|
// datepd.put("DEADLINE_END", end_date);
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", start_date);
|
|
|
|
|
// datepd.put("DEADLINE_END", end_date);
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// //判断是否是最后时间段,如果最后一个时间段没有存进去,则存一下
|
|
|
|
|
// if (i == list.size() - 1) {
|
|
|
|
|
// if (!end_date.equals(date2)) {
|
|
|
|
|
// PageData datepd_end = new PageData();
|
|
|
|
|
// datepd_end.put("DEADLINE_START", date1);
|
|
|
|
|
// datepd_end.put("DEADLINE_END", date2);
|
|
|
|
|
// connectDateList.add(datepd_end);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// start_date = date1;
|
|
|
|
|
// end_date = date2;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", list.get(0).getString("DEADLINE_START"));
|
|
|
|
|
// datepd.put("DEADLINE_END", list.get(0).getString("DEADLINE_END"));
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// }
|
|
|
|
|
// boolean between = false;
|
|
|
|
|
// String startTime = pd.getString("START_TIME");
|
|
|
|
|
// startTime = startTime.replace(" 00:00:00", "");
|
|
|
|
|
// startTime = startTime.replace(" 23:59:59", "");
|
|
|
|
|
// String endTime = pd.getString("END_TIME");
|
|
|
|
|
// endTime = endTime.replace(" 23:59:59", "");
|
|
|
|
|
// endTime = endTime.replace(" 00:00:00", "");
|
|
|
|
|
// for (PageData data : connectDateList) {
|
|
|
|
|
// LocalDateTime date1 = LocalDateTime.parse(startTime + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date2 = LocalDateTime.parse(endTime + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date3 = LocalDateTime.parse(data.getString("DEADLINE_START") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date4 = LocalDateTime.parse(data.getString("DEADLINE_END") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// if (PaperTextValid.isDuplicateDatePeriod2(date1, date2, date3, date4)) {
|
|
|
|
|
// between = true;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// //培训日期要在服务日期内
|
|
|
|
|
// if (!between) {
|
|
|
|
|
// map.put("result", errInfo);
|
|
|
|
|
// map.put("message", "培训日期要在服务日期内,请重新填写检查培训日期或服务日期!");
|
|
|
|
|
// return map;
|
|
|
|
|
// }
|
|
|
|
|
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");
|
|
|
|
|
// PageData corpenter = corpEnterpriseContactService.findByCorpOrEnter(pd);
|
|
|
|
|
// Date date;
|
|
|
|
|
// //通过被培训企业id获取服务日期
|
|
|
|
|
// List<PageData> contractlist = enterpriseService.getContractAll(pd);
|
|
|
|
|
// List<PageData> connectDateList = new ArrayList<>();
|
|
|
|
|
// if (contractlist.size() > 1) {
|
|
|
|
|
// SimpleDateFormat formatDay = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
// String start_date = contractlist.get(0).getString("DEADLINE_START");
|
|
|
|
|
// String end_date = contractlist.get(0).getString("DEADLINE_END");
|
|
|
|
|
// for (int i = 1; i < contractlist.size(); i++) {
|
|
|
|
|
// String date1 = contractlist.get(i).getString("DEADLINE_START");
|
|
|
|
|
// String date2 = contractlist.get(i).getString("DEADLINE_END");
|
|
|
|
|
// // 判断两个时间段是否连接,如果连接则两个时间段拼接
|
|
|
|
|
// if (DateUtil.isContinuation(formatDay.parse(date1 + " 00:00:00"), formatDay.parse(end_date + " 00:00:00"))) {
|
|
|
|
|
// end_date = date2;
|
|
|
|
|
// //判断是否是最后时间段,如果最后一个时间段,则存一下
|
|
|
|
|
// if (i == contractlist.size() - 1) {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", start_date);
|
|
|
|
|
// datepd.put("DEADLINE_END", end_date);
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", start_date);
|
|
|
|
|
// datepd.put("DEADLINE_END", end_date);
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// //判断是否是最后时间段,如果最后一个时间段没有存进去,则存一下
|
|
|
|
|
// if (i == contractlist.size() - 1) {
|
|
|
|
|
// if (!end_date.equals(date2)) {
|
|
|
|
|
// PageData datepd_end = new PageData();
|
|
|
|
|
// datepd_end.put("DEADLINE_START", date1);
|
|
|
|
|
// datepd_end.put("DEADLINE_END", date2);
|
|
|
|
|
// connectDateList.add(datepd_end);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// start_date = date1;
|
|
|
|
|
// end_date = date2;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// PageData datepd = new PageData();
|
|
|
|
|
// datepd.put("DEADLINE_START", contractlist.get(0).getString("DEADLINE_START"));
|
|
|
|
|
// datepd.put("DEADLINE_END", contractlist.get(0).getString("DEADLINE_END"));
|
|
|
|
|
// connectDateList.add(datepd);
|
|
|
|
|
// }
|
|
|
|
|
// boolean between = false;
|
|
|
|
|
// String startTime = pd.getString("START_TIME");
|
|
|
|
|
// startTime = startTime.replace(" 00:00:00", "");
|
|
|
|
|
// startTime = startTime.replace(" 23:59:59", "");
|
|
|
|
|
// String endTime = endTimeStr;
|
|
|
|
|
// endTime = endTime.replace(" 23:59:59", "");
|
|
|
|
|
// endTime = endTime.replace(" 00:00:00", "");
|
|
|
|
|
// for (PageData data : connectDateList) {
|
|
|
|
|
// LocalDateTime date1 = LocalDateTime.parse(startTime + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date2 = LocalDateTime.parse(endTime + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date3 = LocalDateTime.parse(data.getString("DEADLINE_START") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// LocalDateTime date4 = LocalDateTime.parse(data.getString("DEADLINE_END") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
// if (PaperTextValid.isDuplicateDatePeriod2(date1, date2, date3, date4)) {
|
|
|
|
|
// between = true;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// //培训日期要在服务日期内
|
|
|
|
|
// if (!between) {
|
|
|
|
|
// errInfo = "success";
|
|
|
|
|
// map.put("message", "timeerror");
|
|
|
|
|
// map.put("result", errInfo);
|
|
|
|
|
// return map;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context.put("value1", Tools.notEmpty(pageData.getString("ENTERPRISE_NAME")) ? pageData.getString("ENTERPRISE_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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 班级到期提醒,提前5天弹框警告
|
|
|
|
|
@RequestMapping(value = "/notifyMessage")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Object notifyMessage(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);
|
|
|
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
|
|
|
List<PageData> varList = classService.list(page); // 列出CorpInfo列表
|
|
|
|
|
int cnt = 1;
|
|
|
|
|
boolean firstflag = true;
|
|
|
|
|
for (int i = 0; i < varList.size(); i++) {
|
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
String end_time = varList.get(i).getString("END_TIME");
|
|
|
|
|
String now_time = format.format(new Date()).toString();
|
|
|
|
|
long day = DateUtil.getDaySub(now_time, end_time);
|
|
|
|
|
//只有培训中的班级有提醒,未申请和培训结束的不需要
|
|
|
|
|
if ("5".equals(varList.get(i).getString("STATE"))) {
|
|
|
|
|
if (day <= 5) {
|
|
|
|
|
if (firstflag) {
|
|
|
|
|
stringBuffer.append("<p style=\"color: red;\">以下班级的课程即将结束,请抓紧时间学习!<br>");
|
|
|
|
|
stringBuffer.append("********************************************<br></p>");
|
|
|
|
|
firstflag = false;
|
|
|
|
|
}
|
|
|
|
|
stringBuffer.append(cnt).append(". ").append(varList.get(i).get("NAME")).append("<br>");
|
|
|
|
|
cnt++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
map.put("message", stringBuffer.toString());
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
}
|