From 3d22e13a290a590bb4a84cfb1da8a8be811e56c4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 9 Apr 2024 14:36:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B1=9F=E8=8B=8F=E6=96=B0=E8=A7=86=E4=BA=91?= =?UTF-8?q?=20BOSS=E7=9B=B4=E8=81=98=EF=BC=8C=E8=81=8C=E4=BD=8D=E7=B1=BB?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RecruitPositionController.java | 10 ++ .../service/RecruitPositionService.java | 8 ++ .../impl/RecruitPositionServiceImpl.java | 91 +++++++++++++++++++ .../wrapper/RecruitPositionWrapper.java | 4 + 4 files changed, 113 insertions(+) diff --git a/src/com/engine/recruit/controller/RecruitPositionController.java b/src/com/engine/recruit/controller/RecruitPositionController.java index e2e1c49..6fc560e 100644 --- a/src/com/engine/recruit/controller/RecruitPositionController.java +++ b/src/com/engine/recruit/controller/RecruitPositionController.java @@ -9,6 +9,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -34,4 +35,13 @@ public class RecruitPositionController { Map param = ParamUtil.request2Map(request); return new ResponseResult, Map>(user).run(getRecruitPositionWrapper(user)::updatePostInfo, param); } + + @GET + @Path("/createPositionType") + @Produces(MediaType.APPLICATION_JSON) + public String createPositionType(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map param = ParamUtil.request2Map(request); + return new ResponseResult, Map>(user).run(getRecruitPositionWrapper(user)::createPositionType, param); + } } diff --git a/src/com/engine/recruit/service/RecruitPositionService.java b/src/com/engine/recruit/service/RecruitPositionService.java index f7d9540..314978a 100644 --- a/src/com/engine/recruit/service/RecruitPositionService.java +++ b/src/com/engine/recruit/service/RecruitPositionService.java @@ -17,4 +17,12 @@ public interface RecruitPositionService { */ Map updatePostInfo(Map param); + + /** + * 生成职位类型 + * + * @param param + * @return + */ + Map createPositionType(Map param); } diff --git a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java index 778d10c..d519a7f 100644 --- a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java @@ -1,14 +1,22 @@ package com.engine.recruit.service.impl; import com.engine.core.impl.Service; +import com.engine.recruit.conn.RecruitDataMap; +import com.engine.recruit.conn.RecruitRecordSet; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RecruitPositionService; +import com.weaver.formmodel.util.DateHelper; +import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; +import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField; +import com.weaver.rpa.sdk.clients.core.ERPASDKClients; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.UUID; /** * @author:dxfeng @@ -35,4 +43,87 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi } return returnMap; } + + @Override + public Map createPositionType(Map param) { + RecordSet rs = new RecordSet(); + ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); + ResumeJobDynamicField resumeJobDynamicField = client.getResumeJobDynamicField(); + List boss_type = (List) resumeJobDynamicField.getBoss_type(); + + String currentDate = DateHelper.getCurrentDate(); + String currentTime = DateHelper.getCurrentTime(); + String currentDateTime = DateHelper.getCurDateTime(); + // 插入主表数据 + Map mainDataMap = new RecruitDataMap<>(); + mainDataMap.put("SELECTITEMNAME", "BOSS直聘职位类别"); + mainDataMap.put("CREATER", "1"); + mainDataMap.put("CREATEDATE", currentDate); + mainDataMap.put("CREATETIME", currentTime); + mainDataMap.put("APPID", 0); + mainDataMap.put("UUID", UUID.randomUUID().toString()); + mainDataMap.put("OPERATETIME", currentDateTime); + RecruitRecordSet.insertData(mainDataMap, "mode_selectitempage"); + rs.executeQuery("select max(id) as id from mode_selectitempage "); + String mainId = ""; + if (rs.next()) { + mainId = rs.getString("id"); + } + if (StringUtils.isBlank(mainId)) { + throw new CustomizeRunTimeException("BOSS直聘职位类别,数据插入异常"); + } + + for (ResumeJobDynamicField.Item topItem : boss_type) { + // 插入第一层数据 + RecruitDataMap topMap = buildPageDetailMap(mainId, "0", topItem.getLabel(), 1); + RecruitRecordSet.insertData(topMap, "mode_selectitempagedetail"); + rs.executeQuery("select max(id) as id from mode_selectitempagedetail "); + String topId = ""; + if (rs.next()) { + topId = rs.getString("id"); + } + if (StringUtils.isBlank(topId)) { + throw new CustomizeRunTimeException("BOSS直聘职位类别,一级数据插入异常"); + } + + List secondItemList = (List) topItem.getChildren(); + for (ResumeJobDynamicField.Item secondItem : secondItemList) { + // 插入第二层数据 + RecruitDataMap secondMap = buildPageDetailMap(mainId, topId, secondItem.getLabel(), 2); + RecruitRecordSet.insertData(secondMap, "mode_selectitempagedetail"); + rs.executeQuery("select max(id) as id from mode_selectitempagedetail "); + String secondId = ""; + if (rs.next()) { + secondId = rs.getString("id"); + } + if (StringUtils.isBlank(secondId)) { + throw new CustomizeRunTimeException("BOSS直聘职位类别,二级数据插入异常"); + } + + List thirdItemList = (List) secondItem.getChildren(); + for (ResumeJobDynamicField.Item thirdItem : thirdItemList) { + // 插入第三层数据 + RecruitDataMap thirdMap = buildPageDetailMap(mainId, secondId, thirdItem.getLabel(), 3); + RecruitRecordSet.insertData(thirdMap, "mode_selectitempagedetail"); + } + + } + + } + return null; + } + + private RecruitDataMap buildPageDetailMap(String mainId, String pId, String name, int stateLev) { + RecruitDataMap map = new RecruitDataMap<>(); + map.put("MAINID", mainId); + map.put("NAME", name); + map.put("DISORDER", 0); + map.put("MAINCATEGORY", "-1,-1,-1"); + map.put("ISACCORDTOSUBCOM", 0); + map.put("PID", pId); + map.put("STATELEV", stateLev); + map.put("CANCEL", 0); + map.put("UUID", UUID.randomUUID().toString()); + return map; + } } diff --git a/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java b/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java index 3b837af..6daf9fe 100644 --- a/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java +++ b/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java @@ -21,4 +21,8 @@ public class RecruitPositionWrapper extends Service { public Map updatePostInfo(Map param) { return getRecruitPositionService(user).updatePostInfo(param); } + + public Map createPositionType(Map param) { + return getRecruitPositionService(user).createPositionType(param); + } }