diff --git a/src/com/api/recruit/controller/WorkPlanController.java b/src/com/api/recruit/controller/WorkPlanController.java new file mode 100644 index 0000000..a580c2a --- /dev/null +++ b/src/com/api/recruit/controller/WorkPlanController.java @@ -0,0 +1,14 @@ +package com.api.recruit.controller; + +import javax.ws.rs.Path; + +/** + * @Author liang.cheng + * @Date 2023/10/17 10:49 AM + * @Description: TODO + * @Version 1.0 + */ + +@Path("/jcl/recruit/workplan") +public class WorkPlanController extends com.engine.recruit.controller.WorkPlanController { +} diff --git a/src/com/engine/recruit/controller/WorkPlanController.java b/src/com/engine/recruit/controller/WorkPlanController.java new file mode 100644 index 0000000..80c165f --- /dev/null +++ b/src/com/engine/recruit/controller/WorkPlanController.java @@ -0,0 +1,41 @@ +package com.engine.recruit.controller; + +import com.engine.common.util.ServiceUtil; +import com.engine.recruit.entity.workplan.WorkPlanCreateParams; +import com.engine.recruit.service.WorkPlanSerivice; +import com.engine.recruit.service.impl.WorkPlanServiceImpl; +import com.engine.recruit.util.ResponseResult; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * @Author liang.cheng + * @Date 2023/10/17 10:48 AM + * @Description: 面试生成日程 + * @Version 1.0 + */ +public class WorkPlanController { + + public WorkPlanSerivice getRecruitPositionWrapper(User user) { + return ServiceUtil.getService(WorkPlanServiceImpl.class, user); + } + + @POST + @Path("/operate") + @Produces(MediaType.APPLICATION_JSON) + public String operateWorkPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody WorkPlanCreateParams workPlanCreateParams) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getRecruitPositionWrapper(user)::operate, workPlanCreateParams); + } + + +} diff --git a/src/com/engine/recruit/entity/workplan/WorkPlanCreateParams.java b/src/com/engine/recruit/entity/workplan/WorkPlanCreateParams.java new file mode 100644 index 0000000..d48256c --- /dev/null +++ b/src/com/engine/recruit/entity/workplan/WorkPlanCreateParams.java @@ -0,0 +1,39 @@ +package com.engine.recruit.entity.workplan; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/10/17 3:01 PM + * @Description: + * @Version 1.0 + */ + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class WorkPlanCreateParams { + + private String operateType; + + private String billId; + + private String workPlanType; + + private String planName; + + private String memberIds; + + private String urgentLevel; + + private String beginDateTime; + + private String endDateTime; + + private String workId; + +} diff --git a/src/com/engine/recruit/service/WorkPlanSerivice.java b/src/com/engine/recruit/service/WorkPlanSerivice.java new file mode 100644 index 0000000..256f07d --- /dev/null +++ b/src/com/engine/recruit/service/WorkPlanSerivice.java @@ -0,0 +1,20 @@ +package com.engine.recruit.service; + +import com.engine.recruit.entity.workplan.WorkPlanCreateParams; + + +/** + * @Author liang.cheng + * @Date 2023/10/17 10:50 AM + * @Description: TODO + * @Version 1.0 + */ +public interface WorkPlanSerivice { + + /** + * @Description: 面试操作日程 + * @Author: liang.cheng + * @Date: 2023/10/17 11:03 AM + */ + void operate(WorkPlanCreateParams workPlanCreateParams); +} diff --git a/src/com/engine/recruit/service/impl/WorkPlanServiceImpl.java b/src/com/engine/recruit/service/impl/WorkPlanServiceImpl.java new file mode 100644 index 0000000..dc5a82d --- /dev/null +++ b/src/com/engine/recruit/service/impl/WorkPlanServiceImpl.java @@ -0,0 +1,88 @@ +package com.engine.recruit.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.recruit.entity.workplan.WorkPlanCreateParams; +import com.engine.recruit.enums.InterviewOperateTypeEnum; +import com.engine.recruit.service.WorkPlanSerivice; +import com.engine.workplan.service.WorkPlanBaseService; +import com.engine.workplan.service.impl.WorkPlanBaseServiceImpl; +import com.icbc.api.internal.apache.http.impl.cookie.S; +import weaver.conn.RecordSet; +import weaver.hrm.User; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author liang.cheng + * @Date 2023/10/17 10:52 AM + * @Description: + * @Version 1.0 + */ +public class WorkPlanServiceImpl extends Service implements WorkPlanSerivice { + + private WorkPlanBaseService getService(User user) { + return ServiceUtil.getService(WorkPlanBaseServiceImpl.class, user); + } + + @Override + public void operate(WorkPlanCreateParams workPlanCreateParams) { + RecordSet rs = new RecordSet(); + + String operateType = workPlanCreateParams.getOperateType(); + String billId = workPlanCreateParams.getBillId(); + Map maps = new HashMap<>(16); + + if (InterviewOperateTypeEnum.ARRANGE.getOperateType().equals(operateType) || InterviewOperateTypeEnum.ADJUSTMENT.getOperateType().equals(operateType)){ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + LocalDateTime dateTime = LocalDateTime.parse(workPlanCreateParams.getBeginDateTime(), formatter); + LocalDateTime newDateTime = dateTime.plusHours(1); + workPlanCreateParams.setEndDateTime(newDateTime.format(formatter)); + maps.put("workPlanType",workPlanCreateParams.getWorkPlanType()); + maps.put("planName",workPlanCreateParams.getPlanName()); + maps.put("memberIDs",workPlanCreateParams.getMemberIds()); + maps.put("urgentLevel",workPlanCreateParams.getUrgentLevel()); + maps.put("beginDateTime",workPlanCreateParams.getBeginDateTime()); + maps.put("endDateTime",workPlanCreateParams.getEndDateTime()); + maps.put("isEnableSecondAuth","0"); + maps.put("from","workplan"); + } + + + List list = Arrays.stream(billId.split(",")) + .collect(Collectors.toList()); + list.forEach(id -> { + // 取消面试 + if (InterviewOperateTypeEnum.CANCEL.getOperateType().equals(operateType)) { + Map map = new HashMap(2){{ + put("workid", workPlanCreateParams.getWorkId()); + }}; + getService(user).deleteWorkPlan(map); + + //完成面试 + }else if (InterviewOperateTypeEnum.EVALUATE.getOperateType().equals(operateType)) { + Map map = new HashMap(2){{ + put("workid", workPlanCreateParams.getWorkId()); + }}; + getService(user).finishWorkPlan(map); + // 调整面试 + }else if (InterviewOperateTypeEnum.ADJUSTMENT.getOperateType().equals(operateType)){ + maps.put("workid",workPlanCreateParams.getWorkId()); + Map result = getService(user).addWorkPlan(maps); + Integer workplanId = (Integer)result.get("workplanid"); + // 安排面试 + }else if (InterviewOperateTypeEnum.ARRANGE.getOperateType().equals(operateType)) { + Map result = getService(user).addWorkPlan(maps); + Integer workplanId = (Integer)result.get("workplanid"); + rs.executeUpdate("update uf_jcl_ms set glrc = ? where id = ?",workplanId,id); + } + }); + + } +}