Merge pull request 'liangcheng' (#2) from liangcheng into develop

Reviewed-on: http://221.226.25.34:3000/dxfeng/weaver-hrm-recruit/pulls/2
This commit is contained in:
liang.cheng 2023-10-18 09:14:33 +08:00
commit 2a62e2d42d
6 changed files with 213 additions and 0 deletions

11
.gitignore vendored
View File

@ -2,11 +2,22 @@
/out/
/.idea/
HELP.md
target/
### IntelliJ IDEA ###
.idea
HELP.md
target/
/src/test
/src/rebel.xml
/src/META-INF
### IntelliJ IDEA ###
.idea
/log
/src/test
/src/rebel.xml

View File

@ -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 {
}

View File

@ -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<WorkPlanCreateParams, String>(user).run(getRecruitPositionWrapper(user)::operate, workPlanCreateParams);
}
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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<String, Object> 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<String> list = Arrays.stream(billId.split(","))
.collect(Collectors.toList());
list.forEach(id -> {
// 取消面试
if (InterviewOperateTypeEnum.CANCEL.getOperateType().equals(operateType)) {
Map<String, Object> map = new HashMap<String, Object>(2){{
put("workid", workPlanCreateParams.getWorkId());
}};
getService(user).deleteWorkPlan(map);
//完成面试
}else if (InterviewOperateTypeEnum.EVALUATE.getOperateType().equals(operateType)) {
Map<String, Object> map = new HashMap<String, Object>(2){{
put("workid", workPlanCreateParams.getWorkId());
}};
getService(user).finishWorkPlan(map);
// 调整面试
}else if (InterviewOperateTypeEnum.ADJUSTMENT.getOperateType().equals(operateType)){
maps.put("workid",workPlanCreateParams.getWorkId());
Map<String, Object> result = getService(user).addWorkPlan(maps);
Integer workplanId = (Integer)result.get("workplanid");
// 安排面试
}else if (InterviewOperateTypeEnum.ARRANGE.getOperateType().equals(operateType)) {
Map<String, Object> result = getService(user).addWorkPlan(maps);
Integer workplanId = (Integer)result.get("workplanid");
rs.executeUpdate("update uf_jcl_ms set glrc = ? where id = ?",workplanId,id);
}
});
}
}