Quellcode durchsuchen

feat: 员工入职信息创建、列表查询、获取详情、修改

zhaomuran vor 6 Monaten
Ursprung
Commit
de606605f1

+ 51 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkEmployeeOnboardingController.java

@@ -0,0 +1,51 @@
+package com.wx.blink.backend.controller;
+
+import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
+import com.wx.blink.backend.domain.qry.BlinkEmployeeOnboardingQry;
+import com.wx.blink.backend.service.IBlinkEmployeeOnboardingService;
+import com.wx.blink.base.common.annoation.NoNeedLogin;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+@RestController
+@Tag(name = "员工管理")
+public class BlinkEmployeeOnboardingController {
+
+    @Resource
+    private IBlinkEmployeeOnboardingService employeeOnboardingService;
+
+    @Operation(summary = "新增员工")
+    @PostMapping("/supports/employee/onboarding/create")
+    @NoNeedLogin
+    public ResponseDTO<String> supportsEmployeeOnboardingCreate(@RequestBody @Valid BlinkEmployeeOnboardingDTO dto) {
+        return employeeOnboardingService.supportsEmployeeOnboardingCreate(dto);
+    }
+
+    @Operation(summary = "分页查询入职员工列表")
+    @PostMapping("/supports/employee/onboarding/queryPage")
+    @NoNeedLogin
+    public ResponseDTO<PageResult<BlinkEmployeeOnboardingDTO>> supportsEmployeeOnboardingQueryPage(@RequestBody @Valid BlinkEmployeeOnboardingQry qry) {
+        return employeeOnboardingService.supportsEmployeeOnboardingQueryPage(qry);
+    }
+
+    @Operation(summary = "获取入职员工信息")
+    @GetMapping("/supports/employee/onboarding/query/{id}")
+    @NoNeedLogin
+    public ResponseDTO<BlinkEmployeeOnboardingDTO> supportsEmployeeOnboardingQuery(@PathVariable("id") Long id) {
+        return employeeOnboardingService.supportsEmployeeOnboardingQuery(id);
+    }
+
+    @Operation(summary = "编辑更新入职员工")
+    @PostMapping("/supports/employee/onboarding/update")
+    @NoNeedLogin
+    public ResponseDTO<String> supportsEmployeeOnboardingUpdate(@RequestBody @Valid BlinkEmployeeOnboardingDTO dto) {
+        return employeeOnboardingService.supportsEmployeeOnboardingUpdate(dto);
+    }
+
+}

+ 179 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkEmployeeOnboardingDO.java

@@ -0,0 +1,179 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wx.blink.base.common.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName("blink_employee_onboarding")
+public class BlinkEmployeeOnboardingDO extends BaseEntity {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别(0女、1-男)
+     */
+    private Integer sex;
+
+    /**
+     * 身份证号码
+     */
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    private String tel;
+
+    /**
+     * 岗位
+     */
+    private String post;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 工作年限
+     */
+    private Integer workYear;
+
+    /**
+     * 学历
+     */
+    private String degree;
+
+    /**
+     * 毕业院校
+     */
+    private String graduateSchool;
+
+    /**
+     * 专业
+     */
+    private String specialized;
+
+    /**
+     * 国家或地区
+     */
+    private String countryRegion;
+
+    /**
+     * 省份
+     */
+    private String province;
+
+    /**
+     * 省份名称
+     */
+    private String provinceName;
+
+    /**
+     * 城市
+     */
+    private String city;
+
+    /**
+     * 城市名称
+     */
+    private String cityName;
+
+    /**
+     * 区县
+     */
+    private String district;
+
+    /**
+     * 区县名称
+     */
+    private String districtName;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 紧急联系人
+     */
+    private String emergencyContact;
+
+    /**
+     * 与紧急联系人关系
+     */
+    private String contactRelationship;
+
+    /**
+     * 紧急联系人电话
+     */
+    private String contactTel;
+
+    /**
+     * 个人专长
+     */
+    private String personalExpertise;
+
+    /**
+     * 身份证人像面
+     */
+    private String idCardFront;
+
+    /**
+     * 身份证国徽面
+     */
+    private String idCardBack;
+
+    /**
+     * 无犯罪记录证明
+     */
+    private String noCriminalRecord;
+
+    /**
+     * 解聘证书
+     */
+    private String dismissingCert;
+
+    /**
+     * 毕业证书
+     */
+    private String graduationCert;
+
+    /**
+     * 学位证书
+     */
+    private String degreeCert;
+
+    /**
+     * 其他证书
+     */
+    private String otherCert;
+
+    /**
+     * 入职体检报告
+     */
+    private String onboardingExamine;
+
+    /**
+     * 学信网核验
+     */
+    private String academicInformationNetwork;
+
+    /**
+     * 附件信息
+     */
+    private String attachmentInformation;
+
+}

