新增 候选者合规

This commit is contained in:
2026-01-15 11:19:11 +08:00
parent 1648e7caf1
commit 8fe417ed48
8 changed files with 398 additions and 4 deletions

View File

@@ -0,0 +1,36 @@
package com.vetti.hotake.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModelProperty;
import com.vetti.common.annotation.Excel;
import com.vetti.common.core.domain.BaseEntity;
@Data
public class HotakeCandidateCompliance extends BaseEntity
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("用户合规项ID关联 sys_user.id")
@Excel(name = "用户合规项ID")
private Long userId;
@ApiModelProperty("附件ID关联 hotake_sys_file.id")
@Excel(name = "附件ID")
private Long fileId;
@ApiModelProperty("类型名")
@Excel(name = "类型名")
private String typeName;
@ApiModelProperty("描述")
@Excel(name = "描述")
private String description;
@ApiModelProperty("删除状态0正常 2删除")
private String delFlag;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.hotake.domain.dto;
import cn.hutool.core.bean.BeanUtil;
import com.vetti.hotake.domain.HotakeCandidateCompliance;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ID
* @date 2026/1/15 11:03
*/
@Data
public class CandidateComplianceDto extends HotakeCandidateCompliance {
private static final long serialVersionUID = 1L;
@ApiModelProperty("附件URL")
private String fileUrl;
public static CandidateComplianceDto build(HotakeCandidateCompliance data, String fileUrl) {
CandidateComplianceDto dto = new CandidateComplianceDto();
BeanUtil.copyProperties(data, dto);
dto.setFileUrl(fileUrl);
return dto;
}
}

View File

@@ -0,0 +1,20 @@
package com.vetti.hotake.mapper;
import java.util.List;
import com.vetti.hotake.domain.HotakeCandidateCompliance;
public interface HotakeCandidateComplianceMapper
{
public HotakeCandidateCompliance selectHotakeCandidateComplianceById(Long id);
public List<HotakeCandidateCompliance> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance);
public int insertHotakeCandidateCompliance(HotakeCandidateCompliance hotakeCandidateCompliance);
public int updateHotakeCandidateCompliance(HotakeCandidateCompliance hotakeCandidateCompliance);
public int deleteHotakeCandidateComplianceById(Long id);
public int deleteHotakeCandidateComplianceByIds(Long[] ids);
}

View File

@@ -0,0 +1,21 @@
package com.vetti.hotake.service;
import java.util.List;
import com.vetti.hotake.domain.HotakeCandidateCompliance;
import com.vetti.hotake.domain.dto.CandidateComplianceDto;
import org.springframework.web.multipart.MultipartFile;
public interface IHotakeCandidateComplianceService
{
public CandidateComplianceDto selectHotakeCandidateComplianceById(Long id);
public List<CandidateComplianceDto> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance);
public int insertHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance);
public int updateHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance);
public int deleteHotakeCandidateComplianceByIds(Long[] ids);
public int deleteHotakeCandidateComplianceById(Long id);
}

View File

@@ -0,0 +1,91 @@
package com.vetti.hotake.service.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.vetti.common.core.service.BaseServiceImpl;
import com.vetti.common.enums.FillTypeEnum;
import com.vetti.hotake.domain.HotakeSysFile;
import com.vetti.hotake.domain.dto.CandidateComplianceDto;
import com.vetti.hotake.service.IHotakeSysFileService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import com.vetti.hotake.mapper.HotakeCandidateComplianceMapper;
import com.vetti.hotake.domain.HotakeCandidateCompliance;
import com.vetti.hotake.service.IHotakeCandidateComplianceService;
@SuppressWarnings("all")
@Service
public class HotakeCandidateComplianceServiceImpl extends BaseServiceImpl implements IHotakeCandidateComplianceService {
private static final String MINIO_BUCKET_NAME = "compliance-fs";
@Autowired
private HotakeCandidateComplianceMapper hotakeCandidateComplianceMapper;
@Autowired
private IHotakeSysFileService hotakeSysFileService;
@Transactional(readOnly = true)
@Override
public CandidateComplianceDto selectHotakeCandidateComplianceById(Long id) {
HotakeCandidateCompliance data = hotakeCandidateComplianceMapper.selectHotakeCandidateComplianceById(id);
if (data.getFileId() != null) {
return CandidateComplianceDto.build(data, hotakeSysFileService.url(data.getFileId()));
}
return CandidateComplianceDto.build(data, "");
}
@Transactional(readOnly = true)
@Override
public List<CandidateComplianceDto> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance) {
List<CandidateComplianceDto> dtoList = new ArrayList<>();
List<HotakeCandidateCompliance> list = hotakeCandidateComplianceMapper.selectHotakeCandidateComplianceList(hotakeCandidateCompliance);
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(e -> {
if (e.getFileId() != null) {
dtoList.add(CandidateComplianceDto.build(e, hotakeSysFileService.url(e.getFileId())));
}
});
}
return dtoList;
}
@Transactional(rollbackFor = Exception.class)
@Override
public int insertHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance) {
if (file != null) {
HotakeSysFile sysFile = hotakeSysFileService.uploadFile(file, MINIO_BUCKET_NAME);
hotakeCandidateCompliance.setFileId(sysFile.getId());
}
fill(FillTypeEnum.INSERT.getCode(), hotakeCandidateCompliance);
return hotakeCandidateComplianceMapper.insertHotakeCandidateCompliance(hotakeCandidateCompliance);
}
@Transactional(rollbackFor = Exception.class)
@Override
public int updateHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance) {
if (file != null) {
HotakeSysFile sysFile = hotakeSysFileService.uploadFile(file, MINIO_BUCKET_NAME);
hotakeCandidateCompliance.setFileId(sysFile.getId());
}
fill(FillTypeEnum.UPDATE.getCode(), hotakeCandidateCompliance);
return hotakeCandidateComplianceMapper.updateHotakeCandidateCompliance(hotakeCandidateCompliance);
}
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteHotakeCandidateComplianceByIds(Long[] ids) {
return hotakeCandidateComplianceMapper.deleteHotakeCandidateComplianceByIds(ids);
}
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteHotakeCandidateComplianceById(Long id) {
return hotakeCandidateComplianceMapper.deleteHotakeCandidateComplianceById(id);
}
}