init
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package com.newyetai.recruit.company.constant;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: guixinman
|
||||
* @create: 2023-02-27 14:29
|
||||
**/
|
||||
public interface CompanyConstants {
|
||||
/**
|
||||
* 岗位文件类型 1:图片 2:视频
|
||||
*/
|
||||
String COMPANY_FILE_TYPE_IMG = "1";
|
||||
String COMPANY_FILE_TYPE_VIDEO = "2";
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.newyetai.recruit.company.controller;
|
||||
|
||||
|
||||
import com.newyetai.common.AlitaResult;
|
||||
import com.newyetai.common.validation.Create;
|
||||
import com.newyetai.common.validation.Update;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyDTO;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO;
|
||||
import com.newyetai.recruit.company.entity.HrCompany;
|
||||
import com.newyetai.recruit.company.service.IHrCompanyService;
|
||||
import com.newyetai.tkmybatis.pojo.Page;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 招聘系统-企业管理 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author chenyun
|
||||
* @since 2021-01-08
|
||||
*/
|
||||
@Api(tags = "企业管理信息")
|
||||
@RestController
|
||||
@RequestMapping("/company")
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||
public class HrCompanyController {
|
||||
|
||||
private final IHrCompanyService companyService;
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
@ApiOperation("创建企业信息")
|
||||
public AlitaResult<Void> create(@Validated(Create.class) @RequestBody HrCompanyDTO hrCompanyDTO) {
|
||||
companyService.create(hrCompanyDTO);
|
||||
return AlitaResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@PutMapping("/update")
|
||||
@ApiOperation("修改企业信息")
|
||||
public AlitaResult<Integer> update(
|
||||
@Validated(Update.class) @RequestBody HrCompanyDTO hrCompanyDTO) {
|
||||
return AlitaResult.success(companyService.update(hrCompanyDTO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
@ApiOperation("企业信息详情")
|
||||
public AlitaResult<HrCompanyDTO> detail(HrCompanyDTO hrCompanyDTO) {
|
||||
return AlitaResult.success(companyService.detail(hrCompanyDTO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@ApiOperation("分页查询")
|
||||
public AlitaResult<Page<HrCompanyDTO>> page(@Validated HrCompanyPageQueryDTO queryDTO) {
|
||||
queryDTO.check();
|
||||
companyService.page(queryDTO);
|
||||
return AlitaResult.success(queryDTO.getPageResult());
|
||||
}
|
||||
|
||||
/**
|
||||
* 不分页查询
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("不分页查询")
|
||||
public AlitaResult<List<HrCompanyDTO>> list(@Validated HrCompanyPageQueryDTO queryDTO) {
|
||||
queryDTO.check();
|
||||
return AlitaResult.success(companyService.list(queryDTO));
|
||||
}
|
||||
|
||||
@GetMapping("/export")
|
||||
@ApiOperation("导出")
|
||||
public void export(@Validated HrCompanyPageQueryDTO queryDTO) {
|
||||
queryDTO.check();
|
||||
companyService.export(queryDTO);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
@ApiOperation("查询单个")
|
||||
public AlitaResult<HrCompany> findById(@PathVariable("id") Long id) {
|
||||
return AlitaResult.success(companyService.findById(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.newyetai.recruit.company.dao;
|
||||
|
||||
|
||||
import com.newyetai.recruit.company.dto.HrCompanyDTO;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO;
|
||||
import com.newyetai.recruit.company.entity.HrCompany;
|
||||
import com.newyetai.tkmybatis.mybatis.MyMapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 招聘系统-企业信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author chenyun
|
||||
* @since 2021-01-08
|
||||
*/
|
||||
@Mapper
|
||||
public interface HrCompanyMapper extends MyMapper<HrCompany> {
|
||||
List<HrCompanyDTO> page(HrCompanyPageQueryDTO hrCompanyPageQueryDTO);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.newyetai.recruit.company.dto;
|
||||
|
||||
import com.newyetai.common.dto.BaseDTO;
|
||||
import com.newyetai.common.validation.Create;
|
||||
import com.newyetai.common.validation.Update;
|
||||
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 人力资源公司dto
|
||||
*
|
||||
* @author Carlye
|
||||
* @date 2021/01/08
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("招聘系统客户信息DTO")
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class HrCompanyDTO extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = -2216352275325005059L;
|
||||
|
||||
@ApiModelProperty("机构ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("统一社会信用代码")
|
||||
private String creditCode;
|
||||
|
||||
@ApiModelProperty("企业LOGO FileRecord")
|
||||
private String companyLogo;
|
||||
|
||||
@ApiModelProperty("名称")
|
||||
@NotNull(message = "名称不能为空", groups = {Create.class, Update.class})
|
||||
@Length(max = 32,message = "名称超长", groups = {Create.class, Update.class})
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty("机构名称")
|
||||
private String orgName;
|
||||
|
||||
@ApiModelProperty("联系人")
|
||||
@Length(max = 20,message = "联系人长度超长", groups = {Create.class, Update.class})
|
||||
private String contactPerson;
|
||||
|
||||
@Length(max = 50,message = "联系方式长度超长", groups = {Create.class, Update.class})
|
||||
@ApiModelProperty("联系方式")
|
||||
private String contactWay;
|
||||
|
||||
@Length(max = 100,message = "企业简介长度超长", groups = {Create.class, Update.class})
|
||||
@ApiModelProperty("公司简介")
|
||||
private String companyProfile;
|
||||
|
||||
@ApiModelProperty("公司描述")
|
||||
private String companyDescription;
|
||||
|
||||
@ApiModelProperty("行业 (数据字典)")
|
||||
private String companyIndustry;
|
||||
|
||||
@ApiModelProperty("规模 (数据字典)")
|
||||
private String companySize;
|
||||
|
||||
@ApiModelProperty("公司注册地址")
|
||||
@Length(max = 32,message = "企业地址长度超长", groups = {Create.class, Update.class})
|
||||
private String companyRegisterAddress;
|
||||
|
||||
@ApiModelProperty("省份 (数据字典)")
|
||||
private Integer province;
|
||||
|
||||
@ApiModelProperty("市 (数据字典)")
|
||||
private Integer city;
|
||||
|
||||
@ApiModelProperty("区 (数据字典)")
|
||||
private Integer district;
|
||||
|
||||
/**
|
||||
* 类型(数据字典 1.客户 2.供应商)
|
||||
*/
|
||||
@NotNull(message = "类型不能为空", groups = {Create.class, Update.class})
|
||||
private String companyType;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.newyetai.recruit.company.dto;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: guixinman
|
||||
* @create: 2024-04-11 15:03
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class HrCompanyExportDTO implements Serializable {
|
||||
|
||||
@ExcelProperty("名称")
|
||||
@ApiModelProperty("名称")
|
||||
private String companyName;
|
||||
|
||||
@ExcelProperty("行业")
|
||||
@ApiModelProperty("行业 (数据字典)")
|
||||
private String companyIndustry;
|
||||
|
||||
@ExcelProperty("规模")
|
||||
@ApiModelProperty("规模 (数据字典)")
|
||||
private String companySize;
|
||||
|
||||
@ExcelProperty("联系人")
|
||||
@ApiModelProperty("联系人")
|
||||
private String contactPerson;
|
||||
|
||||
@ExcelProperty("联系方式")
|
||||
@ApiModelProperty("联系方式")
|
||||
private String contactWay;
|
||||
|
||||
@ExcelProperty("公司简介")
|
||||
@ApiModelProperty("公司简介")
|
||||
private String companyProfile;
|
||||
|
||||
@ExcelProperty("公司描述")
|
||||
@ApiModelProperty("公司描述")
|
||||
private String companyDescription;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private String createTime;
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.newyetai.recruit.company.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.newyetai.common.dto.PageQueryDTO;
|
||||
import com.newyetai.common.exception.BusinessException;
|
||||
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 人力资源公司dto
|
||||
*
|
||||
* @author Carlye
|
||||
* @date 2021/01/08
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("招聘系统客户信息DTO")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class HrCompanyPageQueryDTO extends PageQueryDTO<HrCompanyDTO> {
|
||||
private static final long serialVersionUID = -2216352275325005059L;
|
||||
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("机构ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("统一社会信用代码")
|
||||
private String creditCode;
|
||||
|
||||
|
||||
@ApiModelProperty("企业LOGO FileRecord")
|
||||
private String companyLogo;
|
||||
|
||||
|
||||
@ApiModelProperty("公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty("联系人")
|
||||
private String contactPerson;
|
||||
|
||||
@ApiModelProperty("联系方式")
|
||||
private String contactWay;
|
||||
|
||||
|
||||
@ApiModelProperty("公司简介")
|
||||
private String companyProfile;
|
||||
|
||||
|
||||
@ApiModelProperty("公司描述")
|
||||
private String companyDescription;
|
||||
|
||||
|
||||
@ApiModelProperty("行业 (数据字典)")
|
||||
private String companyIndustry;
|
||||
|
||||
|
||||
@ApiModelProperty("规模 (数据字典)")
|
||||
private String companySize;
|
||||
|
||||
|
||||
@ApiModelProperty("公司注册地址")
|
||||
private String companyRegisterAddress;
|
||||
|
||||
|
||||
@ApiModelProperty("省份 (数据字典)")
|
||||
private Integer province;
|
||||
|
||||
|
||||
@ApiModelProperty("市 (数据字典)")
|
||||
private Integer city;
|
||||
|
||||
|
||||
@ApiModelProperty("区 (数据字典)")
|
||||
private Integer district;
|
||||
|
||||
/**
|
||||
* 类型(数据字典 1.客户 2.供应商)
|
||||
*/
|
||||
private String companyType;
|
||||
|
||||
|
||||
private List<String> companyTypes;
|
||||
|
||||
|
||||
@ApiModelProperty("创建时间起,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeStart;
|
||||
|
||||
@ApiModelProperty("创建时间止,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeEnd;
|
||||
|
||||
public void check(){
|
||||
if (StringUtils.isBlank(companyType) && CollectionUtils.isEmpty(companyTypes)) {
|
||||
throw new BusinessException("请选择类型");
|
||||
}
|
||||
}
|
||||
}
|
||||
102
src/main/java/com/newyetai/recruit/company/entity/HrCompany.java
Normal file
102
src/main/java/com/newyetai/recruit/company/entity/HrCompany.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package com.newyetai.recruit.company.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.newyetai.common.entity.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 招聘系统-企业信息表
|
||||
* </p>
|
||||
*
|
||||
* @author chenyun
|
||||
* @since 2021-01-08
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName(value = "hr_company")
|
||||
@Builder
|
||||
public class HrCompany extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = -7847448702358215622L;
|
||||
/**
|
||||
* 机构ID
|
||||
*/
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 统一社会信用代码
|
||||
*/
|
||||
private String creditCode;
|
||||
|
||||
/**
|
||||
* 企业LOGO FileRecord
|
||||
*/
|
||||
private String companyLogo;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 联系人(负责人)
|
||||
*/
|
||||
private String contactPerson;
|
||||
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
private String contactWay;
|
||||
|
||||
/**
|
||||
* 公司简介
|
||||
*/
|
||||
private String companyProfile;
|
||||
|
||||
/**
|
||||
* 公司描述
|
||||
*/
|
||||
private String companyDescription;
|
||||
|
||||
/**
|
||||
* 行业 (数据字典)
|
||||
*/
|
||||
private String companyIndustry;
|
||||
|
||||
/**
|
||||
* 规模 (数据字典)
|
||||
*/
|
||||
private String companySize;
|
||||
|
||||
/**
|
||||
* 公司注册地址
|
||||
*/
|
||||
private String companyRegisterAddress;
|
||||
|
||||
/**
|
||||
* 省份 (数据字典)
|
||||
*/
|
||||
private Integer province;
|
||||
|
||||
/**
|
||||
* 市 (数据字典)
|
||||
*/
|
||||
private Integer city;
|
||||
|
||||
/**
|
||||
* 区 (数据字典)
|
||||
*/
|
||||
private Integer district;
|
||||
|
||||
/**
|
||||
* 类型(数据字典 1.客户 2.供应商)
|
||||
*/
|
||||
private String companyType;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.newyetai.recruit.company.enums;
|
||||
|
||||
public enum HrCompanyEnum {
|
||||
KH("1","客户"),
|
||||
GYS("2","供应商"),
|
||||
SELF("3", "机构本身"),
|
||||
;
|
||||
|
||||
private String type;
|
||||
/**
|
||||
* 类型描述
|
||||
*/
|
||||
private String desc;
|
||||
|
||||
|
||||
HrCompanyEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
<?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.newyetai.recruit.company.dao.HrCompanyMapper">
|
||||
<sql id="orgRelationTail">
|
||||
(select org_id
|
||||
from uc_org_relation
|
||||
where deleted = 0
|
||||
and platform_code = 13
|
||||
<if test='parentOrgId != null'>
|
||||
and FIND_IN_SET(#{parentOrgId}, path)
|
||||
</if>
|
||||
<if test='orgId != null'>
|
||||
and FIND_IN_SET(#{orgId}, path)
|
||||
|
||||
</if>
|
||||
)
|
||||
</sql>
|
||||
|
||||
<select id="page" resultType="com.newyetai.recruit.company.dto.HrCompanyDTO">
|
||||
select hc.*,o.org_name
|
||||
from hr_company hc
|
||||
left join xs_org o on o.id = hc.org_id and o.deleted = 0
|
||||
where hc.deleted = 0
|
||||
<if test='id != null'>
|
||||
AND hc.id = #{id}
|
||||
</if>
|
||||
<if test='orgId != null'>
|
||||
AND hc.org_id = #{orgId}
|
||||
</if>
|
||||
<if test='companyName != null and companyName.trim() != ""'>
|
||||
<bind name="companyNameLike" value="'%' + companyName + '%'"/>
|
||||
AND hc.company_name like #{companyNameLike}
|
||||
</if>
|
||||
<if test='companySize != null and companySize.trim() != ""'>
|
||||
AND hc.company_size = #{companySize}
|
||||
</if>
|
||||
<if test='contactPerson != null and contactPerson.trim() != ""'>
|
||||
AND hc.contact_person = #{contactPerson}
|
||||
</if>
|
||||
<if test='companyIndustry != null and companyIndustry.trim() != ""'>
|
||||
AND hc.company_industry = #{companyIndustry}
|
||||
</if>
|
||||
<if test='createTimeStart != null'>
|
||||
AND hc.create_time >= #{createTimeStart}
|
||||
</if>
|
||||
<if test='createTimeEnd != null'>
|
||||
AND hc.create_time <= #{createTimeEnd}
|
||||
</if>
|
||||
<if test='companyType != null and companyType.trim() != ""'>
|
||||
AND hc.company_type = #{companyType}
|
||||
</if>
|
||||
<if test="companyTypes != null and companyTypes.size()>0">
|
||||
AND hc.company_type in
|
||||
<foreach collection="companyTypes" open="(" separator="," close=")" item="item">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
order by hc.company_type desc, hc.id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.newyetai.recruit.company.mapstruct;
|
||||
|
||||
|
||||
import com.newyetai.recruit.company.dto.HrCompanyDTO;
|
||||
import com.newyetai.recruit.company.entity.HrCompany;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* dto-entity
|
||||
*
|
||||
* @author sr on 2019-12-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface HrCompanyMapMapper {
|
||||
|
||||
HrCompanyMapMapper INSTANCE = Mappers.getMapper(HrCompanyMapMapper.class);
|
||||
|
||||
HrCompanyDTO exchange(HrCompany company);
|
||||
|
||||
HrCompany exchange(HrCompanyDTO hrCompanyDTO);
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.newyetai.recruit.company.service;
|
||||
|
||||
|
||||
import com.newyetai.recruit.company.dto.HrCompanyDTO;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO;
|
||||
import com.newyetai.recruit.company.entity.HrCompany;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 招聘系统-客户信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author chenyun
|
||||
* @since 2021-01-08
|
||||
*/
|
||||
public interface IHrCompanyService {
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param hrCompanyDTO 人力资源公司dto
|
||||
* @return {@link HrCompanyDTO}
|
||||
* @throws RuntimeException 运行时异常
|
||||
*/
|
||||
void create(HrCompanyDTO hrCompanyDTO);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param hrCompanyDTO 人力资源公司dto
|
||||
* @return {@link HrCompanyDTO}
|
||||
* @throws RuntimeException 运行时异常
|
||||
*/
|
||||
Integer update(HrCompanyDTO hrCompanyDTO);
|
||||
|
||||
/**
|
||||
* 细节
|
||||
*
|
||||
* @param hrCompanyDTO 人力资源公司dto
|
||||
* @return {@link HrCompanyDTO}
|
||||
*/
|
||||
HrCompanyDTO detail(HrCompanyDTO hrCompanyDTO);
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param pageQueryDTO 页面查询dto
|
||||
* @return {@link List< HrCompanyDTO >}
|
||||
*/
|
||||
List<HrCompanyDTO> page(HrCompanyPageQueryDTO pageQueryDTO);
|
||||
|
||||
void export(HrCompanyPageQueryDTO pageQueryDTO);
|
||||
|
||||
/**
|
||||
* 不分页查询
|
||||
*/
|
||||
List<HrCompanyDTO> list(HrCompanyPageQueryDTO pageQueryDTO);
|
||||
|
||||
HrCompany findById(Long id);
|
||||
|
||||
HrCompanyDTO find(HrCompanyPageQueryDTO pageQueryDTO);
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
package com.newyetai.recruit.company.service.impl;
|
||||
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.newyetai.common.constant.CommonConstants;
|
||||
import com.newyetai.common.dto.ExportHeadDetailInfoDTO;
|
||||
import com.newyetai.common.dto.ExportHeadInfoDTO;
|
||||
import com.newyetai.common.easyexcel.ExcelUtil;
|
||||
import com.newyetai.common.exception.BusinessException;
|
||||
import com.newyetai.common.exception.util.Assert;
|
||||
import com.newyetai.common.util.UserContextHolder;
|
||||
import com.newyetai.recruit.company.dao.HrCompanyMapper;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyDTO;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyExportDTO;
|
||||
import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO;
|
||||
import com.newyetai.recruit.company.entity.HrCompany;
|
||||
import com.newyetai.recruit.company.enums.HrCompanyEnum;
|
||||
import com.newyetai.recruit.company.mapstruct.HrCompanyMapMapper;
|
||||
import com.newyetai.recruit.company.service.IHrCompanyService;
|
||||
import com.newyetai.component.dict.util.DictUtils;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 招聘系统-企业信息表 服务实现类
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||
public class HrCompanyServiceImpl implements IHrCompanyService {
|
||||
|
||||
private final HrCompanyMapper hrCompanyMapper;
|
||||
|
||||
@Override
|
||||
public void create(HrCompanyDTO hrCompanyDTO) {
|
||||
List<HrCompany> HrCompanyList = hrCompanyMapper.selectList(new LambdaQueryWrapper<HrCompany>()
|
||||
.eq(HrCompany::getOrgId, UserContextHolder.getLoginOrgId())
|
||||
.eq(HrCompany::getCompanyName, hrCompanyDTO.getCompanyName())
|
||||
.eq(HrCompany::getCompanyType, hrCompanyDTO.getCompanyType())
|
||||
.eq(HrCompany::getDeleted, false)
|
||||
);
|
||||
if (CollectionUtils.isNotEmpty(HrCompanyList)) {
|
||||
throw new BusinessException("名称重复");
|
||||
}
|
||||
|
||||
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
|
||||
HrCompany.setOrgId(UserContextHolder.getLoginOrgId());
|
||||
hrCompanyMapper.saveEntity(HrCompany, UserContextHolder.getLoginUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer update(HrCompanyDTO hrCompanyDTO) {
|
||||
HrCompany hrCompany = hrCompanyMapper.selectOne(new LambdaQueryWrapper<HrCompany>()
|
||||
.eq(HrCompany::getId, hrCompanyDTO.getId())
|
||||
.eq(HrCompany::getDeleted, false));
|
||||
Assert.notNull(hrCompany, "未查询到要修改的数据");
|
||||
|
||||
if (!CommonConstants.PLATFORM_ORG_ID.equals(UserContextHolder.getExistLoginOrgId())) {
|
||||
Assert.isTrue(hrCompany.getOrgId().equals(UserContextHolder.getExistLoginOrgId()), "未查询到要修改的数据");
|
||||
}
|
||||
|
||||
List<HrCompany> HrCompanyList = hrCompanyMapper.selectList(new LambdaQueryWrapper<HrCompany>()
|
||||
.eq(HrCompany::getOrgId, hrCompany.getOrgId())
|
||||
.eq(HrCompany::getCompanyName, hrCompanyDTO.getCompanyName())
|
||||
.eq(HrCompany::getCompanyType, hrCompanyDTO.getCompanyType())
|
||||
.notIn(HrCompany::getId, hrCompanyDTO.getId())
|
||||
.eq(HrCompany::getDeleted, false)
|
||||
);
|
||||
if (CollectionUtils.isNotEmpty(HrCompanyList)) {
|
||||
throw new BusinessException("名称重复");
|
||||
}
|
||||
|
||||
HrCompany HrCompany = HrCompanyMapMapper.INSTANCE.exchange(hrCompanyDTO);
|
||||
HrCompany.setOrgId(hrCompany.getOrgId());
|
||||
return hrCompanyMapper.updateEntity(HrCompany, UserContextHolder.getLoginUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public HrCompanyDTO detail(HrCompanyDTO hrCompanyDTO) {
|
||||
return HrCompanyMapMapper.INSTANCE.exchange(hrCompanyMapper.getById(hrCompanyDTO.getId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HrCompanyDTO> page(HrCompanyPageQueryDTO pageQueryDTO) {
|
||||
if (pageQueryDTO.getOrgId() == null) {
|
||||
if (!CommonConstants.PLATFORM_ORG_ID.equals(UserContextHolder.getExistLoginOrgId())) {
|
||||
pageQueryDTO.setOrgId(UserContextHolder.getLoginOrgId());
|
||||
}
|
||||
}
|
||||
return hrCompanyMapper.page(pageQueryDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void export(HrCompanyPageQueryDTO pageQueryDTO) {
|
||||
boolean flag = true;
|
||||
Integer pageNo = 1;
|
||||
Integer pageSize = 100;
|
||||
|
||||
List<HrCompanyDTO> listAll = new ArrayList<>();
|
||||
|
||||
while (flag) {
|
||||
pageQueryDTO.setPageNo(pageNo);
|
||||
pageQueryDTO.setPageSize(pageSize);
|
||||
List<HrCompanyDTO> list = this.page(pageQueryDTO);
|
||||
if (org.springframework.util.CollectionUtils.isEmpty(list)) {
|
||||
flag = false;
|
||||
continue;
|
||||
}
|
||||
if (list.size() < pageSize) {
|
||||
flag = false;
|
||||
}
|
||||
pageNo = pageNo + 1;
|
||||
listAll.addAll(list);
|
||||
}
|
||||
List<HrCompanyExportDTO> collect = listAll.stream().map(dto -> {
|
||||
HrCompanyExportDTO companyExportDTO = new HrCompanyExportDTO();
|
||||
BeanUtils.copyProperties(dto, companyExportDTO);
|
||||
companyExportDTO.setCreateTime(DateUtil.format(dto.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
|
||||
companyExportDTO.setCompanyIndustry(DictUtils.getCodeNameMap("industry_type").get(dto.getCompanyIndustry()));
|
||||
companyExportDTO.setCompanySize(DictUtils.getCodeNameMap("company_size").get(dto.getCompanySize()));
|
||||
return companyExportDTO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if (org.springframework.util.CollectionUtils.isEmpty(collect)) {
|
||||
return;
|
||||
}
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
String fileName;
|
||||
|
||||
if (pageQueryDTO.getCompanyType().equals(HrCompanyEnum.KH.getType())) {
|
||||
fileName = HrCompanyEnum.KH.getDesc() + "明细导出" + "(" + formatter.format(LocalDateTime.now()) + ")";
|
||||
} else {
|
||||
fileName = HrCompanyEnum.GYS.getDesc() + "明细导出" + "(" + formatter.format(LocalDateTime.now()) + ")";
|
||||
}
|
||||
|
||||
|
||||
ExportHeadInfoDTO infoDTO = ExportHeadInfoDTO.builder()
|
||||
.fileName(fileName)
|
||||
.build();
|
||||
List<ExportHeadDetailInfoDTO> heads = infoDTO.getHeads();
|
||||
List<List> datas = Lists.newArrayList();
|
||||
|
||||
if (pageQueryDTO.getCompanyType().equals(HrCompanyEnum.KH.getType())) {
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("客户名称").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("所属行业").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("企业规模").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("联系人").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("联系方式").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("创建时间").build());
|
||||
for (HrCompanyExportDTO dto : collect) {
|
||||
List objects = Lists.newArrayList();
|
||||
datas.add(objects);
|
||||
objects.add(dto.getCompanyName());
|
||||
objects.add(dto.getCompanyIndustry());
|
||||
objects.add(dto.getCompanySize());
|
||||
objects.add(dto.getContactPerson());
|
||||
objects.add(dto.getContactWay());
|
||||
objects.add(dto.getCreateTime());
|
||||
}
|
||||
} else {
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("供应商名称").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("企业规模").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("联系人").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("联系方式").build());
|
||||
heads.add(ExportHeadDetailInfoDTO.builder().head("创建时间").build());
|
||||
for (HrCompanyExportDTO dto : collect) {
|
||||
List objects = Lists.newArrayList();
|
||||
datas.add(objects);
|
||||
objects.add(dto.getCompanyName());
|
||||
objects.add(dto.getCompanySize());
|
||||
objects.add(dto.getContactPerson());
|
||||
objects.add(dto.getContactWay());
|
||||
objects.add(dto.getCreateTime());
|
||||
}
|
||||
}
|
||||
|
||||
infoDTO.setDatas(datas);
|
||||
|
||||
ExcelUtil.dynamicExportTemplate(infoDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HrCompanyDTO> list(HrCompanyPageQueryDTO pageQueryDTO) {
|
||||
pageQueryDTO.disablePage();
|
||||
return this.page(pageQueryDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HrCompany findById(Long id) {
|
||||
Assert.notNull(id, "id不能为空");
|
||||
LambdaQueryWrapper<HrCompany> queryWrapper = new LambdaQueryWrapper<HrCompany>()
|
||||
.eq(HrCompany::getId, id)
|
||||
.eq(HrCompany::getDeleted, false);
|
||||
if (!CommonConstants.PLATFORM_ORG_ID.equals(UserContextHolder.getExistLoginOrgId())) {
|
||||
queryWrapper.eq(HrCompany::getOrgId, UserContextHolder.getLoginOrgId());
|
||||
}
|
||||
HrCompany hrCompany = hrCompanyMapper.selectOne(queryWrapper);
|
||||
return hrCompany;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HrCompanyDTO find(HrCompanyPageQueryDTO pageQueryDTO) {
|
||||
pageQueryDTO.disablePage();
|
||||
List<HrCompanyDTO> hrCompanyDTOS = this.page(pageQueryDTO);
|
||||
if (CollectionUtils.isEmpty(hrCompanyDTOS)) {
|
||||
return null;
|
||||
}
|
||||
return hrCompanyDTOS.get(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user