+ 239 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkEmployeeOnboardingDTO.java

@@ -0,0 +1,239 @@
+package com.wx.blink.backend.domain.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.wx.blink.base.common.annoation.DataAdaptorMapping;
+import com.wx.blink.base.common.domain.BaseEntity;
+import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
+import com.wx.blink.base.common.json.deserializer.FileKeyVoDeserializer;
+import com.wx.blink.base.common.json.serializer.FileKeyVoSerializer;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class BlinkEmployeeOnboardingDTO extends BaseEntity {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @Schema(description = "姓名")
+    private String name;
+
+    /**
+     * 性别(0女、1-男)
+     */
+    @Schema(description = "性别(0女、1-男)")
+    private Integer sex;
+
+    /**
+     * 身份证号码
+     */
+    @Schema(description = "身份证号码")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @Schema(description = "手机号")
+    private String tel;
+
+    /**
+     * 岗位
+     */
+    @Schema(description = "岗位")
+    @JsonDeserialize(using = DictValueVoDeserializer.class)
+    @DataAdaptorMapping(type = "dict", value = "BLINK_ENTRY_POST")
+    private String post;
+
+    /**
+     * 类型
+     */
+    @Schema(description = "类型")
+    @JsonDeserialize(using = DictValueVoDeserializer.class)
+    @DataAdaptorMapping(type = "dict", value = "BLINK_ENTRY_TYPE")
+    private String type;
+
+    /**
+     * 工作年限
+     */
+    @Schema(description = "工作年限")
+    private Integer workYear;
+
+    /**
+     * 学历
+     */
+    @Schema(description = "")
+    @JsonDeserialize(using = DictValueVoDeserializer.class)
+    @DataAdaptorMapping(type = "dict", value = "BLINK_ENTRY_DEGREE")
+    private String degree;
+
+    /**
+     * 毕业院校
+     */
+    @Schema(description = "毕业院校")
+    private String graduateSchool;
+
+    /**
+     * 专业
+     */
+    @Schema(description = "专业")
+    private String specialized;
+
+    /**
+     * 国家或地区
+     */
+    @Schema(description = "国家或地区")
+    private String countryRegion;
+
+    /**
+     * 省份
+     */
+    @Schema(description = "省份")
+    private String province;
+
+    /**
+     * 省份名称
+     */
+    @Schema(description = "省份名称")
+    private String provinceName;
+
+    /**
+     * 城市
+     */
+    @Schema(description = "城市")
+    private String city;
+
+    /**
+     * 城市名称
+     */
+    @Schema(description = "城市名称")
+    private String cityName;
+
+    /**
+     * 区县
+     */
+    @Schema(description = "区县")
+    private String district;
+
+    /**
+     * 区县名称
+     */
+    @Schema(description = "区县名称")
+    private String districtName;
+
+    /**
+     * 详细地址
+     */
+    @Schema(description = "详细地址")
+    private String address;
+
+    /**
+     * 紧急联系人
+     */
+    @Schema(description = "紧急联系人")
+    private String emergencyContact;
+
+    /**
+     * 与紧急联系人关系
+     */
+    @Schema(description = "与紧急联系人关系")
+    private String contactRelationship;
+
+    /**
+     * 紧急联系人电话
+     */
+    @Schema(description = "紧急联系人电话")
+    private String contactTel;
+
+    /**
+     * 个人专长
+     */
+    @Schema(description = "个人专长")
+    private String personalExpertise;
+
+    /**
+     * 身份证人像面
+     */
+    @Schema(description = "身份证人像面")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String idCardFront;
+
+    /**
+     * 身份证国徽面
+     */
+    @Schema(description = "身份证国徽面")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String idCardBack;
+
+    /**
+     * 无犯罪记录证明
+     */
+    @Schema(description = "无犯罪记录证明")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String noCriminalRecord;
+
+    /**
+     * 解聘证书
+     */
+    @Schema(description = "解聘证书")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String dismissingCert;
+
+    /**
+     * 毕业证书
+     */
+    @Schema(description = "毕业证书")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String graduationCert;
+
+    /**
+     * 学位证书
+     */
+    @Schema(description = "学位证书")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String degreeCert;
+
+    /**
+     * 其他证书
+     */
+    @Schema(description = "其他证书")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String otherCert;
+
+    /**
+     * 入职体检报告
+     */
+    @Schema(description = "入职体检报告")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String onboardingExamine;
+
+    /**
+     * 学信网核验
+     */
+    @Schema(description = "学信网核验")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String academicInformationNetwork;
+
+    /**
+     * 附件信息
+     */
+    @Schema(description = "附件信息")
+    @JsonDeserialize(using = FileKeyVoDeserializer.class)
+    @JsonSerialize(using = FileKeyVoSerializer.class)
+    private String attachmentInformation;
+
+}

