feat: 添加中介Service接口和实现类
- 新增ICcdiIntermediaryService接口,定义中介服务层操作方法 - 新增CcdiIntermediaryServiceImpl实现类,提供中介CRUD功能 - 支持个人和实体中介的统一查询、详情查询、新增、修改、删除 - 实现证件号和统一社会信用代码唯一性校验 - 支持Excel批量导入功能 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,117 @@
|
|||||||
|
package com.ruoyi.ccdi.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.*;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryEntityDetailVO;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryPersonDetailVO;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中介Service接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-02-04
|
||||||
|
*/
|
||||||
|
public interface ICcdiIntermediaryService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询中介列表
|
||||||
|
*
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param queryDTO 查询条件
|
||||||
|
* @return 中介VO分页结果
|
||||||
|
*/
|
||||||
|
Page<CcdiIntermediaryVO> selectIntermediaryPage(Page<CcdiIntermediaryVO> page, CcdiIntermediaryQueryDTO queryDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询个人中介详情
|
||||||
|
*
|
||||||
|
* @param bizId 人员ID
|
||||||
|
* @return 个人中介详情VO
|
||||||
|
*/
|
||||||
|
CcdiIntermediaryPersonDetailVO selectIntermediaryPersonDetail(String bizId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询实体中介详情
|
||||||
|
*
|
||||||
|
* @param socialCreditCode 统一社会信用代码
|
||||||
|
* @return 实体中介详情VO
|
||||||
|
*/
|
||||||
|
CcdiIntermediaryEntityDetailVO selectIntermediaryEntityDetail(String socialCreditCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增个人中介
|
||||||
|
*
|
||||||
|
* @param addDTO 新增DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertIntermediaryPerson(CcdiIntermediaryPersonAddDTO addDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改个人中介
|
||||||
|
*
|
||||||
|
* @param editDTO 编辑DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int updateIntermediaryPerson(CcdiIntermediaryPersonEditDTO editDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增实体中介
|
||||||
|
*
|
||||||
|
* @param addDTO 新增DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertIntermediaryEntity(CcdiIntermediaryEntityAddDTO addDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改实体中介
|
||||||
|
*
|
||||||
|
* @param editDTO 编辑DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int updateIntermediaryEntity(CcdiIntermediaryEntityEditDTO editDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除中介
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的ID数组
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int deleteIntermediaryByIds(String[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验人员ID唯一性
|
||||||
|
*
|
||||||
|
* @param personId 人员ID
|
||||||
|
* @param bizId 排除的人员ID
|
||||||
|
* @return true=唯一, false=不唯一
|
||||||
|
*/
|
||||||
|
boolean checkPersonIdUnique(String personId, String bizId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验统一社会信用代码唯一性
|
||||||
|
*
|
||||||
|
* @param socialCreditCode 统一社会信用代码
|
||||||
|
* @param excludeId 排除的ID
|
||||||
|
* @return true=唯一, false=不唯一
|
||||||
|
*/
|
||||||
|
boolean checkSocialCreditCodeUnique(String socialCreditCode, String excludeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入个人中介数据
|
||||||
|
*
|
||||||
|
* @param list Excel实体列表
|
||||||
|
* @param updateSupport 是否更新支持
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
String importIntermediaryPerson(java.util.List<com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel> list, boolean updateSupport);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入实体中介数据
|
||||||
|
*
|
||||||
|
* @param list Excel实体列表
|
||||||
|
* @param updateSupport 是否更新支持
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
String importIntermediaryEntity(java.util.List<com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel> list, boolean updateSupport);
|
||||||
|
}
|
||||||
@@ -0,0 +1,424 @@
|
|||||||
|
package com.ruoyi.ccdi.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.ccdi.domain.CcdiBizIntermediary;
|
||||||
|
import com.ruoyi.ccdi.domain.CcdiEnterpriseBaseInfo;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryEntityAddDTO;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryEntityEditDTO;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryPersonAddDTO;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryPersonEditDTO;
|
||||||
|
import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryQueryDTO;
|
||||||
|
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel;
|
||||||
|
import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryEntityDetailVO;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryPersonDetailVO;
|
||||||
|
import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryVO;
|
||||||
|
import com.ruoyi.ccdi.mapper.CcdiBizIntermediaryMapper;
|
||||||
|
import com.ruoyi.ccdi.mapper.CcdiEnterpriseBaseInfoMapper;
|
||||||
|
import com.ruoyi.ccdi.service.ICcdiIntermediaryService;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中介Service业务层处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-02-04
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CcdiIntermediaryServiceImpl implements ICcdiIntermediaryService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CcdiBizIntermediaryMapper bizIntermediaryMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CcdiEnterpriseBaseInfoMapper enterpriseBaseInfoMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询中介列表
|
||||||
|
*
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param queryDTO 查询条件
|
||||||
|
* @return 中介VO分页结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Page<CcdiIntermediaryVO> selectIntermediaryPage(Page<CcdiIntermediaryVO> page, CcdiIntermediaryQueryDTO queryDTO) {
|
||||||
|
Page<CcdiIntermediaryVO> voPage = new Page<>(page.getCurrent(), page.getSize());
|
||||||
|
List<CcdiIntermediaryVO> list = new ArrayList<>();
|
||||||
|
|
||||||
|
// 查询个人中介
|
||||||
|
LambdaQueryWrapper<CcdiBizIntermediary> personWrapper = new LambdaQueryWrapper<>();
|
||||||
|
personWrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiBizIntermediary::getName, queryDTO.getName())
|
||||||
|
.like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), CcdiBizIntermediary::getPersonId, queryDTO.getCertificateNo())
|
||||||
|
.eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), CcdiBizIntermediary::getIntermediaryType, queryDTO.getIntermediaryType())
|
||||||
|
.or()
|
||||||
|
.eq(StringUtils.isEmpty(queryDTO.getIntermediaryType()) || "1".equals(queryDTO.getIntermediaryType()),
|
||||||
|
CcdiBizIntermediary::getIntermediaryType, "1");
|
||||||
|
|
||||||
|
List<CcdiBizIntermediary> personList = bizIntermediaryMapper.selectList(personWrapper);
|
||||||
|
for (CcdiBizIntermediary person : personList) {
|
||||||
|
CcdiIntermediaryVO vo = new CcdiIntermediaryVO();
|
||||||
|
vo.setId(person.getBizId());
|
||||||
|
vo.setName(person.getName());
|
||||||
|
vo.setCertificateNo(person.getPersonId());
|
||||||
|
vo.setIntermediaryType("1");
|
||||||
|
vo.setPersonType(person.getPersonType());
|
||||||
|
vo.setCompany(person.getCompany());
|
||||||
|
vo.setDataSource(person.getDataSource());
|
||||||
|
vo.setCreateTime(person.getCreateTime());
|
||||||
|
list.add(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询实体中介
|
||||||
|
LambdaQueryWrapper<CcdiEnterpriseBaseInfo> entityWrapper = new LambdaQueryWrapper<>();
|
||||||
|
entityWrapper.like(StringUtils.isNotEmpty(queryDTO.getName()), CcdiEnterpriseBaseInfo::getEnterpriseName, queryDTO.getName())
|
||||||
|
.like(StringUtils.isNotEmpty(queryDTO.getCertificateNo()), CcdiEnterpriseBaseInfo::getSocialCreditCode, queryDTO.getCertificateNo())
|
||||||
|
.eq(StringUtils.isNotEmpty(queryDTO.getIntermediaryType()), CcdiEnterpriseBaseInfo::getIntermediaryType, queryDTO.getIntermediaryType())
|
||||||
|
.or()
|
||||||
|
.eq(StringUtils.isEmpty(queryDTO.getIntermediaryType()) || "2".equals(queryDTO.getIntermediaryType()),
|
||||||
|
CcdiEnterpriseBaseInfo::getIntermediaryType, "2");
|
||||||
|
|
||||||
|
List<CcdiEnterpriseBaseInfo> entityList = enterpriseBaseInfoMapper.selectList(entityWrapper);
|
||||||
|
for (CcdiEnterpriseBaseInfo entity : entityList) {
|
||||||
|
CcdiIntermediaryVO vo = new CcdiIntermediaryVO();
|
||||||
|
vo.setId(entity.getSocialCreditCode());
|
||||||
|
vo.setName(entity.getEnterpriseName());
|
||||||
|
vo.setCertificateNo(entity.getSocialCreditCode());
|
||||||
|
vo.setIntermediaryType("2");
|
||||||
|
vo.setDataSource(entity.getDataSource());
|
||||||
|
vo.setCreateTime(entity.getCreateTime());
|
||||||
|
list.add(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 手动分页
|
||||||
|
int start = (int) ((voPage.getCurrent() - 1) * voPage.getSize());
|
||||||
|
int end = (int) Math.min(start + voPage.getSize(), list.size());
|
||||||
|
|
||||||
|
List<CcdiIntermediaryVO> pageList = new ArrayList<>();
|
||||||
|
if (start < list.size()) {
|
||||||
|
pageList = list.subList(start, end);
|
||||||
|
}
|
||||||
|
|
||||||
|
voPage.setRecords(pageList);
|
||||||
|
voPage.setTotal(list.size());
|
||||||
|
|
||||||
|
return voPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询个人中介详情
|
||||||
|
*
|
||||||
|
* @param bizId 人员ID
|
||||||
|
* @return 个人中介详情VO
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public CcdiIntermediaryPersonDetailVO selectIntermediaryPersonDetail(String bizId) {
|
||||||
|
CcdiBizIntermediary person = bizIntermediaryMapper.selectById(bizId);
|
||||||
|
if (person == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
CcdiIntermediaryPersonDetailVO vo = new CcdiIntermediaryPersonDetailVO();
|
||||||
|
BeanUtils.copyProperties(person, vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询实体中介详情
|
||||||
|
*
|
||||||
|
* @param socialCreditCode 统一社会信用代码
|
||||||
|
* @return 实体中介详情VO
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public CcdiIntermediaryEntityDetailVO selectIntermediaryEntityDetail(String socialCreditCode) {
|
||||||
|
CcdiEnterpriseBaseInfo entity = enterpriseBaseInfoMapper.selectById(socialCreditCode);
|
||||||
|
if (entity == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
CcdiIntermediaryEntityDetailVO vo = new CcdiIntermediaryEntityDetailVO();
|
||||||
|
BeanUtils.copyProperties(entity, vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增个人中介
|
||||||
|
*
|
||||||
|
* @param addDTO 新增DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public int insertIntermediaryPerson(CcdiIntermediaryPersonAddDTO addDTO) {
|
||||||
|
// 检查人员ID唯一性
|
||||||
|
if (!checkPersonIdUnique(addDTO.getPersonId(), null)) {
|
||||||
|
throw new RuntimeException("该证件号已存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
CcdiBizIntermediary person = new CcdiBizIntermediary();
|
||||||
|
BeanUtils.copyProperties(addDTO, person);
|
||||||
|
person.setIntermediaryType("1");
|
||||||
|
|
||||||
|
return bizIntermediaryMapper.insert(person);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改个人中介
|
||||||
|
*
|
||||||
|
* @param editDTO 编辑DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public int updateIntermediaryPerson(CcdiIntermediaryPersonEditDTO editDTO) {
|
||||||
|
// 检查人员ID唯一性(排除自己)
|
||||||
|
if (StringUtils.isNotEmpty(editDTO.getPersonId())) {
|
||||||
|
if (!checkPersonIdUnique(editDTO.getPersonId(), editDTO.getBizId())) {
|
||||||
|
throw new RuntimeException("该证件号已存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CcdiBizIntermediary person = new CcdiBizIntermediary();
|
||||||
|
BeanUtils.copyProperties(editDTO, person);
|
||||||
|
|
||||||
|
return bizIntermediaryMapper.updateById(person);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增实体中介
|
||||||
|
*
|
||||||
|
* @param addDTO 新增DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public int insertIntermediaryEntity(CcdiIntermediaryEntityAddDTO addDTO) {
|
||||||
|
// 检查统一社会信用代码唯一性
|
||||||
|
if (StringUtils.isNotEmpty(addDTO.getSocialCreditCode())) {
|
||||||
|
if (!checkSocialCreditCodeUnique(addDTO.getSocialCreditCode(), null)) {
|
||||||
|
throw new RuntimeException("该统一社会信用代码已存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CcdiEnterpriseBaseInfo entity = new CcdiEnterpriseBaseInfo();
|
||||||
|
BeanUtils.copyProperties(addDTO, entity);
|
||||||
|
entity.setIntermediaryType("2");
|
||||||
|
|
||||||
|
return enterpriseBaseInfoMapper.insert(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改实体中介
|
||||||
|
*
|
||||||
|
* @param editDTO 编辑DTO
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public int updateIntermediaryEntity(CcdiIntermediaryEntityEditDTO editDTO) {
|
||||||
|
CcdiEnterpriseBaseInfo entity = new CcdiEnterpriseBaseInfo();
|
||||||
|
BeanUtils.copyProperties(editDTO, entity);
|
||||||
|
|
||||||
|
return enterpriseBaseInfoMapper.updateById(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除中介
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的ID数组
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public int deleteIntermediaryByIds(String[] ids) {
|
||||||
|
int count = 0;
|
||||||
|
for (String id : ids) {
|
||||||
|
// 判断是个人还是实体(个人ID长度较长,实体统一社会信用代码18位)
|
||||||
|
if (id.length() > 18) {
|
||||||
|
// 个人中介
|
||||||
|
count += bizIntermediaryMapper.deleteById(id);
|
||||||
|
} else {
|
||||||
|
// 实体中介
|
||||||
|
count += enterpriseBaseInfoMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验人员ID唯一性
|
||||||
|
*
|
||||||
|
* @param personId 人员ID
|
||||||
|
* @param bizId 排除的人员ID
|
||||||
|
* @return true=唯一, false=不唯一
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean checkPersonIdUnique(String personId, String bizId) {
|
||||||
|
LambdaQueryWrapper<CcdiBizIntermediary> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(CcdiBizIntermediary::getPersonId, personId);
|
||||||
|
if (StringUtils.isNotEmpty(bizId)) {
|
||||||
|
wrapper.ne(CcdiBizIntermediary::getBizId, bizId);
|
||||||
|
}
|
||||||
|
return bizIntermediaryMapper.selectCount(wrapper) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验统一社会信用代码唯一性
|
||||||
|
*
|
||||||
|
* @param socialCreditCode 统一社会信用代码
|
||||||
|
* @param excludeId 排除的ID
|
||||||
|
* @return true=唯一, false=不唯一
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean checkSocialCreditCodeUnique(String socialCreditCode, String excludeId) {
|
||||||
|
LambdaQueryWrapper<CcdiEnterpriseBaseInfo> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(CcdiEnterpriseBaseInfo::getSocialCreditCode, socialCreditCode);
|
||||||
|
if (StringUtils.isNotEmpty(excludeId)) {
|
||||||
|
wrapper.ne(CcdiEnterpriseBaseInfo::getSocialCreditCode, excludeId);
|
||||||
|
}
|
||||||
|
return enterpriseBaseInfoMapper.selectCount(wrapper) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入个人中介数据
|
||||||
|
*
|
||||||
|
* @param list Excel实体列表
|
||||||
|
* @param updateSupport 是否更新支持
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public String importIntermediaryPerson(List<CcdiIntermediaryPersonExcel> list, boolean updateSupport) {
|
||||||
|
if (StringUtils.isNull(list) || list.isEmpty()) {
|
||||||
|
return "至少需要一条数据";
|
||||||
|
}
|
||||||
|
|
||||||
|
int successNum = 0;
|
||||||
|
int failureNum = 0;
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
StringBuilder failureMsg = new StringBuilder();
|
||||||
|
|
||||||
|
for (CcdiIntermediaryPersonExcel excel : list) {
|
||||||
|
try {
|
||||||
|
// 验证数据
|
||||||
|
if (StringUtils.isEmpty(excel.getName())) {
|
||||||
|
throw new RuntimeException("姓名不能为空");
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(excel.getPersonId())) {
|
||||||
|
throw new RuntimeException("证件号码不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为实体
|
||||||
|
CcdiBizIntermediary person = new CcdiBizIntermediary();
|
||||||
|
BeanUtils.copyProperties(excel, person);
|
||||||
|
person.setIntermediaryType("1");
|
||||||
|
|
||||||
|
// 检查唯一性
|
||||||
|
if (!checkPersonIdUnique(excel.getPersonId(), null)) {
|
||||||
|
if (updateSupport) {
|
||||||
|
// 更新模式:查询已存在记录并更新
|
||||||
|
LambdaQueryWrapper<CcdiBizIntermediary> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(CcdiBizIntermediary::getPersonId, excel.getPersonId());
|
||||||
|
CcdiBizIntermediary existingPerson = bizIntermediaryMapper.selectOne(wrapper);
|
||||||
|
if (existingPerson != null) {
|
||||||
|
person.setBizId(existingPerson.getBizId());
|
||||||
|
bizIntermediaryMapper.updateById(person);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("该证件号已存在");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
bizIntermediaryMapper.insert(person);
|
||||||
|
}
|
||||||
|
|
||||||
|
successNum++;
|
||||||
|
successMsg.append("<br/>").append(successNum).append("、").append(excel.getName()).append(" 导入成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/>").append(failureNum).append("、").append(excel.getName()).append(" 导入失败:");
|
||||||
|
failureMsg.append(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (failureNum > 0) {
|
||||||
|
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||||
|
throw new RuntimeException(failureMsg.toString());
|
||||||
|
} else {
|
||||||
|
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条");
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入实体中介数据
|
||||||
|
*
|
||||||
|
* @param list Excel实体列表
|
||||||
|
* @param updateSupport 是否更新支持
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public String importIntermediaryEntity(List<CcdiIntermediaryEntityExcel> list, boolean updateSupport) {
|
||||||
|
if (StringUtils.isNull(list) || list.isEmpty()) {
|
||||||
|
return "至少需要一条数据";
|
||||||
|
}
|
||||||
|
|
||||||
|
int successNum = 0;
|
||||||
|
int failureNum = 0;
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
StringBuilder failureMsg = new StringBuilder();
|
||||||
|
|
||||||
|
for (CcdiIntermediaryEntityExcel excel : list) {
|
||||||
|
try {
|
||||||
|
// 验证数据
|
||||||
|
if (StringUtils.isEmpty(excel.getEnterpriseName())) {
|
||||||
|
throw new RuntimeException("机构名称不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为实体
|
||||||
|
CcdiEnterpriseBaseInfo entity = new CcdiEnterpriseBaseInfo();
|
||||||
|
BeanUtils.copyProperties(excel, entity);
|
||||||
|
entity.setIntermediaryType("2");
|
||||||
|
|
||||||
|
// 检查唯一性
|
||||||
|
if (StringUtils.isNotEmpty(excel.getSocialCreditCode())) {
|
||||||
|
if (!checkSocialCreditCodeUnique(excel.getSocialCreditCode(), null)) {
|
||||||
|
if (updateSupport) {
|
||||||
|
// 更新模式
|
||||||
|
enterpriseBaseInfoMapper.updateById(entity);
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("该统一社会信用代码已存在");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
enterpriseBaseInfoMapper.insert(entity);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 没有统一社会信用代码,直接插入
|
||||||
|
enterpriseBaseInfoMapper.insert(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
successNum++;
|
||||||
|
successMsg.append("<br/>").append(successNum).append("、").append(excel.getEnterpriseName()).append(" 导入成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
failureNum++;
|
||||||
|
failureMsg.append("<br/>").append(failureNum).append("、").append(excel.getEnterpriseName()).append(" 导入失败:");
|
||||||
|
failureMsg.append(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (failureNum > 0) {
|
||||||
|
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||||
|
throw new RuntimeException(failureMsg.toString());
|
||||||
|
} else {
|
||||||
|
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条");
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user