From 906acef4530a845a0ad154bc2d9026f1dabdbf82 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 18 Feb 2025 11:35:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=9B=E8=99=B9=E5=8C=96=E7=BA=A4=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E7=AE=80=E5=8E=86=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/artifacts/weaver_develop_jar.xml | 2 +- .../shkjsecond/web/PersonnelResumeAction.java | 12 ++ .../shkjsecond/entity/EducationInfo.java | 30 +++++ .../engine/shkjsecond/entity/FamilyInfo.java | 32 +++++ .../shkjsecond/entity/PersonnelResumePo.java | 118 ++++++++++++++++++ .../entity/PersonnelResumeTable.java | 25 ++++ .../shkjsecond/entity/PersonnelResumeTd.java | 25 ++++ .../shkjsecond/entity/TrainingInfo.java | 28 +++++ .../engine/shkjsecond/entity/WorkInfo.java | 30 +++++ .../service/PersonnelResumeService.java | 34 +++++ .../impl/PersonnelResumeServiceImpl.java | 70 +++++++++++ .../shkjsecond/web/PersonnelResumeAction.java | 49 ++++++++ 12 files changed, 454 insertions(+), 1 deletion(-) create mode 100644 src/com/api/shkjsecond/web/PersonnelResumeAction.java create mode 100644 src/com/engine/shkjsecond/entity/EducationInfo.java create mode 100644 src/com/engine/shkjsecond/entity/FamilyInfo.java create mode 100644 src/com/engine/shkjsecond/entity/PersonnelResumePo.java create mode 100644 src/com/engine/shkjsecond/entity/PersonnelResumeTable.java create mode 100644 src/com/engine/shkjsecond/entity/PersonnelResumeTd.java create mode 100644 src/com/engine/shkjsecond/entity/TrainingInfo.java create mode 100644 src/com/engine/shkjsecond/entity/WorkInfo.java create mode 100644 src/com/engine/shkjsecond/service/PersonnelResumeService.java create mode 100644 src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java create mode 100644 src/com/engine/shkjsecond/web/PersonnelResumeAction.java diff --git a/.idea/artifacts/weaver_develop_jar.xml b/.idea/artifacts/weaver_develop_jar.xml index 6258dfe..2aff103 100644 --- a/.idea/artifacts/weaver_develop_jar.xml +++ b/.idea/artifacts/weaver_develop_jar.xml @@ -1,6 +1,6 @@ - $PROJECT_DIR$/out/artifacts/weaver_develop_jar + $PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib diff --git a/src/com/api/shkjsecond/web/PersonnelResumeAction.java b/src/com/api/shkjsecond/web/PersonnelResumeAction.java new file mode 100644 index 0000000..11491b6 --- /dev/null +++ b/src/com/api/shkjsecond/web/PersonnelResumeAction.java @@ -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 { +} diff --git a/src/com/engine/shkjsecond/entity/EducationInfo.java b/src/com/engine/shkjsecond/entity/EducationInfo.java new file mode 100644 index 0000000..9b73234 --- /dev/null +++ b/src/com/engine/shkjsecond/entity/EducationInfo.java @@ -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:05 + * @Description: + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EducationInfo { + + private String startAndEndDate; + + private String school; + + private String educational; + + private String degree; + + private String major; +} diff --git a/src/com/engine/shkjsecond/entity/FamilyInfo.java b/src/com/engine/shkjsecond/entity/FamilyInfo.java new file mode 100644 index 0000000..e2ebc83 --- /dev/null +++ b/src/com/engine/shkjsecond/entity/FamilyInfo.java @@ -0,0 +1,32 @@ +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 workUnit; + + private String position; + + private String mobile; + +} diff --git a/src/com/engine/shkjsecond/entity/PersonnelResumePo.java b/src/com/engine/shkjsecond/entity/PersonnelResumePo.java new file mode 100644 index 0000000..55d55e4 --- /dev/null +++ b/src/com/engine/shkjsecond/entity/PersonnelResumePo.java @@ -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(100, 120).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 "未婚"; + } + } +} diff --git a/src/com/engine/shkjsecond/entity/PersonnelResumeTable.java b/src/com/engine/shkjsecond/entity/PersonnelResumeTable.java new file mode 100644 index 0000000..167b004 --- /dev/null +++ b/src/com/engine/shkjsecond/entity/PersonnelResumeTable.java @@ -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 columns; + + private List> datas; +} diff --git a/src/com/engine/shkjsecond/entity/PersonnelResumeTd.java b/src/com/engine/shkjsecond/entity/PersonnelResumeTd.java new file mode 100644 index 0000000..545dc4e --- /dev/null +++ b/src/com/engine/shkjsecond/entity/PersonnelResumeTd.java @@ -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; +} diff --git a/src/com/engine/shkjsecond/entity/TrainingInfo.java b/src/com/engine/shkjsecond/entity/TrainingInfo.java new file mode 100644 index 0000000..923d10e --- /dev/null +++ b/src/com/engine/shkjsecond/entity/TrainingInfo.java @@ -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; +} diff --git a/src/com/engine/shkjsecond/entity/WorkInfo.java b/src/com/engine/shkjsecond/entity/WorkInfo.java new file mode 100644 index 0000000..f2b2399 --- /dev/null +++ b/src/com/engine/shkjsecond/entity/WorkInfo.java @@ -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 WorkInfo { + + private String startAndEndDate; + + private String company; + + private String department; + + private String position; + + private String mobile; +} diff --git a/src/com/engine/shkjsecond/service/PersonnelResumeService.java b/src/com/engine/shkjsecond/service/PersonnelResumeService.java new file mode 100644 index 0000000..21ce199 --- /dev/null +++ b/src/com/engine/shkjsecond/service/PersonnelResumeService.java @@ -0,0 +1,34 @@ +package com.engine.shkjsecond.service; + +import com.engine.shkjsecond.entity.PersonnelResumePo; + +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 + */ + Map 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); +} diff --git a/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java b/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java new file mode 100644 index 0000000..d90ad92 --- /dev/null +++ b/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java @@ -0,0 +1,70 @@ +package com.engine.shkjsecond.service.impl; + + +import com.engine.core.impl.Service; +import com.engine.shkjsecond.entity.PersonnelResumePo; +import com.engine.shkjsecond.service.PersonnelResumeService; +import weaver.conn.RecordSet; +import weaver.general.Util; + +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 getResumeList(String resourceId) { + return null; + } + + @Override + public PersonnelResumePo peopleMainInfo(String resourceId) { + RecordSet rs = new RecordSet(); + rs.executeQuery("SELECT h.id, lastname, sex, birthday, resourceimageid, certificatenum, e.field43 as residence, " + + " e.field44 as politicsStatus, e.field48 as nation, nativeplace, height, weight, maritalstatus, companystartdate, " + + " b.jobtitlename AS jobTitle, a.departmentname as department, c.name as educationlevel, e.field38 as graduateSchool, " + + " e.field39 as major, d.name as jobcall, e.field40 as address, mobile, email, e.field41 as emergencyContact, " + + " e.field45 as relationship, e.field46 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 hrmjobcall d on d.id = h.jobcall " + + " LEFT JOIN cus_fielddata e on e.id = h.id and scopeid = 1 and 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(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + personnelResumePo.setSex(Util.null2String(rs.getString("sex"))); + + + //personnelResumePo.setLastName(Util.formatMultiLang()); + } + + + return personnelResumePo; + } +} diff --git a/src/com/engine/shkjsecond/web/PersonnelResumeAction.java b/src/com/engine/shkjsecond/web/PersonnelResumeAction.java new file mode 100644 index 0000000..70971af --- /dev/null +++ b/src/com/engine/shkjsecond/web/PersonnelResumeAction.java @@ -0,0 +1,49 @@ +package com.engine.shkjsecond.web; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.azure.core.annotation.QueryParam; +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.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 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); + } +}