+ 19 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkEmployeeOnboardingQry.java

@@ -0,0 +1,19 @@
+package com.wx.blink.backend.domain.qry;
+
+import com.wx.blink.base.common.domain.PageParam;
+import lombok.Data;
+
+@Data
+public class BlinkEmployeeOnboardingQry extends PageParam {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+}

+ 106 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkEmployeeOnboardingServiceImpl.java

@@ -0,0 +1,106 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkEmployeeOnboardingDO;
+import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
+import com.wx.blink.backend.domain.qry.BlinkEmployeeOnboardingQry;
+import com.wx.blink.backend.objectmapper.BlinkEmployeeOnboardingMapper;
+import com.wx.blink.backend.repository.BlinkEmployeeOnboardingRepository;
+import com.wx.blink.backend.service.IBlinkEmployeeOnboardingService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import com.wx.blink.base.common.util.BlinkPageUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class BlinkEmployeeOnboardingServiceImpl extends ServiceImpl<BlinkEmployeeOnboardingRepository, BlinkEmployeeOnboardingDO> implements IBlinkEmployeeOnboardingService {
+
+    @Resource
+    private BlinkEmployeeOnboardingRepository repository;
+    @Resource
+    private BlinkEmployeeOnboardingMapper mapper;
+
+    /**
+     * 新增员工
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsEmployeeOnboardingCreate(BlinkEmployeeOnboardingDTO dto) {
+        // 验证入职员工是否重复
+        BlinkEmployeeOnboardingDO onboardingDO = repository.queryByName(dto.getName(), null, Boolean.FALSE);
+        if (Objects.nonNull(onboardingDO)) {
+            return ResponseDTO.dataErrorParam("员工名称重复!请检查");
+        }
+        // 生成DO
+        BlinkEmployeeOnboardingDO onboarding = new BlinkEmployeeOnboardingDO();
+        mapper.toBlinkEmployeeOnboardingDO(dto, onboarding);
+        // 创建人赋值
+        BlinkEntityUtil.setCreateInfo(onboarding);
+        // 执行新增
+        this.save(onboarding);
+        return ResponseDTO.ok();
+    }
+
+    /**
+     * 分页查询入职员工列表
+     *
+     * @param qry
+     * @return
+     */
+    @Override
+    public ResponseDTO<PageResult<BlinkEmployeeOnboardingDTO>> supportsEmployeeOnboardingQueryPage(BlinkEmployeeOnboardingQry qry) {
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkEmployeeOnboardingDTO> onboardingDTOS = repository.supportsEmployeeOnboardingQueryPage(page, qry);
+        PageResult<BlinkEmployeeOnboardingDTO> pageResult = BlinkPageUtil.convert2PageResult(page, onboardingDTOS);
+        return ResponseDTO.ok(pageResult);
+    }
+
+    /**
+     * 获取入职员工信息
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public ResponseDTO<BlinkEmployeeOnboardingDTO> supportsEmployeeOnboardingQuery(Long id) {
+        // 验证入职员工是否存在
+        BlinkEmployeeOnboardingDO onboardingDO = repository.queryByName(null, id, Boolean.FALSE);
+        if (!Objects.nonNull(onboardingDO)) {
+            return ResponseDTO.userErrorParam("活动不存在!请检查");
+        }
+        BlinkEmployeeOnboardingDTO dto = new BlinkEmployeeOnboardingDTO();
+        mapper.toBlinkEmployeeOnboardingDTO(onboardingDO, dto);
+        return ResponseDTO.ok(dto);
+    }
+
+    /**
+     * 编辑更新入职员工
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsEmployeeOnboardingUpdate(BlinkEmployeeOnboardingDTO dto) {
+        // 验证企业资质是否重复
+        BlinkEmployeeOnboardingDO onboardingDO = repository.queryByName(null, dto.getId(), Boolean.FALSE);
+        if (!Objects.nonNull(onboardingDO)) {
+            return ResponseDTO.dataErrorParam("员工不存在!请检查");
+        }
+        // 生成DO
+        BlinkEmployeeOnboardingDO onboarding = new BlinkEmployeeOnboardingDO();
+        mapper.toBlinkEmployeeOnboardingDO(dto, onboarding);
+        // 创建人赋值
+        BlinkEntityUtil.setUpdatedInfo(onboarding);
+        // 执行新增
+        this.updateById(onboarding);
+        return ResponseDTO.ok();
+    }
+}

+ 29 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkEmployeeOnboardingMapper.java

@@ -0,0 +1,29 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkEmployeeOnboardingDO;
+import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkEmployeeOnboardingMapper {
+
+    /**
+     * 员工主数据dto转do
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkEmployeeOnboardingDO(BlinkEmployeeOnboardingDTO dto, @MappingTarget BlinkEmployeeOnboardingDO onboardingDO);
+
+    /**
+     * 员工主数据do转dto
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkEmployeeOnboardingDTO(BlinkEmployeeOnboardingDO onboardingDO, @MappingTarget BlinkEmployeeOnboardingDTO dto);
+
+
+}

+ 37 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkEmployeeOnboardingRepository.java

@@ -0,0 +1,37 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.backend.domain.dataobject.BlinkEmployeeOnboardingDO;
+import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
+import com.wx.blink.backend.domain.qry.BlinkEmployeeOnboardingQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkEmployeeOnboardingRepository extends BaseMapper<BlinkEmployeeOnboardingDO> {
+
+    /**
+     * 验证竞争对手名称是否重复
+     *
+     * @param name
+     * @param id
+     * @param deletedFlag
+     * @return
+     */
+    BlinkEmployeeOnboardingDO queryByName(@Param("name") String name, @Param("id") Long id, @Param("deletedFlag") Boolean deletedFlag);
+
+
+    /**
+     * 分页查询竞争对手列表
+     *
+     * @param page
+     * @param qry
+     * @return
+     */
+    List<BlinkEmployeeOnboardingDTO> supportsEmployeeOnboardingQueryPage(Page<?> page, @Param("query") BlinkEmployeeOnboardingQry qry);
+
+
+}

