Compare commits
11 Commits
Author | SHA1 | Date |
---|---|---|
|
8d96e1b0ba | 6 days ago |
|
c4985d0ef2 | 4 weeks ago |
|
971dff103d | 1 month ago |
|
eedd233616 | 1 month ago |
|
28cfaebda1 | 3 months ago |
|
1663106791 | 4 months ago |
|
1a883fba72 | 4 months ago |
|
8455845969 | 4 months ago |
|
5f457e74f6 | 5 months ago |
|
bedc4e2ee1 | 5 months ago |
|
906acef453 | 5 months ago |
@ -1,15 +1,11 @@
|
|||||||
/weaver-develop.iml
|
/weaver-develop.iml
|
||||||
/out/
|
/out/
|
||||||
.idea/
|
.idea/
|
||||||
|
/target/
|
||||||
HELP.md
|
|
||||||
target/
|
|
||||||
|
|
||||||
.idea
|
|
||||||
|
|
||||||
/test
|
/test
|
||||||
/src/rebel.xml
|
/src/rebel.xml
|
||||||
/src/META-INF
|
/src/META-INF
|
||||||
/WEB-INF/config
|
/WEB-INF/config
|
||||||
|
/log
|
||||||
/log
|
/src/META-INF/
|
||||||
|
/src/test/
|
@ -1,8 +0,0 @@
|
|||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="weaver-develop:jar">
|
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/weaver_develop_jar</output-path>
|
|
||||||
<root id="archive" name="weaver-develop.jar">
|
|
||||||
<element id="module-output" name="weaver-develop" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<annotationProcessing>
|
|
||||||
<profile default="true" name="Default" enabled="true" />
|
|
||||||
</annotationProcessing>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,9 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="classbean">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/classbean" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES />
|
|
||||||
</library>
|
|
||||||
</component>
|
|
@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="lib">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" />
|
|
||||||
</SOURCES>
|
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" recursive="false" />
|
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" recursive="false" type="SOURCES" />
|
|
||||||
</library>
|
|
||||||
</component>
|
|
@ -0,0 +1,31 @@
|
|||||||
|
## 户口
|
||||||
|
residence=field31
|
||||||
|
|
||||||
|
##政治面貌
|
||||||
|
politicsStatus=field28
|
||||||
|
|
||||||
|
##民族
|
||||||
|
nation=field44
|
||||||
|
|
||||||
|
##毕业院校
|
||||||
|
graduateSchool=field23
|
||||||
|
|
||||||
|
##专业
|
||||||
|
major=field22
|
||||||
|
|
||||||
|
##家庭地址
|
||||||
|
address=field43
|
||||||
|
|
||||||
|
##职业资格证书/职称
|
||||||
|
jobcall=field35
|
||||||
|
|
||||||
|
##应急联系人(基本信息)
|
||||||
|
emergencyContact=field0
|
||||||
|
|
||||||
|
##关系(基本信息)
|
||||||
|
relationship=field1
|
||||||
|
|
||||||
|
##应急联系人电话(基本信息)
|
||||||
|
eContactMobile=field2
|
||||||
|
|
||||||
|
#
|
@ -1,3 +0,0 @@
|
|||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: test.MainTest
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.api.shkjsecond.web;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author apple
|
||||||
|
*/
|
||||||
|
@Path("/sh/second/personnelresume")
|
||||||
|
public class PersonnelResumeAction extends com.engine.shkjsecond.web.PersonnelResumeAction {
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:05
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class EducationInfo {
|
||||||
|
|
||||||
|
private String startAndEndDate;
|
||||||
|
|
||||||
|
private String school;
|
||||||
|
|
||||||
|
private String educationalAndDegree;
|
||||||
|
|
||||||
|
private String major;
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:07
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class FamilyInfo {
|
||||||
|
|
||||||
|
private String lastName;
|
||||||
|
|
||||||
|
private String relationship;
|
||||||
|
|
||||||
|
private String age;
|
||||||
|
|
||||||
|
private String workUnitAndPostion;
|
||||||
|
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,118 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import net.coobird.thumbnailator.Thumbnails;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.poi.util.IOUtils;
|
||||||
|
import weaver.file.ImageFileManager;
|
||||||
|
import weaver.general.GCONST;
|
||||||
|
import weaver.general.Util;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 14:56
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PersonnelResumePo {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
private String lastName;
|
||||||
|
private String sex;
|
||||||
|
private String birthday;
|
||||||
|
private String resourceImageId;
|
||||||
|
|
||||||
|
private String certificatenum;
|
||||||
|
private String residence;
|
||||||
|
private String politicsStatus;
|
||||||
|
private String nation;
|
||||||
|
private String nativePlace;
|
||||||
|
|
||||||
|
private String height;
|
||||||
|
private String weight;
|
||||||
|
private String maritalStatus;
|
||||||
|
|
||||||
|
private String companyStartDate;
|
||||||
|
private String jobTitle;
|
||||||
|
private String department;
|
||||||
|
private String educationlevel;
|
||||||
|
private String graduateSchool;
|
||||||
|
private String major;
|
||||||
|
private String jobcall;
|
||||||
|
private String address;
|
||||||
|
private String mobile;
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private String emergencyContact;
|
||||||
|
private String relationship;
|
||||||
|
private String eContactMobile;
|
||||||
|
|
||||||
|
public String getSex() {
|
||||||
|
if ("1".equals(sex)) {
|
||||||
|
return "女";
|
||||||
|
}
|
||||||
|
return "男";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getImage() {
|
||||||
|
if (StringUtils.isBlank(resourceImageId)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
ImageFileManager manager = new ImageFileManager();
|
||||||
|
manager.getImageFileInfoById(Util.getIntValue(resourceImageId));
|
||||||
|
InputStream inputStream = manager.getInputStream();
|
||||||
|
String imageStr = "";
|
||||||
|
try {
|
||||||
|
String outPutPath = GCONST.getRootPath() + "hrm" + File.separator + "import" + File.separator + "template" + File.separator
|
||||||
|
+ manager.getImageFileName();
|
||||||
|
File f = new File(outPutPath);
|
||||||
|
if (!f.exists()) {
|
||||||
|
String substring = outPutPath.substring(0, outPutPath.lastIndexOf(File.separator));
|
||||||
|
File file = new File(substring);
|
||||||
|
if (file.mkdirs()) {
|
||||||
|
boolean newFile = f.createNewFile();
|
||||||
|
if (!newFile) {
|
||||||
|
throw new IOException(outPutPath + "文件创建失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Thumbnails.of(inputStream).forceSize(140, 160).toFile(f);
|
||||||
|
InputStream fileInputStream = Files.newInputStream(f.toPath());
|
||||||
|
imageStr = "data:image/" + manager.getImageFileType() + ";base64," + Base64.getEncoder().encodeToString(IOUtils.toByteArray(fileInputStream));
|
||||||
|
// 删除文件
|
||||||
|
f.delete();
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return imageStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getMarriage() {
|
||||||
|
if (StringUtils.isBlank(maritalStatus)) {
|
||||||
|
return "未婚";
|
||||||
|
}
|
||||||
|
switch (maritalStatus) {
|
||||||
|
case "1":
|
||||||
|
return "已婚";
|
||||||
|
case "2":
|
||||||
|
return "离异";
|
||||||
|
case "0":
|
||||||
|
default:
|
||||||
|
return "未婚";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:00
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PersonnelResumeTable {
|
||||||
|
|
||||||
|
private List<PersonnelResumeTd> columns;
|
||||||
|
|
||||||
|
private List<List<PersonnelResumeTd>> datas;
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:01
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PersonnelResumeTd {
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
private Integer colspans;
|
||||||
|
|
||||||
|
private Integer rowspans;
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:06
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class TrainingInfo {
|
||||||
|
|
||||||
|
private String startAndEndDate;
|
||||||
|
|
||||||
|
private String trainingContent;
|
||||||
|
|
||||||
|
private String trainingCompany;
|
||||||
|
|
||||||
|
private String certifications;
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.engine.shkjsecond.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 15:07
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class WorkInfo {
|
||||||
|
|
||||||
|
private String startAndEndDate;
|
||||||
|
|
||||||
|
private String startDate;
|
||||||
|
|
||||||
|
private String endDate;
|
||||||
|
|
||||||
|
private String subCompany;
|
||||||
|
|
||||||
|
private String department;
|
||||||
|
|
||||||
|
private String position;
|
||||||
|
|
||||||
|
private String peopleAndMobile;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package com.engine.shkjsecond.service;
|
||||||
|
|
||||||
|
import com.engine.shkjsecond.entity.PersonnelResumePo;
|
||||||
|
import com.engine.shkjsecond.entity.PersonnelResumeTable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 14:41
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public interface PersonnelResumeService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 人员简历
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2025/2/17 14:53
|
||||||
|
* @param: [resourceId]
|
||||||
|
* @return: java.util.Map<java.lang.String,java.lang.Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> getResumeList(String resourceId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 根据人员id获取主表信息
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2025/2/18 10:43
|
||||||
|
* @param: [resourceId]
|
||||||
|
* @return: com.engine.shkjsecond.entity.PersonnelResumePo
|
||||||
|
*/
|
||||||
|
PersonnelResumePo peopleMainInfo(String resourceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据人员id获取明细表信息
|
||||||
|
* @param resourceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PersonnelResumeTable> peopleDetailInfo(String resourceId);
|
||||||
|
}
|
@ -0,0 +1,356 @@
|
|||||||
|
package com.engine.shkjsecond.service.impl;
|
||||||
|
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.shkjsecond.entity.*;
|
||||||
|
import com.engine.shkjsecond.service.PersonnelResumeService;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.hrm.company.DepartmentComInfo;
|
||||||
|
import weaver.hrm.company.SubCompanyComInfo;
|
||||||
|
import weaver.hrm.job.EducationLevelComInfo;
|
||||||
|
import weaver.hrm.job.JobTitlesComInfo;
|
||||||
|
import weaver.hrm.resource.ResourceComInfo;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 14:41
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class PersonnelResumeServiceImpl extends Service implements PersonnelResumeService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getResumeList(String resourceId) {
|
||||||
|
Map<String, Object> resultMap = new HashMap<>(8);
|
||||||
|
PersonnelResumePo personnelResumePo = peopleMainInfo(resourceId);
|
||||||
|
resultMap.put("lastName",personnelResumePo.getLastName());
|
||||||
|
resultMap.put("sex",personnelResumePo.getSex());
|
||||||
|
resultMap.put("birthday",personnelResumePo.getBirthday());
|
||||||
|
resultMap.put("resourceImageId",personnelResumePo.getImage());
|
||||||
|
resultMap.put("certificatenum",personnelResumePo.getCertificatenum());
|
||||||
|
resultMap.put("residence",personnelResumePo.getResidence());
|
||||||
|
resultMap.put("politicsStatus",personnelResumePo.getPoliticsStatus());
|
||||||
|
resultMap.put("nation",personnelResumePo.getNation());
|
||||||
|
resultMap.put("nativePlace",personnelResumePo.getNativePlace());
|
||||||
|
|
||||||
|
resultMap.put("height",personnelResumePo.getHeight());
|
||||||
|
resultMap.put("weight",personnelResumePo.getWeight());
|
||||||
|
resultMap.put("maritalStatus",personnelResumePo.getMarriage());
|
||||||
|
resultMap.put("companyStartDate",personnelResumePo.getCompanyStartDate());
|
||||||
|
resultMap.put("jobTitle",personnelResumePo.getJobTitle());
|
||||||
|
resultMap.put("department",personnelResumePo.getDepartment());
|
||||||
|
resultMap.put("educationlevel",personnelResumePo.getEducationlevel());
|
||||||
|
resultMap.put("graduateSchool",personnelResumePo.getGraduateSchool());
|
||||||
|
resultMap.put("major",personnelResumePo.getMajor());
|
||||||
|
resultMap.put("jobcall",personnelResumePo.getJobcall());
|
||||||
|
resultMap.put("address",personnelResumePo.getAddress());
|
||||||
|
resultMap.put("mobile",personnelResumePo.getMobile());
|
||||||
|
resultMap.put("email",personnelResumePo.getEmail());
|
||||||
|
resultMap.put("emergencyContact",personnelResumePo.getEmergencyContact());
|
||||||
|
resultMap.put("relationship",personnelResumePo.getRelationship());
|
||||||
|
resultMap.put("eContactMobile",personnelResumePo.getEContactMobile());
|
||||||
|
|
||||||
|
//表格拓展
|
||||||
|
resultMap.put("tables", peopleDetailInfo(resourceId));
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PersonnelResumeTable> peopleDetailInfo(String resourceId) {
|
||||||
|
List<PersonnelResumeTable> tables = new ArrayList<>();
|
||||||
|
|
||||||
|
List<PersonnelResumeTd> columns = new ArrayList<>();
|
||||||
|
List<List<PersonnelResumeTd>> datas = new ArrayList<>();
|
||||||
|
|
||||||
|
//1.教育经历
|
||||||
|
List<EducationInfo> educationInfos = selectEducInfo(resourceId);
|
||||||
|
//增加空行
|
||||||
|
educationInfos.add(EducationInfo.builder().build());
|
||||||
|
for (EducationInfo educationInfo : educationInfos) {
|
||||||
|
List<PersonnelResumeTd> educTr = new ArrayList<>();
|
||||||
|
educTr.add(PersonnelResumeTd.builder().colspans(1).value(educationInfo.getStartAndEndDate()).rowspans(1).build());
|
||||||
|
educTr.add(PersonnelResumeTd.builder().colspans(2).value(educationInfo.getSchool()).rowspans(1).build());
|
||||||
|
educTr.add(PersonnelResumeTd.builder().colspans(1).value(educationInfo.getEducationalAndDegree()).rowspans(1).build());
|
||||||
|
educTr.add(PersonnelResumeTd.builder().colspans(3).value(educationInfo.getMajor()).rowspans(1).build());
|
||||||
|
datas.add(educTr);
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("教育经历").rowspans(educationInfos.size()+1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("起止时间").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(2).value("学校").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("学历").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(3).value("专业").rowspans(1).build());
|
||||||
|
|
||||||
|
tables.add(PersonnelResumeTable.builder().columns(columns).datas(datas).build());
|
||||||
|
|
||||||
|
//2.培训简历
|
||||||
|
columns = new ArrayList<>();
|
||||||
|
datas = new ArrayList<>();
|
||||||
|
List<TrainingInfo> trainingInfos = selectTainInfo(resourceId);
|
||||||
|
trainingInfos.add(TrainingInfo.builder().build());
|
||||||
|
for (TrainingInfo trainingInfo : trainingInfos ) {
|
||||||
|
List<PersonnelResumeTd> trainTr = new ArrayList<>();
|
||||||
|
trainTr.add(PersonnelResumeTd.builder().colspans(1).value(trainingInfo.getStartAndEndDate()).rowspans(1).build());
|
||||||
|
trainTr.add(PersonnelResumeTd.builder().colspans(2).value(trainingInfo.getTrainingContent()).rowspans(1).build());
|
||||||
|
trainTr.add(PersonnelResumeTd.builder().colspans(2).value(trainingInfo.getTrainingCompany()).rowspans(1).build());
|
||||||
|
trainTr.add(PersonnelResumeTd.builder().colspans(2).value(trainingInfo.getCertifications()).rowspans(1).build());
|
||||||
|
datas.add(trainTr);
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("培训经历").rowspans(trainingInfos.size()+1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("起止时间").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(2).value("培训内容").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(2).value("培训单位").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(2).value("所获证书").rowspans(1).build());
|
||||||
|
|
||||||
|
tables.add(PersonnelResumeTable.builder().columns(columns).datas(datas).build());
|
||||||
|
|
||||||
|
//3.工作经历(在盛虹工作经历)
|
||||||
|
columns = new ArrayList<>();
|
||||||
|
datas = new ArrayList<>();
|
||||||
|
List<WorkInfo> workInfos = selectWorkInfo(resourceId);
|
||||||
|
workInfos.add(WorkInfo.builder().build());
|
||||||
|
|
||||||
|
for (WorkInfo workInfo : workInfos){
|
||||||
|
List<PersonnelResumeTd> workTr = new ArrayList<>();
|
||||||
|
workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getStartDate()).rowspans(1).build());
|
||||||
|
workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getEndDate()).rowspans(1).build());
|
||||||
|
workTr.add(PersonnelResumeTd.builder().colspans(3).value(workInfo.getSubCompany()).rowspans(1).build());
|
||||||
|
workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getDepartment()).rowspans(1).build());
|
||||||
|
workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getPosition()).rowspans(1).build());
|
||||||
|
datas.add(workTr);
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("工作经历").rowspans(workInfos.size()+1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("开始日期").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("结束日期").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(3).value("公司").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("部门").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("岗位").rowspans(1).build());
|
||||||
|
|
||||||
|
tables.add(PersonnelResumeTable.builder().columns(columns).datas(datas).build());
|
||||||
|
|
||||||
|
//4.家庭状况
|
||||||
|
columns = new ArrayList<>();
|
||||||
|
datas = new ArrayList<>();
|
||||||
|
List<FamilyInfo> familyInfos = selectFamilyInfo(resourceId);
|
||||||
|
familyInfos.add(FamilyInfo.builder().build());
|
||||||
|
for (FamilyInfo familyInfo : familyInfos) {
|
||||||
|
List<PersonnelResumeTd> familyTr = new ArrayList<>();
|
||||||
|
familyTr.add(PersonnelResumeTd.builder().colspans(1).value(familyInfo.getLastName()).rowspans(1).build());
|
||||||
|
familyTr.add(PersonnelResumeTd.builder().colspans(1).value(familyInfo.getRelationship()).rowspans(1).build());
|
||||||
|
familyTr.add(PersonnelResumeTd.builder().colspans(1).value(familyInfo.getAge()).rowspans(1).build());
|
||||||
|
familyTr.add(PersonnelResumeTd.builder().colspans(3).value(familyInfo.getWorkUnitAndPostion()).rowspans(1).build());
|
||||||
|
familyTr.add(PersonnelResumeTd.builder().colspans(1).value(familyInfo.getMobile()).rowspans(1).build());
|
||||||
|
datas.add(familyTr);
|
||||||
|
}
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("家庭情况").rowspans(familyInfos.size()+1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("姓名").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("关系").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("年龄").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(3).value("工作单位/职位").rowspans(1).build());
|
||||||
|
columns.add(PersonnelResumeTd.builder().colspans(1).value("联系电话").rowspans(1).build());
|
||||||
|
tables.add(PersonnelResumeTable.builder().columns(columns).datas(datas).build());
|
||||||
|
|
||||||
|
return tables;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FamilyInfo> selectFamilyInfo(String resourceId) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
List<FamilyInfo> familyInfoList = new ArrayList<>();
|
||||||
|
rs.executeQuery("select jtcyxm,gx,nl,gzdw,zw,lxdh from uf_jtqk where xm1 = ?",resourceId);
|
||||||
|
while (rs.next()) {
|
||||||
|
familyInfoList.add(FamilyInfo.builder()
|
||||||
|
.lastName(Util.null2String(rs.getString("jtcyxm")))
|
||||||
|
.relationship(selectWorkflowItem("gx","uf_jtqk",Util.getIntValue(rs.getString("gx")),String.valueOf(user.getLanguage())))
|
||||||
|
.age(Util.null2String(rs.getString("nl")))
|
||||||
|
.workUnitAndPostion(Util.null2String(rs.getString("gzdw")) +" / "+Util.null2String(rs.getString("zw")))
|
||||||
|
.mobile(Util.null2String(rs.getString("lxdh")))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
return familyInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
private List<WorkInfo> selectWorkInfo(String resourceId) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
List<WorkInfo> workInfoList = new ArrayList<>();
|
||||||
|
rs.executeQuery("select ksrq,jsrq,gsmc,bm,zw from uf_gzjlsh where xm = ?",resourceId);
|
||||||
|
DepartmentComInfo deptComInfo = new DepartmentComInfo();
|
||||||
|
SubCompanyComInfo subComInfo = new SubCompanyComInfo();
|
||||||
|
ResourceComInfo rInfo = new ResourceComInfo();
|
||||||
|
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo();
|
||||||
|
while (rs.next()) {
|
||||||
|
//String date = Util.null2String(rs.getString("ksrq")) +" 至 " + Util.null2String(rs.getString("jsrq"));
|
||||||
|
String departmentName = deptComInfo.getDepartmentName(Util.null2String(rs.getString("bm")));
|
||||||
|
String subCompanyname = subComInfo.getSubCompanyname(Util.null2String(rs.getString("gsmc")));
|
||||||
|
String startDate = Util.null2String(rs.getString("ksrq"));
|
||||||
|
String endDate = Util.null2String(rs.getString("jsrq"));
|
||||||
|
workInfoList.add(WorkInfo.builder()
|
||||||
|
.startDate("".equals(startDate) ? startDate : startDate.substring(0,7))
|
||||||
|
.endDate("".equals(endDate) ? endDate : endDate.substring(0,7))
|
||||||
|
.subCompany(subCompanyname)
|
||||||
|
.department(departmentName)
|
||||||
|
.position(jobTitlesComInfo.getJobTitlesname(Util.null2String(rs.getString("zw"))))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
workInfoList.sort((w1, w2) -> {
|
||||||
|
String s1 = w1.getStartDate();
|
||||||
|
String s2 = w2.getStartDate();
|
||||||
|
if (s1.isEmpty() && s2.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (s1.isEmpty()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (s2.isEmpty()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return s1.compareTo(s2);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
return workInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<TrainingInfo> selectTainInfo(String resourceId) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
List<TrainingInfo> trainingInfoList = new ArrayList<>();
|
||||||
|
rs.executeQuery("select ksrq,jsrq,pxnr,pxdw,shzs from uf_pxjlsh where xm = ?",resourceId);
|
||||||
|
while (rs.next()) {
|
||||||
|
String date = Util.null2String(rs.getString("ksrq")) +" " + Util.null2String(rs.getString("jsrq"));
|
||||||
|
trainingInfoList.add(TrainingInfo.builder()
|
||||||
|
.startAndEndDate(date)
|
||||||
|
.trainingContent(Util.null2String(rs.getString("pxnr")))
|
||||||
|
.trainingCompany(Util.null2String(rs.getString("pxdw")))
|
||||||
|
.certifications(Util.null2String(rs.getString("shzs")))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
return trainingInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
private List<EducationInfo> selectEducInfo(String resourceId) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
EducationLevelComInfo eduComInfo = new EducationLevelComInfo();
|
||||||
|
ResourceComInfo resourceComInfo = new ResourceComInfo();
|
||||||
|
//String workcode = resourceComInfo.getWorkcode(resourceId);
|
||||||
|
|
||||||
|
List<EducationInfo> educationInfoList = new ArrayList<>();
|
||||||
|
rs.executeQuery("select ksrq,jsrq,byyx,xl,xw,zy from uf_jyjl where xm1 = ?",resourceId);
|
||||||
|
while (rs.next()) {
|
||||||
|
String date = Util.null2String(rs.getString("ksrq")) +" 至 " + Util.null2String(rs.getString("jsrq"));
|
||||||
|
// String educationalAndDegree = eduComInfo.getEducationLevelname(Util.null2String(rs.getString("xl"))) +" / "
|
||||||
|
// + selectWorkflowItem("xw","uf_jyjl",Util.getIntValue(rs.getString("xw")),String.valueOf(user.getLanguage()));
|
||||||
|
String educationalAndDegree = eduComInfo.getEducationLevelname(Util.null2String(rs.getString("xl")));
|
||||||
|
educationInfoList.add(EducationInfo.builder()
|
||||||
|
.startAndEndDate(date)
|
||||||
|
.school(Util.null2String(rs.getString("byyx")))
|
||||||
|
.educationalAndDegree(educationalAndDegree)
|
||||||
|
.major(Util.null2String(rs.getString("zy")))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return educationInfoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PersonnelResumePo peopleMainInfo(String resourceId) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
|
||||||
|
String residence = rs.getPropValue("shkjsecond", "residence");
|
||||||
|
String politicsStatus = rs.getPropValue("shkjsecond", "politicsStatus");
|
||||||
|
String nation = rs.getPropValue("shkjsecond", "nation");
|
||||||
|
String graduateSchool = rs.getPropValue("shkjsecond", "graduateSchool");
|
||||||
|
String major = rs.getPropValue("shkjsecond", "major");
|
||||||
|
String address = rs.getPropValue("shkjsecond", "address");
|
||||||
|
String jobcall = rs.getPropValue("shkjsecond", "jobcall");
|
||||||
|
String emergencyContact = rs.getPropValue("shkjsecond", "emergencyContact");
|
||||||
|
String relationship = rs.getPropValue("shkjsecond", "relationship");
|
||||||
|
String eContactMobile = rs.getPropValue("shkjsecond", "eContactMobile");
|
||||||
|
|
||||||
|
|
||||||
|
rs.executeQuery("SELECT h.id, lastname, sex, birthday, resourceimageid, certificatenum, e."+residence+" as residence, " +
|
||||||
|
" e."+politicsStatus+" as politicsStatus, e."+nation+" as nation, nativeplace, height, weight, maritalstatus, companystartdate, " +
|
||||||
|
" b.jobtitlename AS jobTitle, a.departmentname as department, c.name as educationlevel, e."+graduateSchool+" as graduateSchool, " +
|
||||||
|
" e."+major+" as major, e."+jobcall+" as jobcall, e."+address+" as address, mobile, email, d."+emergencyContact+" as emergencyContact, " +
|
||||||
|
" d."+relationship+" as relationship, d."+eContactMobile+" as eContactMobile FROM hrmresource h " +
|
||||||
|
" LEFT JOIN hrmdepartment a ON a.id = h.departmentid LEFT JOIN hrmjobtitles b ON b.id = h.jobtitle " +
|
||||||
|
" LEFT JOIN hrmeducationlevel c on c.id = h.educationlevel " +
|
||||||
|
" LEFT JOIN cus_fielddata d on d.id = h.id and d.scopeid = -1 and d.scope = 'HrmCustomFieldByInfoType' " +
|
||||||
|
" LEFT JOIN cus_fielddata e on e.id = h.id and e.scopeid = 1 and e.scope = 'HrmCustomFieldByInfoType' where h.id = ?",resourceId);
|
||||||
|
PersonnelResumePo personnelResumePo = PersonnelResumePo.builder().build();
|
||||||
|
if (rs.next()) {
|
||||||
|
personnelResumePo.setLastName(Util.null2String(rs.getString("lastname")));
|
||||||
|
personnelResumePo.setSex(Util.null2String(rs.getString("sex")));
|
||||||
|
personnelResumePo.setBirthday(Util.null2String(rs.getString("birthday")));
|
||||||
|
personnelResumePo.setResourceImageId(Util.null2String(rs.getString("resourceimageid")));
|
||||||
|
personnelResumePo.setCertificatenum(Util.null2String(rs.getString("certificatenum")));
|
||||||
|
personnelResumePo.setResidence(selectItemValue(residence,Util.getIntValue(rs.getString("residence")),String.valueOf(user.getLanguage())));
|
||||||
|
personnelResumePo.setPoliticsStatus(selectItemValue(politicsStatus,Util.getIntValue(rs.getString("politicsStatus")),String.valueOf(user.getLanguage())));
|
||||||
|
personnelResumePo.setNation(selectNationName(Util.null2String(rs.getString("nation"))));
|
||||||
|
personnelResumePo.setNativePlace(Util.null2String(rs.getString("nativeplace")));
|
||||||
|
personnelResumePo.setHeight(Util.null2String(rs.getString("height")));
|
||||||
|
personnelResumePo.setWeight(Util.null2String(rs.getString("weight")));
|
||||||
|
personnelResumePo.setMaritalStatus(Util.null2String(rs.getString("maritalstatus")));
|
||||||
|
personnelResumePo.setCompanyStartDate(Util.null2String(rs.getString("companystartdate")));
|
||||||
|
personnelResumePo.setJobTitle(Util.null2String(rs.getString("jobTitle")));
|
||||||
|
personnelResumePo.setDepartment(Util.null2String(rs.getString("department")));
|
||||||
|
personnelResumePo.setEducationlevel(Util.formatMultiLang(rs.getString("educationlevel"),String.valueOf(user.getLanguage())));
|
||||||
|
personnelResumePo.setGraduateSchool(Util.null2String(rs.getString("graduateSchool")));
|
||||||
|
personnelResumePo.setMajor(Util.null2String(rs.getString("major")));
|
||||||
|
personnelResumePo.setJobcall(Util.null2String(rs.getString("jobcall")));
|
||||||
|
personnelResumePo.setAddress(Util.null2String(rs.getString("address")));
|
||||||
|
personnelResumePo.setMobile(Util.null2String(rs.getString("mobile")));
|
||||||
|
personnelResumePo.setEmail(Util.null2String(rs.getString("email")));
|
||||||
|
personnelResumePo.setEmergencyContact(Util.null2String(rs.getString("emergencyContact")));
|
||||||
|
personnelResumePo.setRelationship(Util.null2String(rs.getString("relationship")));
|
||||||
|
personnelResumePo.setEContactMobile(Util.null2String(rs.getString("eContactMobile")));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return personnelResumePo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String selectItemValue(String field, Integer selectValue,String language) {
|
||||||
|
field = field.substring("field".length());
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
|
||||||
|
rs.executeQuery("select selectname from cus_selectitem where fieldid = ? and selectvalue = ?",field,selectValue);
|
||||||
|
rs.next();
|
||||||
|
return Util.formatMultiLang(Util.null2String(rs.getString("selectname")),language);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String selectWorkflowItem(String fieldName, String tableName,Integer selectValue,String language) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
Integer fieldId = null;
|
||||||
|
rs.executeQuery("select id from workflow_billfield where billid = (select id from workflow_bill where tablename = '"+tableName+"') \n" +
|
||||||
|
" and fieldname = '"+fieldName+"'");
|
||||||
|
if (rs.next()) {
|
||||||
|
fieldId = Util.getIntValue(rs.getString("id"));
|
||||||
|
}
|
||||||
|
rs.executeQuery("select selectname from workflow_selectitem where fieldid = ? and selectvalue = ?",fieldId,selectValue);
|
||||||
|
rs.next();
|
||||||
|
return Util.formatMultiLang(Util.null2String(rs.getString("selectname")),language);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String selectNationName(String value) {
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
rs.executeQuery("select mz from uf_mzb where id = ?",value);
|
||||||
|
rs.next();
|
||||||
|
return Util.null2String(rs.getString("mz"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.engine.shkjsecond.web;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.shkjsecond.service.PersonnelResumeService;
|
||||||
|
import com.engine.shkjsecond.service.impl.PersonnelResumeServiceImpl;
|
||||||
|
import weaver.hrm.HrmUserVarify;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.ws.rs.GET;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2025/2/17 14:40
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public class PersonnelResumeAction {
|
||||||
|
|
||||||
|
private PersonnelResumeService getService(User user) {
|
||||||
|
return ServiceUtil.getService(PersonnelResumeServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getResumeList")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String getResumeList(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam("resourceId") String resourceId){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
data.put("resumeList",getService(user).getResumeList(resourceId));
|
||||||
|
data.put("api_status", true);
|
||||||
|
} catch (Exception e) {
|
||||||
|
data.put("api_status", false);
|
||||||
|
data.put("msg", "catch exception : " + e.getMessage());
|
||||||
|
}
|
||||||
|
return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect);
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +0,0 @@
|
|||||||
package test;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author weaver_cl
|
|
||||||
* @Description:
|
|
||||||
* @Date 2022/10/9
|
|
||||||
* @Version V1.0
|
|
||||||
**/
|
|
||||||
public class MainTest {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue