소스 검색

招聘需求列表

jzh 1 년 전
부모
커밋
4bbf8aae8e

+ 7 - 0
zjugis-business/src/main/java/com/zjugis/business/converter/recruit/RecruitConvert.java

@@ -5,9 +5,14 @@ import com.zjugis.business.flow.leave.controller.vo.LeaveUpdateReqVO;
 import com.zjugis.business.flow.leave.entity.LeaveDO;
 import com.zjugis.business.flow.recruit.controller.vo.RecruitVO;
 import com.zjugis.business.flow.recruit.entity.RecruitDO;
+import com.zjugis.business.flow.travelcost.controller.vo.TravelCostRespVO;
+import com.zjugis.business.flow.travelcost.entity.TravelCostDO;
+import com.zjugis.framework.common.pojo.PageResult;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
+import java.util.List;
+
 /**
  * @Author 陈俊
  * @Date 2023/11/21 11:04
@@ -19,6 +24,8 @@ public interface RecruitConvert {
     RecruitConvert INSTANCE = Mappers.getMapper(RecruitConvert.class);
 
 
+    PageResult<RecruitVO> convertList(PageResult<RecruitDO> list);
+
     RecruitDO convert(RecruitVO recruitVO);
 
 }

+ 13 - 2
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/controller/RecruitDemandController.java

@@ -3,8 +3,13 @@ package com.zjugis.business.flow.recruit.controller;
 import com.zjugis.business.flow.leave.controller.vo.LeaveCreateReqVO;
 import com.zjugis.business.flow.leave.controller.vo.LeaveUpdateReqVO;
 import com.zjugis.business.flow.leave.service.LeaveService;
+import com.zjugis.business.flow.recruit.controller.vo.RecruitPageVO;
 import com.zjugis.business.flow.recruit.controller.vo.RecruitVO;
 import com.zjugis.business.flow.recruit.service.RecruitDemandService;
+import com.zjugis.business.flow.travelcost.controller.vo.TravelCostPageReqVO;
+import com.zjugis.business.flow.travelcost.controller.vo.TravelCostRespVO;
+import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.common.pojo.PageResult;
 import com.zjugis.framework.workflow.model.BaseController;
 import com.zjugis.framework.workflow.workflow.WorkFlow;
 import io.swagger.v3.oas.annotations.Operation;
@@ -18,6 +23,8 @@ import javax.validation.Valid;
 import java.util.Map;
 
 /**
+ * 工作流-需求采集
+ *
  * @author jzh
  * @since 2024/2/1 17:51
  */
@@ -27,8 +34,6 @@ import java.util.Map;
 @Validated
 public class RecruitDemandController extends BaseController {
 
-    @Resource
-    private LeaveService leaveService;
     @Resource
     private RecruitDemandService recruitDemandService;
 
@@ -41,6 +46,12 @@ public class RecruitDemandController extends BaseController {
         return resultPage(map);
     }
 
+    @GetMapping("/page")
+    @Operation(summary = "招聘需求列表生成")
+    public CommonResult<PageResult<RecruitVO>> getTravelCostPage(@Valid RecruitPageVO pageReqVO) {
+        return CommonResult.success(recruitDemandService.getPage(pageReqVO));
+    }
+
     @PostMapping("/create")
     @Operation(summary = "创建招聘需求")
     public String createRecruit(@Valid @RequestBody RecruitVO recruitVO) {

+ 33 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/controller/vo/RecruitPageVO.java

@@ -0,0 +1,33 @@
+package com.zjugis.business.flow.recruit.controller.vo;
+
+import com.zjugis.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.zjugis.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+/**
+ * @author jzh
+ * @since 2024/2/4 9:16
+ */
+@Data
+public class RecruitPageVO extends PageParam {
+
+    @Schema(description = "年份")
+    private String year;
+
+
+    @Schema(description = "部门名称")
+    private String deptName;
+
+
+    @Schema(description = "岗位")
+    private String post;
+
+
+    @Schema(description = "所属类别 1新增 2替补 3储备")
+    private Integer type;
+}

+ 34 - 43
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/controller/vo/RecruitVO.java

@@ -2,9 +2,14 @@ package com.zjugis.business.flow.recruit.controller.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+import static com.zjugis.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
 /**
  * @author jzh
@@ -12,73 +17,59 @@ import java.time.LocalDate;
  */
 @Data
 public class RecruitVO {
-    /**
-     * 主键ID
-     */
+
+    @Schema(description = "主键id")
     private String id;
 
-    /**
-     * 流程实例ID
-     */
+
+    @Schema(description = "流程实例ID")
     private String instanceId;
 
-    /**
-     * 流程状态
-     */
+
+    @Schema(description = "流程状态")
     private Integer flowStatus;
 
-    /**
-     * 流程完成时间
-     */
-    private LocalDate flowFinishtime;
 
-    /**
-     * 用户ID
-     */
+    @Schema(description = "流程完成时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime flowFinishtime;
+
+
+    @Schema(description = "用户id")
     private String userId;
 
-    /**
-     * 用户昵称
-     */
+
+    @Schema(description = "用户昵称")
     private String userNickname;
 
-    /**
-     * 部门ID
-     */
+
+    @Schema(description = "部门id")
     private String deptId;
 
-    /**
-     * 部门名称
-     */
+
+    @Schema(description = "部门名称")
     private String deptName;
 
-    /**
-     * 岗位
-     */
+
+    @Schema(description = "岗位")
     private String post;
 
-    /**
-     * 需求人数
-     */
+
+    @Schema(description = "需求人数")
     private Integer requireNum;
 
-    /**
-     * 能力等级
-     */
+
+    @Schema(description = "能力等级")
     private String abilityLevel;
 
-    /**
-     * 任职要求
-     */
+
+    @Schema(description = "任职要求")
     private String jobRequest;
 
-    /**
-     * 岗位职责
-     */
+
+    @Schema(description = "岗位职责")
     private String postDuty;
 
-    /**
-     * 所属类别 1新增 2替补 3储备
-     */
+    @Schema(description = "所属类别 1新增 2替补 3储备")
     private Integer type;
 }

+ 22 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/dao/RecruitDAO.java

@@ -1,10 +1,16 @@
 package com.zjugis.business.flow.recruit.dao;
 
+import cn.hutool.core.util.StrUtil;
+import com.zjugis.business.flow.recruit.controller.vo.RecruitPageVO;
 import com.zjugis.business.flow.recruit.entity.RecruitDO;
+import com.zjugis.framework.common.pojo.PageResult;
 import com.zjugis.framework.mybatis.core.mapper.BaseMapperX;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.time.LocalDateTime;
+import java.time.Month;
+
 /**
  * @author jzh
  * @since 2024/2/2 9:19
@@ -14,4 +20,20 @@ public interface RecruitDAO extends BaseMapperX<RecruitDO> {
     default RecruitDO findByInstanceId(String flowInstanceId) {
         return selectOne(new LambdaQueryWrapperX<RecruitDO>().eqIfPresent(RecruitDO::getInstanceId, flowInstanceId));
     }
+
+    default PageResult<RecruitDO> getRecruitPage(RecruitPageVO pageReqVO) {
+        LambdaQueryWrapperX<RecruitDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
+        if (StrUtil.isNotEmpty(pageReqVO.getYear())) {
+            int year = Integer.parseInt(pageReqVO.getYear());
+            //当年时间的第一天和最后一天
+            LocalDateTime start = LocalDateTime.of(year, Month.JANUARY, 1, 0, 0);
+            LocalDateTime end = LocalDateTime.of(year, Month.DECEMBER, 31, 23, 59, 59);
+            lambdaQueryWrapperX.betweenIfPresent(RecruitDO::getCreateTime, start, end);
+        }
+
+        return selectPage(pageReqVO, lambdaQueryWrapperX
+                .eqIfPresent(RecruitDO::getDeptName, pageReqVO.getDeptName())
+                .eqIfPresent(RecruitDO::getPost, pageReqVO.getPost())
+                .eqIfPresent(RecruitDO::getType, pageReqVO.getType()));
+    }
 }

+ 2 - 2
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/entity/RecruitDO.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.zjugis.business.mybatis.entity.BaseEntity;
 import lombok.Data;
 
-import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * @author jzh
@@ -35,7 +35,7 @@ public class RecruitDO extends BaseEntity {
     /**
      * 流程完成时间
      */
-    private LocalDate flowFinishtime;
+    private LocalDateTime flowFinishtime;
 
     /**
      * 用户ID

+ 8 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/service/RecruitDemandService.java

@@ -3,8 +3,11 @@ package com.zjugis.business.flow.recruit.service;
 import com.zjugis.business.flow.leave.controller.vo.LeaveCreateReqVO;
 import com.zjugis.business.flow.leave.controller.vo.LeaveUpdateReqVO;
 import com.zjugis.business.flow.leave.entity.LeaveDO;
+import com.zjugis.business.flow.recruit.controller.vo.RecruitPageVO;
 import com.zjugis.business.flow.recruit.controller.vo.RecruitVO;
 import com.zjugis.business.flow.recruit.entity.RecruitDO;
+import com.zjugis.business.flow.travelcost.controller.vo.TravelCostRespVO;
+import com.zjugis.framework.common.pojo.PageResult;
 
 import java.util.Map;
 
@@ -46,4 +49,9 @@ public interface RecruitDemandService {
      * @return
      */
     Map<String, Object> getFormParams(String flowInstanceId);
+
+    /**
+     * 列表查询
+     */
+    PageResult<RecruitVO> getPage(RecruitPageVO pageReqVO);
 }

+ 21 - 2
zjugis-business/src/main/java/com/zjugis/business/flow/recruit/service/impl/RecruitDemandServiceImpl.java

@@ -1,16 +1,23 @@
 package com.zjugis.business.flow.recruit.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
 import com.zjugis.business.constants.DictConstants;
 import com.zjugis.business.constants.FlowStatusConstants;
 import com.zjugis.business.converter.common.SelectConvert;
 import com.zjugis.business.converter.recruit.RecruitConvert;
+import com.zjugis.business.converter.travelcost.TravelCostConvert;
 import com.zjugis.business.flow.leave.entity.LeaveDO;
+import com.zjugis.business.flow.recruit.controller.vo.RecruitPageVO;
 import com.zjugis.business.flow.recruit.controller.vo.RecruitVO;
 import com.zjugis.business.flow.recruit.dao.RecruitDAO;
 import com.zjugis.business.flow.recruit.entity.RecruitDO;
 import com.zjugis.business.flow.recruit.service.RecruitDemandService;
+import com.zjugis.business.flow.travelcost.controller.vo.TravelCostRespVO;
+import com.zjugis.business.flow.travelcost.entity.TravelCostDO;
 import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.common.pojo.PageResult;
+import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.framework.workflow.model.IFlowInstance;
 import com.zjugis.framework.workflow.rpc.remote.WorkflowClient;
@@ -22,12 +29,16 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.Month;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import static com.zjugis.business.constants.FlowStatusConstants.FLOW_FINISHED;
+import static com.zjugis.business.constants.FlowStatusConstants.FLOW_PAYMENT;
 import static com.zjugis.business.enums.ErrorCodeConstants.RECRUIT_DEMAND_NOT_EXISTS;
 import static com.zjugis.framework.common.exception.util.ServiceExceptionUtil.exception;
 
@@ -87,13 +98,11 @@ public class RecruitDemandServiceImpl implements RecruitDemandService {
         String userId = SecurityFrameworkUtils.getLoginUserId();
         CommonResult<IFlowInstance> flowResult = workflowClient.flowInstance(flowInstanceId);
         if (flowResult.isSuccess()) {
-            IFlowInstance flowInstance = flowResult.getData();
             RecruitDO entity = recruitDAO.findByInstanceId(flowInstanceId);
             if (Objects.isNull(entity)) {
                 entity = new RecruitDO();
                 entity.setInstanceId(flowInstanceId);
                 entity.setUserId(userId);
-//                entity.setLeaveNo(flowInstance.getCode());
                 entity.setCreateTime(LocalDateTime.now());
                 entity.setFlowStatus(FlowStatusConstants.FLOW_NOT_START);
                 CommonResult<AdminUserRespDTO> result = adminUserApi.getUser(userId);
@@ -109,6 +118,16 @@ public class RecruitDemandServiceImpl implements RecruitDemandService {
         return createModelMap();
     }
 
+    @Override
+    public PageResult<RecruitVO> getPage(RecruitPageVO pageReqVO) {
+        PageResult<RecruitDO> page = recruitDAO.getRecruitPage(pageReqVO);
+        return encapsulatePage(page);
+    }
+
+    private PageResult<RecruitVO> encapsulatePage(PageResult<RecruitDO> page) {
+        return RecruitConvert.INSTANCE.convertList(page);
+    }
+
 
     private Map<String, Object> createMap(String flowInstanceId, RecruitDO entity, String userId) {
         Map<String, Object> map = new HashMap<>();

+ 0 - 2
zjugis-business/src/main/resources/templates/RecruitDemand/index.ftl

@@ -4,8 +4,6 @@ styles=[ '/flow/css/formCommon.css' ,'/timeSelector/TimeSelector.css' ]>
         <div class="z-form-row" style="display: none;">
             <input type="text" value="${formEntity.instanceId!}" name="RecruitVO$instanceId">
             <input type="text" value="${formEntity.id!}" name="RecruitVO$id">
-            <input type="text" value="${formEntity.leaveHours!}" name="RecruitVO$leaveHours">
-            <input type="text" value='${timeObject!}' id="timeObject">
         </div>
         <div class="form-title" style="margin-top: 0px;">
             <div class="form-icon">