人员简历导出、压缩下载(20230105)
This commit is contained in:
parent
d81776680f
commit
b515fdb78f
|
|
@ -19,11 +19,13 @@ import java.util.Base64;
|
|||
*/
|
||||
@Data
|
||||
public class PersonnelResumePO {
|
||||
private Integer id;
|
||||
private String lastName;
|
||||
private String sex;
|
||||
private String birthday;
|
||||
// resourceImageId;
|
||||
private String image;
|
||||
private String imageId;
|
||||
private String nativePlace;
|
||||
// policy;
|
||||
private String politics;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ public interface HrmResourceMapper {
|
|||
|
||||
PersonnelResumePO getPersonnelResumeById(@Param("id") Integer id);
|
||||
|
||||
List<PersonnelResumePO> getPersonnelResumeList();
|
||||
|
||||
List<HrmFamilyInfoPO> getHrmFamilyInfoByUser(@Param("resourceId") Integer resourceId);
|
||||
|
||||
List<ResourcePO> getPersonnelScreening(@Param("subCompanyIds") List<Integer> subcompanyid1, @Param("departmentIds") List<Integer> departmentid, @Param("jobIds") List<Long> jobId, @Param("resourceIds") List<Long> resourceId);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,29 @@
|
|||
inner join hrmjobtitles b on b.id = h.jobtitle
|
||||
where h.id = #{id}
|
||||
</select>
|
||||
<select id="getPersonnelResumeList"
|
||||
resultType="com.engine.organization.entity.resume.po.PersonnelResumePO">
|
||||
select h.id,
|
||||
lastname,
|
||||
sex,
|
||||
birthday,
|
||||
resourceimageid as image,
|
||||
resourceimageid as imageId,
|
||||
nativeplace,
|
||||
policy as politics,
|
||||
a.departmentname as department,
|
||||
maritalstatus as marriage,
|
||||
b.jobtitlename as jobTitle,
|
||||
companystartdate,
|
||||
workstartdate,
|
||||
certificatenum as idCard,
|
||||
residentplace as address,
|
||||
mobile as telephone,
|
||||
email
|
||||
from hrmresource h
|
||||
inner join hrmdepartment a on a.id = h.departmentid
|
||||
inner join hrmjobtitles b on b.id = h.jobtitle
|
||||
</select>
|
||||
<select id="getHrmFamilyInfoByUser" resultType="com.engine.organization.entity.resume.po.HrmFamilyInfoPO">
|
||||
select *
|
||||
from HrmFamilyInfo
|
||||
|
|
|
|||
|
|
@ -111,52 +111,7 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu
|
|||
resultMap.put("selfStatement", "");
|
||||
|
||||
// 简历相关表格,待拓展
|
||||
List<PersonnelResumeTable> tables = new ArrayList<>();
|
||||
List<PersonnelResumeColumn> insurancesTitles = new ArrayList<>();
|
||||
List<PersonnelResumeColumn> familyInfoTitles = new ArrayList<>();
|
||||
|
||||
List<PersonnelResumeColumn> insuranceDatas = new ArrayList<>();
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("首次参保时间").colspans(2).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("养老保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("医疗保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("失业保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("住房公积金").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("企业年金").colspans(1).rowspans(1).build());
|
||||
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("2022-10-02").colspans(2).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("80").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("36").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("360").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("180").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("20000").colspans(1).rowspans(1).build());
|
||||
tables.add(PersonnelResumeTable.builder().title("二、社会保险及住房公积金缴纳情况(单位/元)").columns(insurancesTitles).datas(Collections.singletonList(insuranceDatas)).build());
|
||||
|
||||
// 家庭情况
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("关系").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("姓名").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("工作单位").colspans(2).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("职务").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("住址").colspans(2).rowspans(1).build());
|
||||
|
||||
|
||||
List<HrmFamilyInfoPO> hrmFamilyInfoByUser = getHrmResourceMapper().getHrmFamilyInfoByUser(uId);
|
||||
if (CollectionUtils.isEmpty(hrmFamilyInfoByUser)) {
|
||||
hrmFamilyInfoByUser.add(new HrmFamilyInfoPO());
|
||||
}
|
||||
List<List<PersonnelResumeColumn>> objects = new ArrayList<>();
|
||||
for (HrmFamilyInfoPO hrmFamilyInfoPO : hrmFamilyInfoByUser) {
|
||||
List<PersonnelResumeColumn> familyInfoDatas = new ArrayList<>();
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getTitle()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getMember()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getCompany()).colspans(2).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getJobTitle()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getAddress()).colspans(2).rowspans(1).build());
|
||||
objects.add(familyInfoDatas);
|
||||
}
|
||||
tables.add(PersonnelResumeTable.builder().title("三、家庭成员信息(包括父母、配偶、子女)").columns(familyInfoTitles).datas(objects).build());
|
||||
|
||||
|
||||
resultMap.put("tables", tables);
|
||||
resultMap.put("tables", getPersonnelResumeTable(uId));
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
|
@ -191,20 +146,14 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu
|
|||
List<CustomXWPFDocument> xwpfDocuments = new ArrayList<>();
|
||||
//模板地址
|
||||
String outPutPath = GCONST.getRootPath() + "hrm" + File.separator + "import" + File.separator + "template" + File.separator;
|
||||
String filePath = outPutPath + "template0104.docx";
|
||||
String filePath = outPutPath + "PerResume.docx";
|
||||
//创建压缩包位置
|
||||
File fileZip = new File(outPutPath + "wordZip");
|
||||
if (!fileZip.exists()) {
|
||||
fileZip.mkdirs();
|
||||
}
|
||||
// 处理赋值的数据
|
||||
Map<String, Object> dataMap = new HashMap<>();
|
||||
Map<String, Object> resMap = getResumeList(22);
|
||||
Map<String, Object> resMap2 = getResumeList(29);
|
||||
|
||||
List<Map<String, Object>> dataMapList = new ArrayList<>();
|
||||
dataMapList.add(resMap);
|
||||
dataMapList.add(resMap2);
|
||||
List<Map<String, Object>> dataMapList = getAllResumeList();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
|
||||
String filesPath = outPutPath + "wordZip" + File.separator + simpleDateFormat.format(new Date());
|
||||
String fileAllWordPath = outPutPath + "wordZip";
|
||||
|
|
@ -213,27 +162,7 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu
|
|||
for (int count = 0; count < dataMapList.size(); count++) {
|
||||
//处理单人数据
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
for (Map.Entry<String, Object> entry : dataMapList.get(count).entrySet()) {
|
||||
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
|
||||
paramMap.put("${" + entry.getKey() + "}", entry.getValue());
|
||||
}
|
||||
if (dataMapList.get(count).containsKey("tables")) {
|
||||
List<PersonnelResumeTable> tables = (List<PersonnelResumeTable>) dataMapList.get(count).get("tables");
|
||||
for (int t = 0; t < tables.size(); t++) {
|
||||
PersonnelResumeTable personnelResumeTable = tables.get(t);
|
||||
int length = personnelResumeTable.getColumns().size();
|
||||
if (personnelResumeTable.getDatas().size() > 0) {
|
||||
List<List<PersonnelResumeColumn>> datas = personnelResumeTable.getDatas();
|
||||
if (datas.size() > 0) {
|
||||
List<PersonnelResumeColumn> dataList = datas.get(0);
|
||||
for (int i = 0; i < length; i++) {
|
||||
paramMap.put("${col" + t + i + "}", Util.null2String(dataList.get(i).getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
paramMap.put("${@image}", "1198");
|
||||
paramMap = dataMapList.get(count);
|
||||
WordUtil wordUtil = new WordUtil();
|
||||
//返回一个新的xwpfDocument对象
|
||||
File file = new File(filePath);
|
||||
|
|
@ -286,6 +215,96 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu
|
|||
return resPath;
|
||||
}
|
||||
|
||||
// 简历相关表格,待拓展
|
||||
public List<PersonnelResumeTable> getPersonnelResumeTable(Integer uId){
|
||||
List<PersonnelResumeTable> tables = new ArrayList<>();
|
||||
List<PersonnelResumeColumn> insurancesTitles = new ArrayList<>();
|
||||
List<PersonnelResumeColumn> familyInfoTitles = new ArrayList<>();
|
||||
|
||||
List<PersonnelResumeColumn> insuranceDatas = new ArrayList<>();
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("首次参保时间").colspans(2).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("养老保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("医疗保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("失业保险").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("住房公积金").colspans(1).rowspans(1).build());
|
||||
insurancesTitles.add(PersonnelResumeColumn.builder().name("企业年金").colspans(1).rowspans(1).build());
|
||||
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("2022-10-02").colspans(2).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("80").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("36").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("360").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("180").colspans(1).rowspans(1).build());
|
||||
insuranceDatas.add(PersonnelResumeColumn.builder().value("20000").colspans(1).rowspans(1).build());
|
||||
tables.add(PersonnelResumeTable.builder().title("二、社会保险及住房公积金缴纳情况(单位/元)").columns(insurancesTitles).datas(Collections.singletonList(insuranceDatas)).build());
|
||||
|
||||
// 家庭情况
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("关系").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("姓名").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("工作单位").colspans(2).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("职务").colspans(1).rowspans(1).build());
|
||||
familyInfoTitles.add(PersonnelResumeColumn.builder().name("住址").colspans(2).rowspans(1).build());
|
||||
|
||||
|
||||
List<HrmFamilyInfoPO> hrmFamilyInfoByUser = getHrmResourceMapper().getHrmFamilyInfoByUser(uId);
|
||||
if (CollectionUtils.isEmpty(hrmFamilyInfoByUser)) {
|
||||
hrmFamilyInfoByUser.add(new HrmFamilyInfoPO());
|
||||
}
|
||||
List<List<PersonnelResumeColumn>> objects = new ArrayList<>();
|
||||
for (HrmFamilyInfoPO hrmFamilyInfoPO : hrmFamilyInfoByUser) {
|
||||
List<PersonnelResumeColumn> familyInfoDatas = new ArrayList<>();
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getTitle()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getMember()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getCompany()).colspans(2).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getJobTitle()).colspans(1).rowspans(1).build());
|
||||
familyInfoDatas.add(PersonnelResumeColumn.builder().value(hrmFamilyInfoPO.getAddress()).colspans(2).rowspans(1).build());
|
||||
objects.add(familyInfoDatas);
|
||||
}
|
||||
tables.add(PersonnelResumeTable.builder().title("三、家庭成员信息(包括父母、配偶、子女)").columns(familyInfoTitles).datas(objects).build());
|
||||
return tables;
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getAllResumeList() {
|
||||
List<PersonnelResumePO> personnelResumeList = getHrmResourceMapper().getPersonnelResumeList();
|
||||
OrganizationAssert.notNull(personnelResumeList, "未找到对应人员");
|
||||
List<Map<String, Object>> dataMapList = new ArrayList<>();
|
||||
for (PersonnelResumePO personnelResumePO : personnelResumeList) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("${lastName}", Util.null2String(personnelResumePO.getLastName()));
|
||||
resultMap.put("${sex}", Util.null2String(personnelResumePO.getSex()));
|
||||
resultMap.put("${birthday}", Util.null2String(personnelResumePO.getBirthday()));
|
||||
resultMap.put("${@image}", Util.null2String(personnelResumePO.getImageId()));
|
||||
resultMap.put("${native}", Util.null2String(personnelResumePO.getNativePlace()));
|
||||
resultMap.put("${politics}", Util.null2String(personnelResumePO.getPolitics()));
|
||||
resultMap.put("${department}", Util.null2String(personnelResumePO.getDepartment()));
|
||||
resultMap.put("${marriage}", Util.null2String(personnelResumePO.getMarriage()));
|
||||
resultMap.put("${jobtitle}", Util.null2String(personnelResumePO.getJobTitle()));
|
||||
resultMap.put("${companystartdate}", Util.null2String(personnelResumePO.getCompanyStartDate()));
|
||||
resultMap.put("${workstartdate}", Util.null2String(personnelResumePO.getWorkStartDate()));
|
||||
resultMap.put("${idCard}", Util.null2String(personnelResumePO.getIdCard()));
|
||||
resultMap.put("${address}", Util.null2String(personnelResumePO.getAddress()));
|
||||
resultMap.put("${telephone}", Util.null2String(personnelResumePO.getTelephone()));
|
||||
resultMap.put("${email}", Util.null2String(personnelResumePO.getEmail()));
|
||||
resultMap.put("${selfStatement}", "");
|
||||
List<PersonnelResumeTable> tables = getPersonnelResumeTable(personnelResumePO.getId());
|
||||
for (int t = 0; t < tables.size(); t++) {
|
||||
PersonnelResumeTable personnelResumeTable = tables.get(t);
|
||||
int length = personnelResumeTable.getColumns().size();
|
||||
if (personnelResumeTable.getDatas().size() > 0) {
|
||||
List<List<PersonnelResumeColumn>> datas = personnelResumeTable.getDatas();
|
||||
if (datas.size() > 0) {
|
||||
List<PersonnelResumeColumn> dataList = datas.get(0);
|
||||
for (int i = 0; i < length; i++) {
|
||||
resultMap.put("${col" + t + i + "}", Util.null2String(dataList.get(i).getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dataMapList.add(resultMap);
|
||||
}
|
||||
|
||||
return dataMapList;
|
||||
}
|
||||
|
||||
//两个对象进行追加
|
||||
public CustomXWPFDocument mergeWord(CustomXWPFDocument document, CustomXWPFDocument doucDocument2) throws Exception {
|
||||
CustomXWPFDocument src1Document = document;
|
||||
|
|
@ -416,7 +435,7 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu
|
|||
}
|
||||
return flag;
|
||||
}
|
||||
public List<SearchTree> getFilterDatas(String id, String type, String keyword) {
|
||||
|
||||
@Override
|
||||
public List<SearchConditionItem> personnelScreening() {
|
||||
List<SearchConditionItem> items = new ArrayList<>();
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
package com.engine.organization.util.word;
|
||||
import org.apache.poi.ooxml.POIXMLDocument;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
import org.apache.poi.xwpf.usermodel.*;
|
||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.general.Util;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
|
@ -104,6 +100,9 @@ public class WordUtil {
|
|||
break;
|
||||
}else{
|
||||
String value= params.get(key).toString();
|
||||
if (StringUtils.isBlank(value)){
|
||||
break;
|
||||
}
|
||||
int length = para.getRuns().size();
|
||||
if (length > 0) {
|
||||
for (int i = (length - 1); i >= 0; i--) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue