11111
This commit is contained in:
parent
308248fbc4
commit
db4e26f946
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.cus.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -8,11 +9,20 @@ import com.ruoyi.cus.domain.CusBank;
|
||||
|
||||
/**
|
||||
* 客户银行资料Service接口
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
public interface ICusBankService extends IService<CusBank>
|
||||
{
|
||||
public interface ICusBankService extends IService<CusBank> {
|
||||
IPage<CusBank> queryListPage(CusBank pageReqVO, Page<CusBank> page);
|
||||
|
||||
/**
|
||||
* 批量保存银行卡信息
|
||||
*
|
||||
* @param cusBankList 银行集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 15:58 2025/11/20
|
||||
**/
|
||||
void saveOrUpdateByAccount(List<CusBank> cusBankList);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.cus.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -8,11 +9,20 @@ import com.ruoyi.cus.domain.CusCompany;
|
||||
|
||||
/**
|
||||
* 客户公司信息Service接口
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
public interface ICusCompanyService extends IService<CusCompany>
|
||||
{
|
||||
public interface ICusCompanyService extends IService<CusCompany> {
|
||||
IPage<CusCompany> queryListPage(CusCompany pageReqVO, Page<CusCompany> page);
|
||||
|
||||
/**
|
||||
* 批量保存客户公司信息
|
||||
*
|
||||
* @param cusCompanyList 客户公司信息集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 15:15 2025/11/20
|
||||
**/
|
||||
void saveOrUpdateByCusName(List<CusCompany> cusCompanyList);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.cus.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -8,11 +9,10 @@ import com.ruoyi.cus.domain.CusContacts;
|
||||
|
||||
/**
|
||||
* 客户联系人Service接口
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
public interface ICusContactsService extends IService<CusContacts>
|
||||
{
|
||||
public interface ICusContactsService extends IService<CusContacts> {
|
||||
IPage<CusContacts> queryListPage(CusContacts pageReqVO, Page<CusContacts> page);
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ public interface ICusMainService extends IService<CusMain> {
|
||||
/**
|
||||
* 通过名称保存客户主表信息
|
||||
*
|
||||
* @param cusMainList TODO
|
||||
* @param cusMainList 客户信息集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 14:44 2025/11/20
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.cus.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -8,11 +9,20 @@ import com.ruoyi.cus.domain.CusManager;
|
||||
|
||||
/**
|
||||
* 客户管理信息Service接口
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
public interface ICusManagerService extends IService<CusManager>
|
||||
{
|
||||
public interface ICusManagerService extends IService<CusManager> {
|
||||
IPage<CusManager> queryListPage(CusManager pageReqVO, Page<CusManager> page);
|
||||
|
||||
/**
|
||||
* 批量保存客户管理信息
|
||||
*
|
||||
* @param cusManagerList 客户管理信息集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 15:15 2025/11/20
|
||||
**/
|
||||
void saveOrUpdateByCusName(List<CusManager> cusManagerList);
|
||||
}
|
||||
|
||||
@ -1,27 +1,33 @@
|
||||
package com.ruoyi.cus.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.domain.DlBaseEntity;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cus.mapper.CusBankMapper;
|
||||
import com.ruoyi.cus.domain.CusBank;
|
||||
import com.ruoyi.cus.service.ICusBankService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 客户银行资料Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Service
|
||||
public class CusBankServiceImpl extends ServiceImpl<CusBankMapper,CusBank> implements ICusBankService
|
||||
{
|
||||
public class CusBankServiceImpl extends ServiceImpl<CusBankMapper, CusBank> implements ICusBankService {
|
||||
@Autowired
|
||||
private CusBankMapper cusBankMapper;
|
||||
|
||||
@ -29,4 +35,67 @@ public class CusBankServiceImpl extends ServiceImpl<CusBankMapper,CusBank> impl
|
||||
public IPage<CusBank> queryListPage(CusBank pageReqVO, Page<CusBank> page) {
|
||||
return cusBankMapper.queryListPage(pageReqVO, page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据银行账号保存或更新客户银行信息
|
||||
*
|
||||
* @param cusBankList 客户银行信息列表
|
||||
* @author lingma
|
||||
* @date 2025/11/20
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdateByAccount(List<CusBank> cusBankList) {
|
||||
if (cusBankList == null || cusBankList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 1. 提取所有有效的 bankAccount 并去重
|
||||
List<String> bankAccounts = cusBankList.stream()
|
||||
.map(CusBank::getBankAccount)
|
||||
.filter(StringUtils::isNotEmpty)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 2. 查询数据库中已有的银行信息
|
||||
Map<String, CusBank> existingBankMap = new HashMap<>();
|
||||
if (!bankAccounts.isEmpty()) {
|
||||
List<CusBank> existingBanks = this.list(new LambdaQueryWrapper<CusBank>()
|
||||
.in(CusBank::getBankAccount, bankAccounts));
|
||||
existingBankMap = existingBanks.stream()
|
||||
.collect(Collectors.toMap(CusBank::getBankAccount, Function.identity()));
|
||||
}
|
||||
|
||||
// 3. 分离需要新增和更新的数据
|
||||
List<CusBank> toSaveList = new ArrayList<>();
|
||||
List<CusBank> toUpdateList = new ArrayList<>();
|
||||
|
||||
for (CusBank bank : cusBankList) {
|
||||
if (StringUtils.isEmpty(bank.getBankAccount())) {
|
||||
continue; // 忽略没有 bankAccount 的数据
|
||||
}
|
||||
|
||||
CusBank existing = existingBankMap.get(bank.getBankAccount());
|
||||
if (existing != null) {
|
||||
// 存在就更新
|
||||
bank.setId(existing.getId());
|
||||
//保留原来的客户id
|
||||
bank.setCusId(existing.getCusId());
|
||||
toUpdateList.add(bank);
|
||||
} else {
|
||||
// 不存在就新增
|
||||
toSaveList.add(bank);
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 批量保存与更新
|
||||
if (!toSaveList.isEmpty()) {
|
||||
this.saveBatch(toSaveList);
|
||||
}
|
||||
if (!toUpdateList.isEmpty()) {
|
||||
this.updateBatchById(toUpdateList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,24 +1,32 @@
|
||||
package com.ruoyi.cus.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cus.mapper.CusCompanyMapper;
|
||||
import com.ruoyi.cus.domain.CusCompany;
|
||||
import com.ruoyi.cus.service.ICusCompanyService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 客户公司信息Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Service
|
||||
public class CusCompanyServiceImpl extends ServiceImpl<CusCompanyMapper,CusCompany> implements ICusCompanyService
|
||||
{
|
||||
public class CusCompanyServiceImpl extends ServiceImpl<CusCompanyMapper, CusCompany> implements ICusCompanyService {
|
||||
@Autowired
|
||||
private CusCompanyMapper cusCompanyMapper;
|
||||
|
||||
@ -26,4 +34,67 @@ public class CusCompanyServiceImpl extends ServiceImpl<CusCompanyMapper,CusCompa
|
||||
public IPage<CusCompany> queryListPage(CusCompany pageReqVO, Page<CusCompany> page) {
|
||||
return cusCompanyMapper.queryListPage(pageReqVO, page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存客户公司信息
|
||||
*
|
||||
* @param cusCompanyList 客户公司信息集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 15:15 2025/11/20
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdateByCusName(List<CusCompany> cusCompanyList) {
|
||||
if (cusCompanyList == null || cusCompanyList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 1. 提取所有有效的 cusName 并去重
|
||||
List<String> cusNames = cusCompanyList.stream()
|
||||
.map(CusCompany::getCusName)
|
||||
.filter(StringUtils::isNotEmpty)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 2. 查询数据库中已有的公司信息
|
||||
Map<String, CusCompany> existingCompanyMap = new HashMap<>();
|
||||
if (!cusNames.isEmpty()) {
|
||||
List<CusCompany> existingCompanies = this.list(new LambdaQueryWrapper<CusCompany>()
|
||||
.in(CusCompany::getCusName, cusNames));
|
||||
existingCompanyMap = existingCompanies.stream()
|
||||
.collect(Collectors.toMap(CusCompany::getCusName, Function.identity()));
|
||||
}
|
||||
|
||||
// 3. 分离需要新增和更新的数据
|
||||
List<CusCompany> toSaveList = new ArrayList<>();
|
||||
List<CusCompany> toUpdateList = new ArrayList<>();
|
||||
|
||||
for (CusCompany company : cusCompanyList) {
|
||||
if (StringUtils.isEmpty(company.getCusName())) {
|
||||
continue; // 忽略没有 cusName 的数据
|
||||
}
|
||||
|
||||
CusCompany existing = existingCompanyMap.get(company.getCusName());
|
||||
if (existing != null) {
|
||||
// 存在就更新
|
||||
company.setId(existing.getId());
|
||||
//保留原来的客户id
|
||||
company.setCusId(existing.getCusId());
|
||||
toUpdateList.add(company);
|
||||
} else {
|
||||
// 不存在就新增
|
||||
toSaveList.add(company);
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 批量保存与更新
|
||||
if (!toSaveList.isEmpty()) {
|
||||
this.saveBatch(toSaveList);
|
||||
}
|
||||
if (!toUpdateList.isEmpty()) {
|
||||
this.updateBatchById(toUpdateList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -126,6 +126,7 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
CusCompany companyInfo = new CusCompany();
|
||||
//绑定客户id
|
||||
companyInfo.setCusId(customerId);
|
||||
companyInfo.setCusName(customerInfo.getFullName());
|
||||
companyInfo.setCusFrom(customerInfo.getCusSource());
|
||||
companyInfo.setCusLevel(customerInfo.getCusLevel());
|
||||
companyInfo.setBusiType(customerInfo.getBusinessType());
|
||||
@ -138,6 +139,7 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
CusManager managementInfo = new CusManager();
|
||||
//绑定客户id
|
||||
managementInfo.setCusId(customerId);
|
||||
managementInfo.setCusName(customerInfo.getFullName());
|
||||
managementInfo.setUserName(customerInfo.getUserName());
|
||||
managementInfo.setFollowStep(customerInfo.getFollowStep());
|
||||
managementInfo.setSeasReason(customerInfo.getSeasReason());
|
||||
@ -153,6 +155,7 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
customerContact.setId(snowflakeIdGenerator.generateId());
|
||||
//绑定客户id
|
||||
customerContact.setCusId(customerId);
|
||||
customerContact.setCusName(contact.getFullName());
|
||||
customerContact.setName(contact.getName());
|
||||
customerContact.setNickName(contact.getNickName());
|
||||
customerContact.setEmail(contact.getEmail());
|
||||
@ -171,6 +174,7 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
CusBank bankInfo = new CusBank();
|
||||
//绑定客户id
|
||||
bankInfo.setCusId(customerId);
|
||||
bankInfo.setCusName(bank.getCusName());
|
||||
bankInfo.setBankAccount(bank.getBankAccount());
|
||||
bankInfo.setBankName(bank.getBankName());
|
||||
bankInfo.setCurrency(bank.getCurrency());
|
||||
@ -187,15 +191,15 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
|
||||
// 批量保存客户主表信息
|
||||
if (!cusMainList.isEmpty()) {
|
||||
cusMainService.saveBatch(cusMainList);
|
||||
cusMainService.saveOrUpdateByCusName(cusMainList);
|
||||
}
|
||||
// 批量保存客户公司信息表
|
||||
if (!cusCompanyList.isEmpty()) {
|
||||
cusCompanyService.saveBatch(cusCompanyList);
|
||||
cusCompanyService.saveOrUpdateByCusName(cusCompanyList);
|
||||
}
|
||||
// 批量保存客户管理信息表
|
||||
if (!cusManagerList.isEmpty()) {
|
||||
cusManagerService.saveBatch(cusManagerList);
|
||||
cusManagerService.saveOrUpdateByCusName(cusManagerList);
|
||||
}
|
||||
// 批量保存客户联系人信息
|
||||
if (!cusContactsList.isEmpty()) {
|
||||
@ -203,7 +207,7 @@ public class CusImportServiceImpl implements ICusImportService {
|
||||
}
|
||||
//批量保存银行账户信息
|
||||
if (!cusBankList.isEmpty()) {
|
||||
cusBankService.saveBatch(cusBankList);
|
||||
cusBankService.saveOrUpdateByAccount(cusBankList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,24 +1,32 @@
|
||||
package com.ruoyi.cus.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cus.mapper.CusManagerMapper;
|
||||
import com.ruoyi.cus.domain.CusManager;
|
||||
import com.ruoyi.cus.service.ICusManagerService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 客户管理信息Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author vinjor-m
|
||||
* @date 2025-11-03
|
||||
*/
|
||||
@Service
|
||||
public class CusManagerServiceImpl extends ServiceImpl<CusManagerMapper,CusManager> implements ICusManagerService
|
||||
{
|
||||
public class CusManagerServiceImpl extends ServiceImpl<CusManagerMapper, CusManager> implements ICusManagerService {
|
||||
@Autowired
|
||||
private CusManagerMapper cusManagerMapper;
|
||||
|
||||
@ -26,4 +34,68 @@ public class CusManagerServiceImpl extends ServiceImpl<CusManagerMapper,CusManag
|
||||
public IPage<CusManager> queryListPage(CusManager pageReqVO, Page<CusManager> page) {
|
||||
return cusManagerMapper.queryListPage(pageReqVO, page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存客户管理信息
|
||||
*
|
||||
* @param cusManagerList 客户管理信息集合
|
||||
* @return void
|
||||
* @author PQZ
|
||||
* @date 15:15 2025/11/20
|
||||
**/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdateByCusName(List<CusManager> cusManagerList) {
|
||||
if (cusManagerList == null || cusManagerList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 1. 提取所有有效的 cusName 并去重
|
||||
List<String> cusNames = cusManagerList.stream()
|
||||
.map(CusManager::getCusName)
|
||||
.filter(StringUtils::isNotEmpty)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 2. 查询数据库中已有的管理信息
|
||||
Map<String, CusManager> existingManagerMap = new HashMap<>();
|
||||
if (!cusNames.isEmpty()) {
|
||||
List<CusManager> existingManagers = this.list(new LambdaQueryWrapper<CusManager>()
|
||||
.in(CusManager::getCusName, cusNames));
|
||||
existingManagerMap = existingManagers.stream()
|
||||
.collect(Collectors.toMap(CusManager::getCusName, Function.identity()));
|
||||
}
|
||||
|
||||
// 3. 分离需要新增和更新的数据
|
||||
List<CusManager> toSaveList = new ArrayList<>();
|
||||
List<CusManager> toUpdateList = new ArrayList<>();
|
||||
|
||||
for (CusManager manager : cusManagerList) {
|
||||
if (StringUtils.isEmpty(manager.getCusName())) {
|
||||
continue; // 忽略没有 cusName 的数据
|
||||
}
|
||||
|
||||
CusManager existing = existingManagerMap.get(manager.getCusName());
|
||||
if (existing != null) {
|
||||
// 存在就更新
|
||||
manager.setId(existing.getId());
|
||||
//保留原来的客户id
|
||||
manager.setCusId(existing.getCusId());
|
||||
toUpdateList.add(manager);
|
||||
} else {
|
||||
// 不存在就新增
|
||||
toSaveList.add(manager);
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 批量保存与更新
|
||||
if (!toSaveList.isEmpty()) {
|
||||
this.saveBatch(toSaveList);
|
||||
}
|
||||
if (!toUpdateList.isEmpty()) {
|
||||
this.updateBatchById(toUpdateList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user