diff --git a/src/com/engine/shkjsecond/entity/EducationInfo.java b/src/com/engine/shkjsecond/entity/EducationInfo.java index 9b73234..31b8098 100644 --- a/src/com/engine/shkjsecond/entity/EducationInfo.java +++ b/src/com/engine/shkjsecond/entity/EducationInfo.java @@ -22,9 +22,7 @@ public class EducationInfo { private String school; - private String educational; - - private String degree; + private String educationalAndDegree; private String major; } diff --git a/src/com/engine/shkjsecond/entity/FamilyInfo.java b/src/com/engine/shkjsecond/entity/FamilyInfo.java index e2ebc83..06708cc 100644 --- a/src/com/engine/shkjsecond/entity/FamilyInfo.java +++ b/src/com/engine/shkjsecond/entity/FamilyInfo.java @@ -23,9 +23,7 @@ public class FamilyInfo { private String age; - private String workUnit; - - private String position; + private String workUnitAndPostion; private String mobile; diff --git a/src/com/engine/shkjsecond/entity/WorkInfo.java b/src/com/engine/shkjsecond/entity/WorkInfo.java index f2b2399..9ad2b6a 100644 --- a/src/com/engine/shkjsecond/entity/WorkInfo.java +++ b/src/com/engine/shkjsecond/entity/WorkInfo.java @@ -20,11 +20,11 @@ public class WorkInfo { private String startAndEndDate; - private String company; - - private String department; + private String companyAndDepartment; private String position; + private String people; + private String mobile; } diff --git a/src/com/engine/shkjsecond/service/PersonnelResumeService.java b/src/com/engine/shkjsecond/service/PersonnelResumeService.java index 21ce199..9c90bb7 100644 --- a/src/com/engine/shkjsecond/service/PersonnelResumeService.java +++ b/src/com/engine/shkjsecond/service/PersonnelResumeService.java @@ -1,7 +1,9 @@ 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; /** @@ -31,4 +33,11 @@ public interface PersonnelResumeService { * @return: com.engine.shkjsecond.entity.PersonnelResumePo */ PersonnelResumePo peopleMainInfo(String resourceId); + + /** + * 根据人员id获取明细表信息 + * @param resourceId + * @return + */ + List peopleDetailInfo(String resourceId); } diff --git a/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java b/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java index d90ad92..0c25008 100644 --- a/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java +++ b/src/com/engine/shkjsecond/service/impl/PersonnelResumeServiceImpl.java @@ -1,12 +1,20 @@ package com.engine.shkjsecond.service.impl; - import com.engine.core.impl.Service; -import com.engine.shkjsecond.entity.PersonnelResumePo; +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; /** @@ -20,17 +28,236 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu @Override public Map getResumeList(String resourceId) { - return null; + Map 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 peopleDetailInfo(String resourceId) { + List tables = new ArrayList<>(); + + List columns = new ArrayList<>(); + List> datas = new ArrayList<>(); + + //1.教育经历 + List educationInfos = selectEducInfo(resourceId); + //增加空行 + educationInfos.add(EducationInfo.builder().build()); + for (EducationInfo educationInfo : educationInfos) { + List 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 trainingInfos = selectTainInfo(resourceId); + trainingInfos.add(TrainingInfo.builder().build()); + for (TrainingInfo trainingInfo : trainingInfos ) { + List 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 workInfos = selectWorkInfo(resourceId); + workInfos.add(WorkInfo.builder().build()); + + for (WorkInfo workInfo : workInfos){ + List workTr = new ArrayList<>(); + workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getStartAndEndDate()).rowspans(1).build()); + workTr.add(PersonnelResumeTd.builder().colspans(3).value(workInfo.getCompanyAndDepartment()).rowspans(1).build()); + workTr.add(PersonnelResumeTd.builder().colspans(1).value(workInfo.getPosition()).rowspans(1).build()); + workTr.add(PersonnelResumeTd.builder().colspans(2).value(workInfo.getPeople() + " / "+workInfo.getMobile()).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(3).value("公司名称/部门").rowspans(1).build()); + columns.add(PersonnelResumeTd.builder().colspans(1).value("职位").rowspans(1).build()); + columns.add(PersonnelResumeTd.builder().colspans(2).value("证明人及联系方式").rowspans(1).build()); + + tables.add(PersonnelResumeTable.builder().columns(columns).datas(datas).build()); + + //4.家庭状况 + columns = new ArrayList<>(); + datas = new ArrayList<>(); + List familyInfos = selectFamilyInfo(resourceId); + familyInfos.add(FamilyInfo.builder().build()); + for (FamilyInfo familyInfo : familyInfos) { + List 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 selectFamilyInfo(String resourceId) { + RecordSet rs = new RecordSet(); + List familyInfoList = new ArrayList<>(); + rs.executeQuery("select jtcyxm,gx,nl,gzdw,zw,lxdh from uf_jtqk where xm = ?",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 selectWorkInfo(String resourceId) { + RecordSet rs = new RecordSet(); + List workInfoList = new ArrayList<>(); + rs.executeQuery("select ksrq,jsrq,gsmc,bm,zw,zmr,zmrlxfs 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 bm = deptComInfo.getDepartmentName(Util.null2String(rs.getString("bm"))); + String companyAndDept = subComInfo.getSubCompanyname(Util.null2String(rs.getString("gsmc"))) + " / " + bm; + workInfoList.add(WorkInfo.builder() + .startAndEndDate(date) + .companyAndDepartment(companyAndDept) + .position(jobTitlesComInfo.getJobTitlesname(Util.null2String(rs.getString("zw")))) + .people(rInfo.getLastname(Util.null2String(rs.getString("zmr")))) + .mobile(Util.null2String(rs.getString("zmrlxfs"))) + .build()); + } + return workInfoList; + } + + private List selectTainInfo(String resourceId) { + RecordSet rs = new RecordSet(); + List 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; + } + + private List selectEducInfo(String resourceId) { + RecordSet rs = new RecordSet(); + EducationLevelComInfo eduComInfo = new EducationLevelComInfo(); + + List educationInfoList = new ArrayList<>(); + rs.executeQuery("select ksrq,jsrq,byyx,xl,xw,zy from uf_jyjl where xm = ?",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())); + 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(); - 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 " + + + 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 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, d.name as jobcall, e."+address+" as address, mobile, email, e."+emergencyContact+" as emergencyContact, " + + " e."+relationship+" as relationship, e."+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 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); @@ -41,30 +268,62 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu 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.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"))); - - //personnelResumePo.setLastName(Util.formatMultiLang()); } 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")); + } + + } diff --git a/src/com/engine/shkjsecond/web/PersonnelResumeAction.java b/src/com/engine/shkjsecond/web/PersonnelResumeAction.java index 70971af..8af9878 100644 --- a/src/com/engine/shkjsecond/web/PersonnelResumeAction.java +++ b/src/com/engine/shkjsecond/web/PersonnelResumeAction.java @@ -2,7 +2,6 @@ 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; @@ -14,6 +13,7 @@ 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;