+ 43 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkEmployeeOnboardingService.java

@@ -0,0 +1,43 @@
+package com.wx.blink.backend.service;
+
+import com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO;
+import com.wx.blink.backend.domain.qry.BlinkEmployeeOnboardingQry;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+public interface IBlinkEmployeeOnboardingService {
+
+    /**
+     * 新增员工
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsEmployeeOnboardingCreate(BlinkEmployeeOnboardingDTO dto);
+
+    /**
+     * 分页查询入职员工列表
+     *
+     * @param qry
+     * @return
+     */
+    ResponseDTO<PageResult<BlinkEmployeeOnboardingDTO>> supportsEmployeeOnboardingQueryPage(BlinkEmployeeOnboardingQry qry);
+
+    /**
+     * 获取入职员工信息
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<BlinkEmployeeOnboardingDTO> supportsEmployeeOnboardingQuery(Long id);
+
+    /**
+     * 编辑更新入职员工
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsEmployeeOnboardingUpdate(BlinkEmployeeOnboardingDTO dto);
+
+
+}

+ 31 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkEmployeeOnboardingRepositoryMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.wx.blink.backend.repository.BlinkEmployeeOnboardingRepository">
+    <!--    查询单个企业资质入职员工-->
+    <select id="queryByName" resultType="com.wx.blink.backend.domain.dataobject.BlinkEmployeeOnboardingDO">
+        select *
+        from blink_employee_onboarding
+        where deleted_flag = #{deletedFlag}
+        <if test="name != null and name != ''">
+            AND name = #{name}
+        </if>
+        <if test="id != null">
+            AND id = #{id}
+        </if>
+    </select>
+
+    <!--    分页查询入职员工列表-->
+    <select id="supportsEmployeeOnboardingQueryPage" resultType="com.wx.blink.backend.domain.dto.BlinkEmployeeOnboardingDTO">
+        select *
+        from blink_employee_onboarding
+        where deleted_flag = '0'
+        <if test="query.name != null and query.name != ''">
+            AND name LIKE concat('%', #{query.name}, '%')
+        </if>
+        <if test="query.id != null">
+            AND id = #{query.id}
+        </if>
+        order by create_time desc
+    </select>
+
+</mapper>