From a0b68504a6ea0dd2f53cafca80ec24345d328816 Mon Sep 17 00:00:00 2001 From: zhangyanli Date: Wed, 15 May 2024 09:01:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E9=80=9A=E7=B1=BB=E5=9E=8B=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eduArchives/ArchivesController.java | 231 ++++++++- .../ArchivesReviewRecordController.java | 24 + .../ArchivesReviewRecordMapper.java | 12 +- .../eduArchives/ArchivesPdfFileService.java | 21 + .../ArchivesReviewRecordService.java | 11 +- .../impl/ArchivesPdfFileServiceImpl.java | 479 ++++++++++++++++++ .../impl/ArchivesReviewRecordServiceImpl.java | 20 +- .../eduArchives/impl/ArchivesServiceImpl.java | 12 +- .../archivesUtil/AchievementAbsHandler.java | 136 +++++ .../util/archivesUtil/BatchExportFactory.java | 3 + .../archivesUtil/SignAsTrafficAbsHandler.java | 172 +++++++ .../util/archivesUtil/TrainingAbsHandler.java | 263 ++++++++++ .../datasource/corp/CorpInfoMapper.xml | 12 +- .../ArchivesReviewRecordMapper.xml | 28 + .../mybatis/dsno3/eduStudy/ClassMapper.xml | 5 +- .../uploadFiles/wordTemplate/safelog.ftl | 2 +- .../wordTemplate/traffic-records1.docx | Bin 0 -> 11169 bytes .../wordTemplate/traffic-records2.docx | Bin 0 -> 87215 bytes .../wordTemplate/traffic-records3.docx | Bin 0 -> 83449 bytes .../wordTemplate/traffic-records4.docx | Bin 0 -> 12038 bytes 20 files changed, 1402 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/zcloud/util/archivesUtil/AchievementAbsHandler.java create mode 100644 src/main/java/com/zcloud/util/archivesUtil/SignAsTrafficAbsHandler.java create mode 100644 src/main/java/com/zcloud/util/archivesUtil/TrainingAbsHandler.java create mode 100644 src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records1.docx create mode 100644 src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records2.docx create mode 100644 src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records3.docx create mode 100644 src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records4.docx diff --git a/src/main/java/com/zcloud/controller/eduArchives/ArchivesController.java b/src/main/java/com/zcloud/controller/eduArchives/ArchivesController.java index bc0bf97..ba42d34 100644 --- a/src/main/java/com/zcloud/controller/eduArchives/ArchivesController.java +++ b/src/main/java/com/zcloud/controller/eduArchives/ArchivesController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Result; import com.zcloud.service.eduArchives.ArchivesPdfFileService; +import com.zcloud.service.eduArchives.ArchivesReviewRecordService; import com.zcloud.service.eduArchives.ArchivesService; import com.zcloud.service.eduArchives.TrainingScheduleService; import com.zcloud.service.eduStudy.*; @@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestBody; 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; @@ -32,6 +34,7 @@ import java.io.InputStream; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * 说明:档案管理 @@ -63,6 +66,10 @@ public class ArchivesController extends BaseController { private StageStudentRelationService stageStudentRelationService; @Autowired private TrainingScheduleService trainingscheduleService; + @Autowired + private ClassPostService classPostService; + @Resource + private ArchivesReviewRecordService archivesReviewRecordService; /** * 获取班级列表 @@ -240,7 +247,7 @@ public class ArchivesController extends BaseController { DecimalFormat classhourF = new DecimalFormat("0.0"); //保留一位小数 rpd.put("SUMCLASSHOUR", classhour == 0.0 ? 0 : classhourF.format(classhour)); rpd.put("CURRICULUMNAMES", CURRICULUMNAMES); - rpd.put("CORPINFO_NAME", corpinfo.getString("NAME")); + rpd.put("CORPINFO_NAME", corpinfo.getString("CORP_NAME")); map.put("studentList", studentList); map.put("clazz", clazz); @@ -1252,4 +1259,226 @@ public class ArchivesController extends BaseController { result.put("pd", data); return result; } + + + /** + * 查询班级课件 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/getTraining") + @ResponseBody + public Object getTraining() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd = this.getPageData(); + PageData clazz = classService.findById(pd); + List studentList = archivesService.getStudents(pd); + List ArrayDATA_IDS = new ArrayList(); + + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式 + SimpleDateFormat dayformat = new SimpleDateFormat("yyyy.MM.dd"); //日期格式 + SimpleDateFormat formatter = new SimpleDateFormat("MM.dd"); + + + List byClass = classPostService.findByClass(pd); + Set postNameSet = new HashSet<>(); + + for (PageData aClass : byClass) { + postNameSet.add(aClass.getString("POST_NAME")); + } + + pd.put("ArrayDATA_IDS", ArrayDATA_IDS); + List coursewaresList = archivesService.getCoursewares(pd); + + double CLASSHOUR = 0; + Set TEACHERNAME = new HashSet<>(); + for (PageData pageData : coursewaresList ) { + CLASSHOUR += (Double) pageData.get("CLASSHOUR"); + TEACHERNAME.add(pageData.get("TEACHERNAME").toString()); + } + + StringBuilder COURSEWARENAME = new StringBuilder(); + List curriculums = archivesService.getCurriculums(pd); + for (PageData curriculum : curriculums) { + COURSEWARENAME.append(curriculum.getString("CURRICULUMNAME")).append(","); + } + + List sdrs = studentList.stream().filter(item -> + "2".equals(item.getString("STUDYSTATE")) || + "3".equals(item.getString("STUDYSTATE")) || + "5".equals(item.getString("STUDYSTATE")) || + "6".equals(item.getString("STUDYSTATE")) + ).collect(Collectors.toList()); + + PageData pageData = new PageData(); + pageData.put("START_TIME", dayformat.format(dateformat.parse(clazz.getString("START_TIME"))) + "-" + formatter.format(dateformat.parse(clazz.getString("END_TIME")))); + pageData.put("CORP_NAME", clazz.getString("CORP_NAME")); + pageData.put("POST_NAME", String.join(",", postNameSet)); + pageData.put("PLAN_DEPARTMENT", Tools.notEmpty(clazz.getString("PLAN_DEPARTMENT"))?clazz.getString("PLAN_DEPARTMENT"):""); + pageData.put("SAFETYDEPTOR_URL", clazz.get("SAFETYDEPTOR_URL")); + pageData.put("TEACHERNAME", String.join(",", TEACHERNAME)); + pageData.put("CLASSHOUR", CLASSHOUR); + pageData.put("stuYDNum", studentList.size()); + pageData.put("stuSDNum", sdrs.size()); + pageData.put("COURSEWARENAME", COURSEWARENAME.toString().substring(0,COURSEWARENAME.length()-1)); + + List curList = archivesService.getCurriculums(pd); + for (PageData c : curList) { + PageData cha = new PageData(); + cha.put("PARENT_ID", "0"); + cha.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + cha.put("CLASS_ID", pd.get("CLASS_ID")); + + List chapterList = archivesService.getCoursewares(cha, false); + for (PageData chapterdt:chapterList) { + if (Tools.isEmpty(chapterdt.getString("COURSEWAREINTRODUCE")) || "undefined".equals(chapterdt.getString("COURSEWAREINTRODUCE"))) { + chapterdt.put("COURSEWAREINTRODUCE", chapterdt.getString("COURSEWARENAME")); + } + } + + // 二级目录结构时,查询子级目录 + if (c != null && c.get("CATALOGUELEVEL") != null + && Tools.notEmpty(c.get("CATALOGUELEVEL").toString()) + && "2".equals(c.get("CATALOGUELEVEL").toString()) + && chapterList != null && chapterList.size() > 0) { + for (PageData chapter : chapterList) { + PageData firstChapter = new PageData(); + firstChapter.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + firstChapter.put("PARENT_ID", chapter.get("CHAPTER_ID")); + firstChapter.put("CLASS_ID", pd.get("CLASS_ID")); + List nodesList = archivesService.getCoursewares(firstChapter); + for (PageData chapterdt:nodesList) { + if (Tools.isEmpty(chapterdt.getString("COURSEWAREINTRODUCE")) || "undefined".equals(chapterdt.getString("COURSEWAREINTRODUCE"))) { + chapterdt.put("COURSEWAREINTRODUCE", chapterdt.getString("COURSEWARENAME")); + } + } + chapter.put("nodes", nodesList); + } + } + c.put("chapterList", chapterList); + } + + PageData trainingData = archivesReviewRecordService.getTraining(pd); + if (trainingData == null) { + trainingData = new PageData(); + } + map.put("data", pageData); + map.put("trainingData", trainingData); + map.put("curList", curList); + map.put("result", errInfo); + return map; + } + + /** + * @Description: 教育培训记录 + * @Author: dearLin + * @Date: 2023/3/17/017 16:34 + * @Param: + * @Return: + */ + @RequestMapping("/trainingAsTraffic") + @ResponseBody + public Object trainingAsTraffic(HttpServletResponse response) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + PageData apf = new PageData(); + apf.put("ARCHIVES_PDF_FILE_ID", this.get32UUID()); + apf.put("TABLE_NAME", "bus_class"); + apf.put("TABLE_ID", pd.get("CLASS_ID")); + apf.put("TYPE", "2"); + apf.put("STATUS", "0"); + apf.put("CREATOR", Jurisdiction.getUsername()); + apf.put("CREATTIME", DateUtil.date2Str(new Date())); + PageData classInfo = classService.findById(pd); + apf.put("DESCR", classInfo.getString("NAME") + "-一期一档-教育培训记录"); + apf.put("METHOD_NAME", "sign"); //方法名 + apf.put("CLASS_NAME", PageData.class.getName()); //方法名中参数的类型 --如方法类型有多个,使类型用逗号连接,格式:xx,yyy + pd.put("ARCHIVES_PDF_FILE_ID", apf.get("ARCHIVES_PDF_FILE_ID")); + map.put("result", errInfo); + pd.put("projectPath", PathUtil.getProjectpath()); + pd.put("CLASS_NAME", classInfo.getString("NAME")); + pd.put("USERNAME", Jurisdiction.getUsername()); + apf.put("PARAM_NAME", JSONObject.toJSON(pd).toString());//方法名中参数的值 --如方法中参数有多个,使参数用逗号连接,格式:{"a":a},{"b":b} + archivesPdfFileService.save(apf); + // 异步生成档案 + archivesPdfFileService.trainingAsTraffic(pd); + return map; + } + + + /** + * @Description: 安全知识培训签到表 + * @Author: dearLin + * @Date: 2023/3/17/017 16:34 + * @Param: + * @Return: + */ + @RequestMapping("/signAsTraffic") + @ResponseBody + public Object signAsTraffic(HttpServletResponse response) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + PageData apf = new PageData(); + apf.put("ARCHIVES_PDF_FILE_ID", this.get32UUID()); + apf.put("TABLE_NAME", "bus_class"); + apf.put("TABLE_ID", pd.get("CLASS_ID")); + apf.put("TYPE", "2"); + apf.put("STATUS", "0"); + apf.put("CREATOR", Jurisdiction.getUsername()); + apf.put("CREATTIME", DateUtil.date2Str(new Date())); + PageData classInfo = classService.findById(pd); + apf.put("DESCR", classInfo.getString("NAME") + "-一期一档-安全培训教育记录及签字表"); + apf.put("METHOD_NAME", "sign"); //方法名 + apf.put("CLASS_NAME", PageData.class.getName()); //方法名中参数的类型 --如方法类型有多个,使类型用逗号连接,格式:xx,yyy + pd.put("ARCHIVES_PDF_FILE_ID", apf.get("ARCHIVES_PDF_FILE_ID")); + map.put("result", errInfo); + pd.put("projectPath", PathUtil.getProjectpath()); + pd.put("CLASS_NAME", classInfo.getString("NAME")); + pd.put("USERNAME", Jurisdiction.getUsername()); + apf.put("PARAM_NAME", JSONObject.toJSON(pd).toString());//方法名中参数的值 --如方法中参数有多个,使参数用逗号连接,格式:{"a":a},{"b":b} + archivesPdfFileService.save(apf); + // 异步生成档案 + archivesPdfFileService.signAsTraffic(pd); + return map; + } + + /** + * 学员考核成绩统计表 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/studentsumtableAsTraffic") + @ResponseBody + public Object studentsumtableAsTraffic(HttpServletResponse response) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + PageData apf = new PageData(); + apf.put("ARCHIVES_PDF_FILE_ID", this.get32UUID()); + apf.put("TABLE_NAME", "bus_class"); + apf.put("TABLE_ID", pd.get("CLASS_ID")); + apf.put("TYPE", "2"); + apf.put("STATUS", "0"); + apf.put("CREATOR", Jurisdiction.getUsername()); + apf.put("CREATTIME", DateUtil.date2Str(new Date())); + PageData clazz = classService.findById(pd); + apf.put("DESCR", clazz.getString("NAME") + "-一期一档-学员考核成绩统计表"); + apf.put("METHOD_NAME", "studentsumtable"); //方法名 + apf.put("CLASS_NAME", PageData.class.getName()); //方法名中参数的类型 --如方法类型有多个,使类型用逗号连接,格式:xx,yyy + pd.put("ARCHIVES_PDF_FILE_ID", apf.get("ARCHIVES_PDF_FILE_ID")); + map.put("result", errInfo); + pd.put("projectPath", PathUtil.getProjectpath()); + apf.put("PARAM_NAME", JSONObject.toJSON(pd).toString());//方法名中参数的值 --如方法中参数有多个,使参数用逗号连接,格式:{"a":a},{"b":b} + archivesPdfFileService.save(apf); + // 异步生成档案 + archivesPdfFileService.studentsumtableAsTraffic(pd); + return map; + } + } diff --git a/src/main/java/com/zcloud/controller/eduArchives/ArchivesReviewRecordController.java b/src/main/java/com/zcloud/controller/eduArchives/ArchivesReviewRecordController.java index d442bd1..aa5dbe8 100644 --- a/src/main/java/com/zcloud/controller/eduArchives/ArchivesReviewRecordController.java +++ b/src/main/java/com/zcloud/controller/eduArchives/ArchivesReviewRecordController.java @@ -148,4 +148,28 @@ public class ArchivesReviewRecordController extends BaseController { return map; } + /** + * 修改 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/editTraining") + @ResponseBody + public Object editTraining() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd = this.getPageData(); + PageData data = archivesReviewRecordService.getTraining(pd); + pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 + pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 + if (data != null) { + archivesReviewRecordService.editTraining(pd); + } else { + archivesReviewRecordService.saveTraining(pd); + } + map.put("result", errInfo); + return map; + } } diff --git a/src/main/java/com/zcloud/mapper/dsno3/eduArchives/ArchivesReviewRecordMapper.java b/src/main/java/com/zcloud/mapper/dsno3/eduArchives/ArchivesReviewRecordMapper.java index e247773..d654726 100644 --- a/src/main/java/com/zcloud/mapper/dsno3/eduArchives/ArchivesReviewRecordMapper.java +++ b/src/main/java/com/zcloud/mapper/dsno3/eduArchives/ArchivesReviewRecordMapper.java @@ -65,13 +65,11 @@ public interface ArchivesReviewRecordMapper { */ PageData getInfo(PageData pd); - /** - * 批量删除 - * - * @param ArrayDATA_IDS - * @throws Exception - */ - void deleteAll(String[] ArrayDATA_IDS); + PageData getTraining(PageData pd); + + void editTraining(PageData pd); + + void saveTraining(PageData pd); } diff --git a/src/main/java/com/zcloud/service/eduArchives/ArchivesPdfFileService.java b/src/main/java/com/zcloud/service/eduArchives/ArchivesPdfFileService.java index 5a8786d..c36dcde 100644 --- a/src/main/java/com/zcloud/service/eduArchives/ArchivesPdfFileService.java +++ b/src/main/java/com/zcloud/service/eduArchives/ArchivesPdfFileService.java @@ -258,5 +258,26 @@ public interface ArchivesPdfFileService{ */ @Async("downloadArchivesAsync") void downloadPlanFile(PageData pd) throws Exception; + + /** + * 一期一档--教育培训记录 + * @throws Exception + */ + @Async("downloadArchivesAsync") + void trainingAsTraffic(PageData pd) throws Exception; + + /** + * 一期一档--安全知识培训签到表 + * @throws Exception + */ + @Async("downloadArchivesAsync") + void signAsTraffic(PageData pd); + + /** + * 一期一档--学员考核成绩统计表导出(交通班级) + * @throws Exception + */ + @Async("downloadArchivesAsync") + void studentsumtableAsTraffic(PageData pd); } diff --git a/src/main/java/com/zcloud/service/eduArchives/ArchivesReviewRecordService.java b/src/main/java/com/zcloud/service/eduArchives/ArchivesReviewRecordService.java index 3cfd1bc..c23de98 100644 --- a/src/main/java/com/zcloud/service/eduArchives/ArchivesReviewRecordService.java +++ b/src/main/java/com/zcloud/service/eduArchives/ArchivesReviewRecordService.java @@ -68,13 +68,10 @@ public interface ArchivesReviewRecordService { */ public PageData getInfo(PageData pd) throws Exception; - /** - * 批量删除 - * - * @param ArrayDATA_IDS - * @throws Exception - */ - public void deleteAll(String[] ArrayDATA_IDS) throws Exception; + PageData getTraining(PageData pd) throws Exception; + void editTraining(PageData pd) throws Exception; + + void saveTraining(PageData pd) throws Exception; } diff --git a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesPdfFileServiceImpl.java b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesPdfFileServiceImpl.java index 4973d1e..33c390d 100644 --- a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesPdfFileServiceImpl.java +++ b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesPdfFileServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.zcloud.mapper.dsno3.eduArchives.*; import com.zcloud.mapper.dsno3.eduStudy.*; import com.zcloud.service.eduArchives.ArchivesPdfFileService; +import com.zcloud.service.eduArchives.ArchivesReviewRecordService; import com.zcloud.service.eduArchives.ArchivesService; import com.zcloud.service.eduArchives.ArchivesStudentService; import com.zcloud.mapper.dsno3.eduTrain.TrainingScheduleMapper; @@ -37,6 +38,7 @@ import java.nio.file.Files; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * 说明:档案文件 @@ -102,6 +104,10 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService { private ArchivesFilesMapper archivesfilesMapper; @Autowired private Smb smb; + @Autowired + private ClassPostMapper classPostMapper; + @Resource + private ArchivesReviewRecordService archivesReviewRecordService; /** * 新增 @@ -969,6 +975,19 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService { List data = JSONArray.parseArray((String) pd.get("typeList"), PageData.class); ArrayList files = new ArrayList<>(); String now = ""; + if ( + data.size() == 5 && + (Integer) data.get(0).get("TYPE") == 110 && + (Integer) data.get(1).get("TYPE") == 106 && + (Integer) data.get(2).get("TYPE") == 112 && + (Integer) data.get(3).get("TYPE") == 107 && + (Integer) data.get(4).get("TYPE") == 113 + ) { + PageData pageData = new PageData(); + pageData.put("TYPE", "111"); + pageData.put("NAME", "首页"); + data.add(pageData); + } for (PageData item : data) { AbsHandlerBatchExport handler = BatchExportFactory.getInvokeStrategy("archives" + item.get("TYPE")); if (handler != null) { @@ -3522,5 +3541,465 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService { e.printStackTrace(); } } + + @Override + public void trainingAsTraffic(PageData pd) { + try { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + ArrayList files = new ArrayList<>(); //最外层 + PageData clazz = classMapper.findById(pd); + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式 + SimpleDateFormat dayformat = new SimpleDateFormat("yyyy.MM.dd"); //日期格式 + SimpleDateFormat formatter = new SimpleDateFormat("MM.dd"); + + List byClass = classPostMapper.findByClass(pd); + Set postNameSet = new HashSet<>(); + + for (PageData aClass : byClass) { + postNameSet.add(aClass.getString("POST_NAME")); + } + + List studentList = archivesService.getStudents(pd); + List ArrayDATA_IDS = new ArrayList(); + + pd.put("ArrayDATA_IDS", ArrayDATA_IDS); + List coursewaresList = archivesService.getCoursewares(pd); + + double CLASSHOUR = 0; + Set TEACHER_NAME = new HashSet<>(); + for (PageData pageData : coursewaresList ) { + CLASSHOUR += (Double) pageData.get("CLASSHOUR"); + TEACHER_NAME.add(pageData.get("TEACHERNAME").toString()); + } + + StringBuilder COURSEWARENAME = new StringBuilder(); + List curriculums = archivesService.getCurriculums(pd); + for (PageData curriculum : curriculums) { + COURSEWARENAME.append(curriculum.getString("CURRICULUMNAME")).append(","); + } + + List sdrs = studentList.stream().filter(item -> + "2".equals(item.getString("STUDYSTATE")) || + "3".equals(item.getString("STUDYSTATE")) || + "5".equals(item.getString("STUDYSTATE")) || + "6".equals(item.getString("STUDYSTATE")) + ).collect(Collectors.toList()); + + List curList = archivesService.getCurriculums(pd); + for (PageData c : curList) { + PageData cha = new PageData(); + PageData itemInfo = new PageData(); + cha.put("PARENT_ID", "0"); + itemInfo.put("var0", c.get("CURRICULUMNAME")); + itemInfo.put("var1", c.get("CATALOGUELEVEL")); + cha.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + cha.put("CLASS_ID", pd.get("CLASS_ID")); + List chapterList = archivesService.getCoursewares(cha, false); + + // 二级目录结构时,查询子级目录 + // 二级目录结构时,查询子级目录 + if (c != null && c.get("CATALOGUELEVEL") != null + && Tools.notEmpty(c.get("CATALOGUELEVEL").toString()) + && "2".equals(c.get("CATALOGUELEVEL").toString()) + && chapterList != null && chapterList.size() > 0) { + for (int i = 0; i < chapterList.size(); i++) { + chapterList.get(i).put("NUM", NumToChinese.arabicNumToChineseNum((i + 1))); + PageData firstChapter = new PageData(); + firstChapter.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + firstChapter.put("PARENT_ID", chapterList.get(i).get("CHAPTER_ID")); + firstChapter.put("CLASS_ID", pd.get("CLASS_ID")); + List nodesList = archivesService.getCoursewares(firstChapter); + for (PageData chapter2 : nodesList) { + String COURSEWAREINTRODUCE = chapter2.getString("COURSEWAREINTRODUCE").replaceAll("\\\n", ""); + chapter2.put("COURSEWAREINTRODUCE", COURSEWAREINTRODUCE); + if (org.apache.commons.lang.StringUtils.isEmpty(String.valueOf(chapter2.get("INDUSTRY_ALL_NAME")))) { + chapter2.put("INDUSTRY_ALL_NAME", " "); + } else { + chapter2.put("INDUSTRY_ALL_NAME", " "); + } + String TEACHERNAME = (String) chapter2.get("TEACHERNAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TEACHERNAME)) { + chapter2.put("TEACHERNAME", " "); + } + String TRAININGTYPE_NAME = (String) chapter2.get("TRAININGTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TRAININGTYPE_NAME)) { + chapter2.put("TRAININGTYPE_NAME", " "); + } + String POSTTYPE_NAME = (String) chapter2.get("POSTTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(POSTTYPE_NAME)) { + chapter2.put("POSTTYPE_NAME", " "); + } + chapterList.get(i).put("nodes", nodesList); + } + + } + } else { + for (int i = 0; i < chapterList.size(); i++) { + chapterList.get(i).put("NUM", NumToChinese.arabicNumToChineseNum((i + 1))); + String industryAllName = (String) chapterList.get(i).get("INDUSTRY_ALL_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(industryAllName)) { + chapterList.get(i).put("INDUSTRY_ALL_NAME", " "); + } + + String TEACHERNAME = (String) chapterList.get(i).get("TEACHERNAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TEACHERNAME)) { + chapterList.get(i).put("TEACHERNAME", " "); + } + String TRAININGTYPE_NAME = (String) chapterList.get(i).get("TRAININGTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TRAININGTYPE_NAME)) { + chapterList.get(i).put("TRAININGTYPE_NAME", " "); + } + String POSTTYPE_NAME = (String) chapterList.get(i).get("POSTTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(POSTTYPE_NAME)) { + chapterList.get(i).put("POSTTYPE_NAME", " "); + } + } + } + c.put("chapterList", chapterList); + } + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records2.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + + context.put("curList", curList); + context.put("value1", dayformat.format(dateformat.parse(clazz.getString("START_TIME"))) + "-" + formatter.format(dateformat.parse(clazz.getString("END_TIME")))); + context.put("value2", clazz.get("CORP_NAME")); + context.put("value3", String.join(",", postNameSet)); + context.put("value4", String.join(",", TEACHER_NAME)); + context.put("value5", CLASSHOUR); + context.put("value6", Tools.notEmpty(clazz.getString("PLAN_DEPARTMENT"))?clazz.getString("PLAN_DEPARTMENT"):""); + context.put("value7", studentList.size()); + context.put("value8", sdrs.size()); + context.put("value9", sdrs.size()); + context.put("value10", COURSEWARENAME.toString().substring(0,COURSEWARENAME.length()-1)); + + PageData trainingData = archivesReviewRecordService.getTraining(pd); + if (trainingData == null) { + trainingData = new PageData(); + } + if (trainingData.get("IS_SELECT1") != null && "是".equals(trainingData.getString("IS_SELECT1"))) { + context.put("value12", "☑是 □否"); + } else if (trainingData.get("IS_SELECT1") != null && "否".equals(trainingData.getString("IS_SELECT1"))) { + context.put("value12", "□是 ☑否"); + } else { + context.put("value12", "□是 □否"); + } + if (trainingData.get("IS_SELECT2") != null && "是".equals(trainingData.getString("IS_SELECT2"))) { + context.put("value13", "☑是 □否"); + } else if (trainingData.get("IS_SELECT2") != null && "否".equals(trainingData.getString("IS_SELECT2"))) { + context.put("value13", "□是 ☑否"); + } else { + context.put("value13", "□是 □否"); + } + if (trainingData.get("IS_SELECT3") != null && "是".equals(trainingData.getString("IS_SELECT3"))) { + context.put("value14", "☑是 □否"); + } else if (trainingData.get("IS_SELECT3") != null && "否".equals(trainingData.getString("IS_SELECT3"))) { + context.put("value14", "□是 ☑否"); + } else { + context.put("value14", "□是 □否"); + } + if (trainingData.get("IS_SELECT4") != null && "是".equals(trainingData.getString("IS_SELECT4"))) { + context.put("value15", "☑是 □否"); + } else if (trainingData.get("IS_SELECT4") != null && "否".equals(trainingData.getString("IS_SELECT4"))) { + context.put("value15", "□是 ☑否"); + } else { + context.put("value15", "□是 □否"); + } + if (trainingData.get("IS_SELECT5") != null && "是".equals(trainingData.getString("IS_SELECT5"))) { + context.put("value16", "☑是 □否"); + } else if (trainingData.get("IS_SELECT5") != null && "否".equals(trainingData.getString("IS_SELECT5"))) { + context.put("value16", "□是 ☑否"); + } else { + context.put("value16", "□是 □否"); + } + context.put("value18", trainingData.get("MEASURE") != null ? trainingData.get("MEASURE") : ""); + + String path = Const.HTTPFILEURL + clazz.get("SAFETYDEPTOR_URL"); + URL url = new URL(path); + ByteArrayImageProvider byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + context.put("pic", byteArrayImageProvider); + context.put("pic2", byteArrayImageProvider); + FieldsMetadata fm = report.createFieldsMetadata(); + fm.addFieldAsImage("pic", "pic", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic2", "pic2", NullImageBehaviour.RemoveImageTemplate); + + FileOutputStream out = new FileOutputStream(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx"); + report.process(context, out); + out.close(); + WordToPdfUtil.docToPdf(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx", + projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-教育培训记录-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx"); + word.delete(); + File pdf = new File(projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-教育培训记录-" + now + ".pdf"); + files.add(pdf); + FileZip.zipList(projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-一期一档-教育培训记录-" + now + ".zip", files); + for (File filepath : files) { + filepath.delete(); //删除缓存文件 + } + + String fileName = pd.getString("CLASS_NAME") + "-一期一档-教育培训记录-" + now + ".zip"; + String filePath = Const.ARCHIVESPDFFILE + DateUtil.getDays(); + // 上传OSS + File zip = new File(projectPath + Const.TEMPZIPFILES + fileName); + smb.sshSftp(zip, fileName, filePath); + // 修改上传状态 + uploadResult(pd, "1", "", filePath + "/" + fileName); + System.out.println("-----------------------------trainingAsTraffic 上传完成----------------------------------"); + zip.delete(); + } catch (Exception e) { + uploadResult(pd, "-1", e.toString(), ""); + e.printStackTrace(); + } + } + + @Override + public void signAsTraffic(PageData pd) { + try { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + ArrayList files = new ArrayList<>(); //最外层 + PageData clazz = classMapper.findById(pd); + + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式 + SimpleDateFormat dayformat = new SimpleDateFormat("yyyy.MM.dd"); //日期格式 + SimpleDateFormat formatter = new SimpleDateFormat("MM.dd"); + + List curList = archivesService.getCurriculums(pd); + String CURRICULUMNAMES = ""; + for (PageData c : curList) { + CURRICULUMNAMES += c.getString("CURRICULUMNAME") + ';'; + } + CURRICULUMNAMES = CURRICULUMNAMES.substring(0, CURRICULUMNAMES.length() - 1); + + + List studentList = archivesService.getStudents(pd); + + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records3.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + + context.put("value1",CURRICULUMNAMES); + context.put("value2",dayformat.format(dateformat.parse(clazz.getString("START_TIME"))) + "-" + formatter.format(dateformat.parse(clazz.getString("END_TIME")))); + context.put("value3",clazz.get("CORP_NAME")); + List list1 = new ArrayList<>(); //一共多少行 + for (int i = 0; i < studentList.size(); i++) { + + if (i % 3 == 0) { + TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); //每行的内容实体类 + trainingPlanDao.setValue1(String.valueOf(i + 1)); //序号 + trainingPlanDao.setValue2(studentList.get(i).getString("NAME")); //序号 + { + String path = Const.HTTPFILEURL + studentList.get(i).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + if ((i + 1) < studentList.size()) { + trainingPlanDao.setValue4(String.valueOf(i + 2)); //序号 + trainingPlanDao.setValue5(studentList.get(i + 1).getString("NAME")); //序号 + String path = Const.HTTPFILEURL + studentList.get(i + 1).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic2(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + trainingPlanDao.setValue4(""); + trainingPlanDao.setValue5(""); + } + + if ((i + 2) < studentList.size()) { + trainingPlanDao.setValue7(String.valueOf(i + 3)); //序号 + trainingPlanDao.setValue8(studentList.get(i + 2).getString("NAME")); //序号 + String path = Const.HTTPFILEURL + studentList.get(i + 2).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic3(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + trainingPlanDao.setValue7(""); + trainingPlanDao.setValue8(""); + } + + list1.add(trainingPlanDao); + } + } + context.put("list1", list1); + + FieldsMetadata fm = report.createFieldsMetadata(); + fm.addFieldAsImage("pic", "item.pic", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic2", "item.pic2", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic3", "item.pic3", NullImageBehaviour.RemoveImageTemplate); + fm.load("list1", TrainingPlanDao.class, true); + FileOutputStream out = new FileOutputStream(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx"); + report.process(context, out); + out.close(); + WordToPdfUtil.docToPdf(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx", + projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-安全知识培训签到表-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx"); + word.delete(); + File pdf = new File(projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-安全知识培训签到表-" + now + ".pdf"); + files.add(pdf); + FileZip.zipList(projectPath + Const.TEMPZIPFILES + pd.getString("CLASS_NAME") + "-一期一档-安全知识培训签到表-" + now + ".zip", files); + for (File filepath : files) { + filepath.delete(); //删除缓存文件 + } + + String fileName = pd.getString("CLASS_NAME") + "-一期一档-安全知识培训签到表-" + now + ".zip"; + String filePath = Const.ARCHIVESPDFFILE + DateUtil.getDays(); + // 上传OSS + File zip = new File(projectPath + Const.TEMPZIPFILES + fileName); + smb.sshSftp(zip, fileName, filePath); + // 修改上传状态 + uploadResult(pd, "1", "", filePath + "/" + fileName); + System.out.println("-----------------------------signAsTraffic 上传完成----------------------------------"); + zip.delete(); + } catch (Exception e) { + uploadResult(pd, "-1", e.toString(), ""); + e.printStackTrace(); + } + } + + @Override + public void studentsumtableAsTraffic(PageData pd) { + try { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + ArrayList files = new ArrayList<>(); //最外层 + PageData clazz = classMapper.findById(pd); + List studentList = archivesMapper.getStudents(pd); + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records4.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + List list1 = new ArrayList<>(); //一共多少行 + + for (int i = 0; i < studentList.size(); i++) { + + if (i % 3 == 0) { + TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); //每行的内容实体类 + trainingPlanDao.setValue1(String.valueOf(i + 1)); //序号 + trainingPlanDao.setValue2(studentList.get(i).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i).get("examnum"))) > 0) { + trainingPlanDao.setValue3(Double.parseDouble(studentList.get(i).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue3(Double.parseDouble(studentList.get(i).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue3("不考试"); + } + + if ((i + 1) < studentList.size()) { + trainingPlanDao.setValue4(String.valueOf(i + 2)); //序号 + trainingPlanDao.setValue5(studentList.get(i + 1).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i + 1).get("examnum"))) > 0) { + trainingPlanDao.setValue6(Double.parseDouble(studentList.get(i + 1).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 1).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue6(Double.parseDouble(studentList.get(i + 1).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 1).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue6("不考试"); + } + } else { + trainingPlanDao.setValue4(""); + trainingPlanDao.setValue5(""); + trainingPlanDao.setValue6(""); + } + + if ((i + 2) < studentList.size()) { + trainingPlanDao.setValue7(String.valueOf(i + 3)); //序号 + trainingPlanDao.setValue8(studentList.get(i + 2).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i + 2).get("examnum"))) > 0) { + trainingPlanDao.setValue9(Double.parseDouble(studentList.get(i + 2).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 2).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue9(Double.parseDouble(studentList.get(i + 2).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 2).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue9("不考试"); + } + } else { + trainingPlanDao.setValue7(""); + trainingPlanDao.setValue8(""); + trainingPlanDao.setValue9(""); + } + + list1.add(trainingPlanDao); + } + } + context.put("list1", list1); + FieldsMetadata fm = report.createFieldsMetadata(); + fm.load("list1", TrainingPlanDao.class, true); + //输出到本地目录 + FileOutputStream out = new FileOutputStream(new File(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx")); + report.process(context, out); + WordToPdfUtil.docToPdf(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx", projectPath + Const.FILEPATHFILE + clazz.getString("NAME") + "-安全知识培训成绩表-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx"); + word.delete(); + File pdf = new File(projectPath + Const.FILEPATHFILE + clazz.getString("NAME") + "-安全知识培训成绩表-" + now + ".pdf"); + files.add(pdf); + FileZip.zipList(projectPath + Const.TEMPZIPFILES + clazz.getString("NAME") + "-一期一档-安全知识培训成绩表-" + now + ".zip", files); + for (File filepath : files) { + filepath.delete(); //删除缓存文件 + } + + String fileName = clazz.getString("NAME") + "-一期一档-安全知识培训成绩表-" + now + ".zip"; + String filePath = Const.ARCHIVESPDFFILE + DateUtil.getDays(); + // 上传OSS + File zip = new File(projectPath + Const.TEMPZIPFILES + fileName); + smb.sshSftp(zip, fileName, filePath); + // 修改上传状态 + uploadResult(pd, "1", "", filePath + "/" + fileName); + System.out.println("-----------------------------studentsumtableAsTraffic 上传完成----------------------------------"); + zip.delete(); + } catch (Exception e) { + uploadResult(pd, "-1", e.toString(), ""); + e.printStackTrace(); + } + } } diff --git a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesReviewRecordServiceImpl.java b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesReviewRecordServiceImpl.java index 29e045f..7494c9c 100644 --- a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesReviewRecordServiceImpl.java +++ b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesReviewRecordServiceImpl.java @@ -89,15 +89,19 @@ public class ArchivesReviewRecordServiceImpl implements ArchivesReviewRecordServ return archivesReviewRecordMapper.getInfo(pd); } - /** - * 批量删除 - * - * @param ArrayDATA_IDS - * @throws Exception - */ - public void deleteAll(String[] ArrayDATA_IDS) throws Exception { - archivesReviewRecordMapper.deleteAll(ArrayDATA_IDS); + @Override + public PageData getTraining(PageData pd) { + return archivesReviewRecordMapper.getTraining(pd); } + @Override + public void editTraining(PageData pd) { + archivesReviewRecordMapper.editTraining(pd); + } + + @Override + public void saveTraining(PageData pd) { + archivesReviewRecordMapper.saveTraining(pd); + } } diff --git a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesServiceImpl.java b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesServiceImpl.java index bc9d8db..b43abf5 100644 --- a/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesServiceImpl.java +++ b/src/main/java/com/zcloud/service/eduArchives/impl/ArchivesServiceImpl.java @@ -517,7 +517,11 @@ public class ArchivesServiceImpl implements ArchivesService { trainingPlanDao.setValue4((String) coursewaresList.get(i).get("COURSEWARENAME")); //主要内容 DecimalFormat df = new DecimalFormat("0.0"); //保留一位小数 Double hour = (Double) coursewaresList.get(i).get("CLASSHOUR"); - trainingPlanDao.setValue5(hour == 0.0 ? "0" : df.format(hour) + "学时"); //学时 + if (classInfo.getString("TRAINTYPE").equals("bd2a3b7767db49968e26cfccc3c2b4a4")) { + trainingPlanDao.setValue5(hour == 0.0 ? "0" : df.format(hour) + "学时"); //学时 + } else { + trainingPlanDao.setValue5("1学时"); //学时 + } if (coursewaresList.get(i).get("TEACHERNAME") != null) { trainingPlanDao.setValue6((String) coursewaresList.get(i).get("TEACHERNAME")); //教师 } else { @@ -593,6 +597,12 @@ public class ArchivesServiceImpl implements ArchivesService { context.put("examinevalue14", "生产经营单位从业人员" + classInfo.getString("POSTTYPE_NAME") + "考核记录"); } else if (classInfo.getString("POSTTYPE").equals("d73636e7a9ca4e71922bca305ee67cbb")) { //岗位类型:班组长 context.put("examinevalue14", "生产经营单位从业人员年度安全再培训考核记录"); + } else if (classInfo.getString("POSTTYPE").equals("d476966c4ddd485d9cd55fd9af56fda2")) { //交通运输的岗位类型:三级教育 + context.put("examinevalue14", classInfo.getString("TRAINLEVEL_NAME") + "安全培训考核记录"); + } else if (classInfo.getString("POSTTYPE").equals("316179c2538946af97675c92e0b16f5c")) { //交通运输的岗位类型:年度再培训 + context.put("examinevalue14", "生产经营单位从业人员年度安全再培训考核记录"); + } else if (classInfo.getString("POSTTYPE").equals("bb5170f52dcd4183aa67a2053163ae29")) { //交通运输的岗位类型:调岗和重新上岗培训 + context.put("examinevalue14", "生产经营单位从业人员" + classInfo.getString("POSTTYPE_NAME") + "考核记录"); } else { context.put("examinevalue14", ""); } diff --git a/src/main/java/com/zcloud/util/archivesUtil/AchievementAbsHandler.java b/src/main/java/com/zcloud/util/archivesUtil/AchievementAbsHandler.java new file mode 100644 index 0000000..cb2095e --- /dev/null +++ b/src/main/java/com/zcloud/util/archivesUtil/AchievementAbsHandler.java @@ -0,0 +1,136 @@ +package com.zcloud.util.archivesUtil; + +import com.zcloud.entity.PageData; +import com.zcloud.entity.TrainingPlanDao; +import com.zcloud.mapper.dsno3.eduArchives.ArchivesMapper; +import com.zcloud.mapper.dsno3.eduStudy.ClassMapper; +import com.zcloud.service.eduArchives.ArchivesService; +import com.zcloud.util.Const; +import com.zcloud.util.DateUtil; +import com.zcloud.util.WordToPdfUtil; +import fr.opensagres.xdocreport.document.IXDocReport; +import fr.opensagres.xdocreport.document.registry.XDocReportRegistry; +import fr.opensagres.xdocreport.template.IContext; +import fr.opensagres.xdocreport.template.TemplateEngineKind; +import fr.opensagres.xdocreport.template.formatter.FieldsMetadata; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * 说明:安全培训教材会审表 + * 作者:wangxuan + * 官网:www.zcloudchina.com + * + * @author wangxuan + */ +@Component +public class AchievementAbsHandler extends AbsHandlerBatchExport { + @Autowired + private ClassMapper classMapper; + + @Autowired + private ArchivesMapper archivesMapper; + + /** + * @Description: 返回pdf路径 + * @Author: dearLin + * @Date: 2023/3/20/020 10:41 + * @Param: [com.zcloud.entity.PageData] [pageData] + * @Return: java.lang.String + */ + @Override + public File batchExport(PageData pd, String nowZip) throws Exception { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + ArrayList files = new ArrayList<>(); //最外层 + PageData clazz = classMapper.findById(pd); + List studentList = archivesMapper.getStudents(pd); + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records4.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + List list1 = new ArrayList<>(); //一共多少行 + + for (int i = 0; i < studentList.size(); i++) { + + if (i % 3 == 0) { + TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); //每行的内容实体类 + trainingPlanDao.setValue1(String.valueOf(i + 1)); //序号 + trainingPlanDao.setValue2(studentList.get(i).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i).get("examnum"))) > 0) { + trainingPlanDao.setValue3(Double.parseDouble(studentList.get(i).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue3(Double.parseDouble(studentList.get(i).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue3("不考试"); + } + + if ((i + 1) < studentList.size()) { + trainingPlanDao.setValue4(String.valueOf(i + 2)); //序号 + trainingPlanDao.setValue5(studentList.get(i + 1).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i + 1).get("examnum"))) > 0) { + trainingPlanDao.setValue6(Double.parseDouble(studentList.get(i + 1).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 1).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue6(Double.parseDouble(studentList.get(i + 1).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 1).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue6("不考试"); + } + } else { + trainingPlanDao.setValue4(""); + trainingPlanDao.setValue5(""); + trainingPlanDao.setValue6(""); + } + + if ((i + 2) < studentList.size()) { + trainingPlanDao.setValue7(String.valueOf(i + 3)); //序号 + trainingPlanDao.setValue8(studentList.get(i + 2).getString("NAME")); //序号 + if ("1".equals(clazz.get("EXAMINATION").toString())) { + if (Integer.parseInt(String.valueOf(studentList.get(i + 2).get("examnum"))) > 0) { + trainingPlanDao.setValue9(Double.parseDouble(studentList.get(i + 2).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 2).getString("STAGEEXAMSCORE") : "0分"); + } else { + trainingPlanDao.setValue9(Double.parseDouble(studentList.get(i + 2).getString("STAGEEXAMSCORE")) > -1 ? studentList.get(i + 2).getString("STAGEEXAMSCORE") : "未参加"); + } + } else { + trainingPlanDao.setValue9("不考试"); + } + } else { + trainingPlanDao.setValue7(""); + trainingPlanDao.setValue8(""); + trainingPlanDao.setValue9(""); + } + + list1.add(trainingPlanDao); + } + } + context.put("list1", list1); + FieldsMetadata fm = report.createFieldsMetadata(); + fm.load("list1", TrainingPlanDao.class, true); + //输出到本地目录 + FileOutputStream out = new FileOutputStream(new File(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx")); + report.process(context, out); + WordToPdfUtil.docToPdf(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx", projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".docx"); + word.delete(); + return new File(projectPath + Const.FILEPATHFILE + "安全知识培训成绩表-" + now + ".pdf"); + } + + @Override + public void afterPropertiesSet() throws Exception { + BatchExportFactory.register("archives113", this); + } +} diff --git a/src/main/java/com/zcloud/util/archivesUtil/BatchExportFactory.java b/src/main/java/com/zcloud/util/archivesUtil/BatchExportFactory.java index cc45c7e..f4795ba 100644 --- a/src/main/java/com/zcloud/util/archivesUtil/BatchExportFactory.java +++ b/src/main/java/com/zcloud/util/archivesUtil/BatchExportFactory.java @@ -24,6 +24,9 @@ public class BatchExportFactory { { NAME: '培训考核试卷', TYPE: 103 }, { NAME: '学员考核成绩统计表', TYPE: 104 }, { NAME: '本期综合考评报告', TYPE: 105 }, + { NAME: '教育培训记录', TYPE: 110 }, + { NAME: '安全知识培训签到表', TYPE: 112 }, + { NAME: '安全知识培训成绩表', TYPE: 113 }, { NAME: '与培训机构签订的服务合同或者协议复印件', TYPE: 6 }], * */ public static AbsHandlerBatchExport getInvokeStrategy(String type) { diff --git a/src/main/java/com/zcloud/util/archivesUtil/SignAsTrafficAbsHandler.java b/src/main/java/com/zcloud/util/archivesUtil/SignAsTrafficAbsHandler.java new file mode 100644 index 0000000..2adcacd --- /dev/null +++ b/src/main/java/com/zcloud/util/archivesUtil/SignAsTrafficAbsHandler.java @@ -0,0 +1,172 @@ +package com.zcloud.util.archivesUtil; + +import com.zcloud.entity.PageData; +import com.zcloud.entity.TrainingPlanDao; +import com.zcloud.mapper.dsno3.eduStudy.ClassMapper; +import com.zcloud.service.eduArchives.ArchivesService; +import com.zcloud.util.Const; +import com.zcloud.util.DateUtil; +import com.zcloud.util.WordToPdfUtil; +import fr.opensagres.xdocreport.document.IXDocReport; +import fr.opensagres.xdocreport.document.images.ByteArrayImageProvider; +import fr.opensagres.xdocreport.document.registry.XDocReportRegistry; +import fr.opensagres.xdocreport.template.IContext; +import fr.opensagres.xdocreport.template.TemplateEngineKind; +import fr.opensagres.xdocreport.template.formatter.FieldsMetadata; +import fr.opensagres.xdocreport.template.formatter.NullImageBehaviour; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; + +/** + * 说明:安全知识培训签到表 + * 作者:wangxuan + * 官网:www.zcloudchina.com + * + * @author wangxuan + */ +@Component +public class SignAsTrafficAbsHandler extends AbsHandlerBatchExport { + + @Autowired + private ClassMapper classMapper; + + @Autowired + private ArchivesService archivesService; + + /** + * @Description: 返回pdf路径 + * @Author: dearLin + * @Date: 2023/3/20/020 10:41 + * @Param: [com.zcloud.entity.PageData] [pageData] + * @Return: java.lang.String + */ + @Override + public File batchExport(PageData pd, String nowZip) throws Exception { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + PageData clazz = classMapper.findById(pd); + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式 + SimpleDateFormat dayformat = new SimpleDateFormat("yyyy.MM.dd"); //日期格式 + SimpleDateFormat formatter = new SimpleDateFormat("MM.dd"); + + List curList = archivesService.getCurriculums(pd); + String CURRICULUMNAMES = ""; + for (PageData c : curList) { + CURRICULUMNAMES += c.get("CURRICULUMNAME").toString() + ';'; + } + CURRICULUMNAMES = CURRICULUMNAMES.substring(0, CURRICULUMNAMES.length() - 1); + + List studentList = archivesService.getStudents(pd); + + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records3.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + + context.put("value1",CURRICULUMNAMES); + context.put("value2",dayformat.format(dateformat.parse(clazz.getString("START_TIME"))) + "-" + formatter.format(dateformat.parse(clazz.getString("END_TIME")))); + context.put("value3",clazz.get("CORP_NAME")); + List list1 = new ArrayList<>(); //一共多少行 + for (int i = 0; i < studentList.size(); i++) { + + if (i % 3 == 0) { + TrainingPlanDao trainingPlanDao = new TrainingPlanDao(); //每行的内容实体类 + trainingPlanDao.setValue1(String.valueOf(i + 1)); //序号 + trainingPlanDao.setValue2(studentList.get(i).getString("NAME")); //序号 + { + String path = Const.HTTPFILEURL + studentList.get(i).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + if ((i + 1) < studentList.size()) { + trainingPlanDao.setValue4(String.valueOf(i + 2)); //序号 + trainingPlanDao.setValue5(studentList.get(i + 1).getString("NAME")); //序号 + String path = Const.HTTPFILEURL + studentList.get(i + 1).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic2(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + trainingPlanDao.setValue4(""); + trainingPlanDao.setValue5(""); + } + + if ((i + 2) < studentList.size()) { + trainingPlanDao.setValue7(String.valueOf(i + 3)); //序号 + trainingPlanDao.setValue8(studentList.get(i + 2).getString("NAME")); //序号 + String path = Const.HTTPFILEURL + studentList.get(i + 2).getString("SIGNATURE_PATH"); + ByteArrayImageProvider byteArrayImageProvider; + URL url; + try { + url = new URL(path); + HttpURLConnection connection = (HttpURLConnection) new URL(path).openConnection(); + int state = connection.getResponseCode(); + if (state == 200) { + byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + trainingPlanDao.setPic3(byteArrayImageProvider); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + trainingPlanDao.setValue7(""); + trainingPlanDao.setValue8(""); + } + + list1.add(trainingPlanDao); + } + } + context.put("list1", list1); + + FieldsMetadata fm = report.createFieldsMetadata(); + fm.addFieldAsImage("pic", "item.pic", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic2", "item.pic2", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic3", "item.pic3", NullImageBehaviour.RemoveImageTemplate); + fm.load("list1", TrainingPlanDao.class, true); + FileOutputStream out = new FileOutputStream(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx"); + report.process(context, out); + out.close(); + WordToPdfUtil.docToPdf(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx", + projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".docx"); + word.delete(); + return new File(projectPath + Const.TEMPZIPFILES + "安全知识培训签到表-" + now + ".pdf"); + } + + @Override + public void afterPropertiesSet() throws Exception { + BatchExportFactory.register("archives112", this); + } +} diff --git a/src/main/java/com/zcloud/util/archivesUtil/TrainingAbsHandler.java b/src/main/java/com/zcloud/util/archivesUtil/TrainingAbsHandler.java new file mode 100644 index 0000000..dbf2df6 --- /dev/null +++ b/src/main/java/com/zcloud/util/archivesUtil/TrainingAbsHandler.java @@ -0,0 +1,263 @@ +package com.zcloud.util.archivesUtil; + +import com.zcloud.entity.PageData; +import com.zcloud.mapper.dsno3.eduStudy.ClassMapper; +import com.zcloud.mapper.dsno3.eduStudy.ClassPostMapper; +import com.zcloud.service.eduArchives.ArchivesReviewRecordService; +import com.zcloud.service.eduArchives.ArchivesService; +import com.zcloud.util.*; +import fr.opensagres.xdocreport.document.IXDocReport; +import fr.opensagres.xdocreport.document.images.ByteArrayImageProvider; +import fr.opensagres.xdocreport.document.registry.XDocReportRegistry; +import fr.opensagres.xdocreport.template.IContext; +import fr.opensagres.xdocreport.template.TemplateEngineKind; +import fr.opensagres.xdocreport.template.formatter.FieldsMetadata; +import fr.opensagres.xdocreport.template.formatter.NullImageBehaviour; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 说明:安全培训教材会审表 + * 作者:wangxuan + * 官网:www.zcloudchina.com + * + * @author wangxuan + */ +@Component +public class TrainingAbsHandler extends AbsHandlerBatchExport { + + @Resource + private ArchivesReviewRecordService archivesReviewRecordService; + + @Autowired + private ClassMapper classMapper; + + @Autowired + private ArchivesService archivesService; + + @Autowired + private ClassPostMapper classPostMapper; + + + /** + * @Description: 返回pdf路径 + * @Author: dearLin + * @Date: 2023/3/20/020 10:41 + * @Param: [com.zcloud.entity.PageData] [pageData] + * @Return: java.lang.String + */ + @Override + public File batchExport(PageData pd, String nowZip) throws Exception { + String projectPath = pd.getString("projectPath"); + String now = DateUtil.getSdfTimesSSS(); + PageData clazz = classMapper.findById(pd); + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式 + SimpleDateFormat dayformat = new SimpleDateFormat("yyyy.MM.dd"); //日期格式 + SimpleDateFormat formatter = new SimpleDateFormat("MM.dd"); + + List byClass = classPostMapper.findByClass(pd); + Set postNameSet = new HashSet<>(); + + for (PageData aClass : byClass) { + postNameSet.add(aClass.getString("POST_NAME")); + } + + + List studentList = archivesService.getStudents(pd); + List ArrayDATA_IDS = new ArrayList(); + + pd.put("ArrayDATA_IDS", ArrayDATA_IDS); + List coursewaresList = archivesService.getCoursewares(pd); + + double CLASSHOUR = 0; + Set TEACHER_NAME = new HashSet<>(); + for (PageData pageData : coursewaresList) { + CLASSHOUR += (Double) pageData.get("CLASSHOUR"); + TEACHER_NAME.add(pageData.get("TEACHERNAME").toString()); + } + + StringBuilder COURSEWARENAME = new StringBuilder(); + List curriculums = archivesService.getCurriculums(pd); + for (PageData curriculum : curriculums) { + COURSEWARENAME.append(curriculum.getString("CURRICULUMNAME")).append(","); + } + + List sdrs = studentList.stream().filter(item -> + "2".equals(item.getString("STUDYSTATE")) || + "3".equals(item.getString("STUDYSTATE")) || + "5".equals(item.getString("STUDYSTATE")) || + "6".equals(item.getString("STUDYSTATE")) + ).collect(Collectors.toList()); + + List curList = archivesService.getCurriculums(pd); + for (PageData c : curList) { + PageData cha = new PageData(); + PageData itemInfo = new PageData(); + cha.put("PARENT_ID", "0"); + itemInfo.put("var0", c.get("CURRICULUMNAME")); + itemInfo.put("var1", c.get("CATALOGUELEVEL")); + cha.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + cha.put("CLASS_ID", pd.get("CLASS_ID")); + List chapterList = archivesService.getCoursewares(cha, false); + + // 二级目录结构时,查询子级目录 + // 二级目录结构时,查询子级目录 + if (c != null && c.get("CATALOGUELEVEL") != null + && Tools.notEmpty(c.get("CATALOGUELEVEL").toString()) + && "2".equals(c.get("CATALOGUELEVEL").toString()) + && chapterList != null && chapterList.size() > 0) { + for (int i = 0; i < chapterList.size(); i++) { + chapterList.get(i).put("NUM", NumToChinese.arabicNumToChineseNum((i + 1))); + PageData firstChapter = new PageData(); + firstChapter.put("CURRICULUM_ID", c.get("CURRICULUM_ID")); + firstChapter.put("PARENT_ID", chapterList.get(i).get("CHAPTER_ID")); + firstChapter.put("CLASS_ID", pd.get("CLASS_ID")); + List nodesList = archivesService.getCoursewares(firstChapter); + for (PageData chapter2 : nodesList) { + String COURSEWAREINTRODUCE = chapter2.getString("COURSEWAREINTRODUCE").replaceAll("\\\n", ""); + chapter2.put("COURSEWAREINTRODUCE", COURSEWAREINTRODUCE); + if (org.apache.commons.lang.StringUtils.isEmpty(String.valueOf(chapter2.get("INDUSTRY_ALL_NAME")))) { + chapter2.put("INDUSTRY_ALL_NAME", " "); + } else { + chapter2.put("INDUSTRY_ALL_NAME", " "); + } + String TEACHERNAME = (String) chapter2.get("TEACHERNAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TEACHERNAME)) { + chapter2.put("TEACHERNAME", " "); + } + String TRAININGTYPE_NAME = (String) chapter2.get("TRAININGTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TRAININGTYPE_NAME)) { + chapter2.put("TRAININGTYPE_NAME", " "); + } + String POSTTYPE_NAME = (String) chapter2.get("POSTTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(POSTTYPE_NAME)) { + chapter2.put("POSTTYPE_NAME", " "); + } + chapterList.get(i).put("nodes", nodesList); + } + + } + } else { + for (int i = 0; i < chapterList.size(); i++) { + chapterList.get(i).put("NUM", NumToChinese.arabicNumToChineseNum((i + 1))); + String industryAllName = (String) chapterList.get(i).get("INDUSTRY_ALL_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(industryAllName)) { + chapterList.get(i).put("INDUSTRY_ALL_NAME", " "); + } + + String TEACHERNAME = (String) chapterList.get(i).get("TEACHERNAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TEACHERNAME)) { + chapterList.get(i).put("TEACHERNAME", " "); + } + String TRAININGTYPE_NAME = (String) chapterList.get(i).get("TRAININGTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(TRAININGTYPE_NAME)) { + chapterList.get(i).put("TRAININGTYPE_NAME", " "); + } + String POSTTYPE_NAME = (String) chapterList.get(i).get("POSTTYPE_NAME"); + if (org.apache.commons.lang.StringUtils.isEmpty(POSTTYPE_NAME)) { + chapterList.get(i).put("POSTTYPE_NAME", " "); + } + } + } + c.put("chapterList", chapterList); + } + + File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traffic-records2.docx"); + InputStream mbwj = new FileInputStream(file); + //注册xdocreport实例并加载FreeMarker模板引擎 + IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker); + //创建xdocreport上下文对象 + IContext context = report.createContext(); + + context.put("curList", curList); + context.put("value1", dayformat.format(dateformat.parse(clazz.getString("START_TIME"))) + "-" + formatter.format(dateformat.parse(clazz.getString("END_TIME")))); + context.put("value2", clazz.get("CORP_NAME")); + context.put("value3", String.join(",", postNameSet)); + context.put("value4", String.join(",", TEACHER_NAME)); + context.put("value5", CLASSHOUR); + context.put("value6", Tools.notEmpty(clazz.getString("PLAN_DEPARTMENT"))?clazz.getString("PLAN_DEPARTMENT"):""); + context.put("value7", studentList.size()); + context.put("value8", sdrs.size()); + context.put("value9", sdrs.size()); + context.put("value10", COURSEWARENAME.toString().substring(0, COURSEWARENAME.length() - 1)); + + PageData trainingData = archivesReviewRecordService.getTraining(pd); + if (trainingData == null) { + trainingData = new PageData(); + } + if (trainingData.get("IS_SELECT1") != null && "是".equals(trainingData.getString("IS_SELECT1"))) { + context.put("value12", "☑是 □否"); + } else if (trainingData.get("IS_SELECT1") != null && "否".equals(trainingData.getString("IS_SELECT1"))) { + context.put("value12", "□是 ☑否"); + } else { + context.put("value12", "□是 □否"); + } + if (trainingData.get("IS_SELECT2") != null && "是".equals(trainingData.getString("IS_SELECT2"))) { + context.put("value13", "☑是 □否"); + } else if (trainingData.get("IS_SELECT2") != null && "否".equals(trainingData.getString("IS_SELECT1"))) { + context.put("value13", "□是 ☑否"); + } else { + context.put("value13", "□是 □否"); + } + if (trainingData.get("IS_SELECT3") != null && "是".equals(trainingData.getString("IS_SELECT3"))) { + context.put("value14", "☑是 □否"); + } else if (trainingData.get("IS_SELECT3") != null && "否".equals(trainingData.getString("IS_SELECT3"))) { + context.put("value14", "□是 ☑否"); + } else { + context.put("value14", "□是 □否"); + } + if (trainingData.get("IS_SELECT4") != null && "是".equals(trainingData.getString("IS_SELECT4"))) { + context.put("value15", "☑是 □否"); + } else if (trainingData.get("IS_SELECT4") != null && "否".equals(trainingData.getString("IS_SELECT4"))) { + context.put("value15", "□是 ☑否"); + } else { + context.put("value15", "□是 □否"); + } + if (trainingData.get("IS_SELECT5") != null && "是".equals(trainingData.getString("IS_SELECT5"))) { + context.put("value16", "☑是 □否"); + } else if (trainingData.get("IS_SELECT5") != null && "否".equals(trainingData.getString("IS_SELECT5"))) { + context.put("value16", "□是 ☑否"); + } else { + context.put("value16", "□是 □否"); + } + context.put("value18", trainingData.get("MEASURE") != null ? trainingData.get("MEASURE") : ""); + + String path = Const.HTTPFILEURL + clazz.get("SAFETYDEPTOR_URL"); + URL url = new URL(path); + ByteArrayImageProvider byteArrayImageProvider = new ByteArrayImageProvider(url.openStream());//照片 读取网络路径 + context.put("pic", byteArrayImageProvider); + context.put("pic2", byteArrayImageProvider); + FieldsMetadata fm = report.createFieldsMetadata(); + fm.addFieldAsImage("pic", "pic", NullImageBehaviour.RemoveImageTemplate); + fm.addFieldAsImage("pic2", "pic2", NullImageBehaviour.RemoveImageTemplate); + + FileOutputStream out = new FileOutputStream(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx"); + report.process(context, out); + out.close(); + WordToPdfUtil.docToPdf(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx", + projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".pdf"); + //删除本地word pdf + File word = new File(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".docx"); + word.delete(); + File pdf = new File(projectPath + Const.TEMPZIPFILES + "教育培训记录-" + now + ".pdf"); + return pdf; + } + + @Override + public void afterPropertiesSet() throws Exception { + BatchExportFactory.register("archives110", this); + } +} diff --git a/src/main/resources/mybatis/datasource/corp/CorpInfoMapper.xml b/src/main/resources/mybatis/datasource/corp/CorpInfoMapper.xml index d5ca9ce..22c7417 100644 --- a/src/main/resources/mybatis/datasource/corp/CorpInfoMapper.xml +++ b/src/main/resources/mybatis/datasource/corp/CorpInfoMapper.xml @@ -96,7 +96,8 @@ f.REGULARTYPE, f.OFFICIAL_SEAL_PATH, f.INDUSTRY_TYPE, - f.INDUSTRY_NAME + f.INDUSTRY_NAME, + f.PLAN_DEPARTMENT @@ -154,7 +155,8 @@ REGULARTYPE, OFFICIAL_SEAL_PATH, INDUSTRY_TYPE, - INDUSTRY_NAME + INDUSTRY_NAME, + PLAN_DEPARTMENT @@ -212,7 +214,8 @@ #{REGULARTYPE}, #{OFFICIAL_SEAL_PATH}, #{INDUSTRY_TYPE}, - #{INDUSTRY_NAME} + #{INDUSTRY_NAME}, + #{PLAN_DEPARTMENT} @@ -460,6 +463,9 @@ INDUSTRY_NAME = #{INDUSTRY_NAME}, + + PLAN_DEPARTMENT = #{PLAN_DEPARTMENT}, + CORPINFO_ID = CORPINFO_ID where CORPINFO_ID = #{CORPINFO_ID} diff --git a/src/main/resources/mybatis/dsno3/eduArchives/ArchivesReviewRecordMapper.xml b/src/main/resources/mybatis/dsno3/eduArchives/ArchivesReviewRecordMapper.xml index bbf7271..09b66fa 100644 --- a/src/main/resources/mybatis/dsno3/eduArchives/ArchivesReviewRecordMapper.xml +++ b/src/main/resources/mybatis/dsno3/eduArchives/ArchivesReviewRecordMapper.xml @@ -144,4 +144,32 @@ where f.ARCHIVES_REVIEW_RECORD_ID = #{ARCHIVES_REVIEW_RECORD_ID} + + + update + bus_archives_training + set + IS_SELECT1 = #{IS_SELECT1}, + IS_SELECT2 = #{IS_SELECT2}, + IS_SELECT3 = #{IS_SELECT3}, + IS_SELECT4 = #{IS_SELECT4}, + IS_SELECT5 = #{IS_SELECT5}, + ASSESSOR = #{ASSESSOR}, + MEASURE = #{MEASURE}, + CREATOR = #{CREATOR} + where + CLASS_ID = #{CLASS_ID} + + + + insert into + bus_archives_training + ( + CLASS_ID,IS_SELECT1,IS_SELECT2,IS_SELECT3,IS_SELECT4,IS_SELECT5,ASSESSOR,MEASURE,CREATOR + ) values ( + #{CLASS_ID},#{IS_SELECT1},#{IS_SELECT2},#{IS_SELECT3},#{IS_SELECT4},#{IS_SELECT5},#{ASSESSOR},#{MEASURE},#{CREATOR} + ) + diff --git a/src/main/resources/mybatis/dsno3/eduStudy/ClassMapper.xml b/src/main/resources/mybatis/dsno3/eduStudy/ClassMapper.xml index d76591a..59c452d 100644 --- a/src/main/resources/mybatis/dsno3/eduStudy/ClassMapper.xml +++ b/src/main/resources/mybatis/dsno3/eduStudy/ClassMapper.xml @@ -301,7 +301,9 @@ CONCAT_WS('-',IF( t.NAME= '',null ,t.NAME ),IF( lei.NAME= '',null , lei.NAME ),IF( p.NAME= '',null , p.NAME ),IF( tlt.NAME= '',null , tlt.NAME )) TYPENAME, tlt.NAME TRAINLEVEL_NAME, - bci.CORP_NAME + bci.CORP_NAME, + bci.PLAN_DEPARTMENT, + us.SIGN_PICTURE AS SAFETYDEPTOR_URL from f @@ -310,6 +312,7 @@ LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = f.TRAINTYPE LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = f.TRAINLEVEL LEFT JOIN bus_industry_type lei ON lei.INDUSTRYTYPE_ID = f.INDUSTRY_END_ID + left join sys_user_sign us on us.USERSIGNID = f.SAFETYDEPTOR WHERE f.CLASS_ID = #{CLASS_ID} diff --git a/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/safelog.ftl b/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/safelog.ftl index 28ed268..2459cc9 100644 --- a/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/safelog.ftl +++ b/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/safelog.ftl @@ -2995,7 +2995,7 @@ - 1学时 + ${list2.value5} diff --git a/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records1.docx b/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records1.docx new file mode 100644 index 0000000000000000000000000000000000000000..da84e8f2f3703390d7813e05d8ed0aa38607603b GIT binary patch literal 11169 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records3.docx b/src/main/webapp/TrafficFile/uploadFiles/wordTemplate/traffic-records3.docx new file mode 100644 index 0000000000000000000000000000000000000000..50e04893a579b25b73529ff4a8e39ee111b1b535 GIT binary patch literal 83449 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