|
@@ -1,9 +1,17 @@
|
|
|
package com.koobietech.eas.service.impl;
|
|
|
|
|
|
+import com.koobietech.eas.common.constant.FileType;
|
|
|
import com.koobietech.eas.common.result.JsonResult;
|
|
|
import com.koobietech.eas.common.utils.DateUtils;
|
|
|
import com.koobietech.eas.common.utils.StudentArchiveGenerator;
|
|
|
+import com.koobietech.eas.dao.dto.ArchivesDto;
|
|
|
+import com.koobietech.eas.mbg.mapper.EasArcArchivesMapper;
|
|
|
+import com.koobietech.eas.mbg.mapper.EasArcTlsStudentsMapper;
|
|
|
+import com.koobietech.eas.mbg.mapper.EasSysStudentMapper;
|
|
|
+import com.koobietech.eas.mbg.model.EasArcArchives;
|
|
|
import com.koobietech.eas.mbg.model.EasArcTlsStudents;
|
|
|
+import com.koobietech.eas.mbg.model.EasSysStudent;
|
|
|
+import com.koobietech.eas.service.EasArchivesFilesService;
|
|
|
import com.koobietech.eas.service.EasStuProfileService;
|
|
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
import org.apache.poi.util.Units;
|
|
@@ -13,9 +21,11 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.security.crypto.password.PasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.io.FileOutputStream;
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.util.*;
|
|
@@ -26,10 +36,24 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(EasStuProfileServiceImpl.class);
|
|
|
private static final String TEMPLATE_PATH = "temp/StuRegistTemp.docx";
|
|
|
private static final String PHOTO_PATH = "temp/kun.jpeg";
|
|
|
- private static final String OUTPUT_PATH = "D:\\myDesk\\test.docx";
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EasArcTlsStudentsMapper easArcTlsStudentsMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PasswordEncoder passwordEncoder;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EasSysStudentMapper easSysStudentMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EasArcArchivesMapper easArcArchivesMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EasArchivesFilesService easArchivesFilesService;
|
|
|
|
|
|
@Override
|
|
|
- public JsonResult StuProfileDownload(EasArcTlsStudents easArcTlsStudents) {
|
|
|
+ public JsonResult StuProfileDownload(EasArcTlsStudents easArcTlsStudents,Integer manager_id) {
|
|
|
LOGGER.info("开始学员档案导出:{}", easArcTlsStudents);
|
|
|
|
|
|
try (InputStream wordStream = getClass().getClassLoader().getResourceAsStream(TEMPLATE_PATH)) {
|
|
@@ -54,10 +78,72 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
|
|
|
map.put("avatar", getClass().getClassLoader().getResourceAsStream(PHOTO_PATH));
|
|
|
|
|
|
//调用内部类方法 生成学号
|
|
|
- map.put("student_number", generateStudentNumber(easArcTlsStudents));
|
|
|
+ String studentNumber = generateStudentNumber(easArcTlsStudents);
|
|
|
+ map.put("student_number", studentNumber);
|
|
|
|
|
|
replacePlaceholders(doc, map);
|
|
|
- saveDocument(doc);
|
|
|
+ //saveDocument(doc);
|
|
|
+
|
|
|
+ //将easArcTlsStudents 保存到数据库
|
|
|
+ easArcTlsStudentsMapper.insert(easArcTlsStudents);
|
|
|
+
|
|
|
+ //使用BeanUtils 将easArcTlsStudents 转换成 eassysstudent
|
|
|
+ EasSysStudent easSysStudents = new EasSysStudent();
|
|
|
+ BeanUtils.copyProperties(easArcTlsStudents,easSysStudents);
|
|
|
+ //设置初始密码 使用 passwordEncoder 设置初始密码为123456
|
|
|
+ easSysStudents.setPasswd(passwordEncoder.encode("123456"));
|
|
|
+ easSysStudents.setDisabled("N");
|
|
|
+
|
|
|
+ easSysStudentMapper.insert(easSysStudents);
|
|
|
+
|
|
|
+ //组合成档案对象 保存到数据库
|
|
|
+ /**
|
|
|
+ CREATE TABLE `eas_arc_archives` (
|
|
|
+ 1 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
|
+ 1 `archive_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文件电子档案号',
|
|
|
+ 1 `student_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前电子档案归属那一个学员档案下',
|
|
|
+ 1 `file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文件存储的路径',
|
|
|
+ 1 `arctype` int(11) DEFAULT NULL COMMENT '文件类型Id',
|
|
|
+ 1 `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ 1 `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
|
+ 1 `validity_time` datetime DEFAULT NULL COMMENT '档案有效期截至时间',
|
|
|
+ 1 `manager_id` int(11) DEFAULT NULL COMMENT '档案归属负责人',
|
|
|
+ ? `create_date` date DEFAULT NULL COMMENT '档案创建时间, 用于文件归档用',
|
|
|
+ ? `create_uid` int(11) DEFAULT NULL COMMENT '创建用户ID',
|
|
|
+ PRIMARY KEY (`id`) USING BTREE
|
|
|
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='文件档案表';
|
|
|
+ */
|
|
|
+ String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, String.valueOf(FileType.DOCX));
|
|
|
+ ArchivesDto archivesDto = easArchivesFilesService.saveArchiveStudentsFile(easArcTlsStudents.getStudentIdnumber(), doc);
|
|
|
+ String filePath = archivesDto.getPath();
|
|
|
+ String arctype = archivesDto.getFileType();
|
|
|
+ Date creat_time = DateUtils.convertToYearMonthDayToDate(new Date());
|
|
|
+ Date modify_time = new Date();
|
|
|
+
|
|
|
+ //validity_time 暂且设置成create_date + 1年
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(creat_time);
|
|
|
+ calendar.add(Calendar.YEAR, 1);
|
|
|
+ Date create_date = calendar.getTime();
|
|
|
+
|
|
|
+ int create_uid = 0;
|
|
|
+
|
|
|
+ EasArcArchives easArcArchives = new EasArcArchives();
|
|
|
+ easArcArchives.setArchiveNumber(archiveCode);
|
|
|
+ easArcArchives.setStudentNumber(studentNumber);
|
|
|
+ easArcArchives.setFilePath(filePath);
|
|
|
+ easArcArchives.setArctype(arctype);
|
|
|
+ easArcArchives.setCreateTime(creat_time);
|
|
|
+ easArcArchives.setModifyTime(modify_time);
|
|
|
+ easArcArchives.setValidityTime(create_date);
|
|
|
+ easArcArchives.setManagerId(manager_id);
|
|
|
+ easArcArchives.setCreateUid(create_uid);
|
|
|
+ easArcArchives.setCreateDate(new Date());
|
|
|
+
|
|
|
+ easArcArchivesMapper.insert(easArcArchives);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
LOGGER.error("学员档案导出失败:{}", e.getMessage(), e);
|
|
@@ -116,12 +202,6 @@ public class EasStuProfileServiceImpl implements EasStuProfileService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- private void saveDocument(XWPFDocument document) throws IOException {
|
|
|
- try (FileOutputStream outputStream = new FileOutputStream(OUTPUT_PATH)) {
|
|
|
- document.write(outputStream);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
|