实体更新
This commit is contained in:
parent
33aa5a4302
commit
308248fbc4
@ -34,6 +34,10 @@ public class CusBank extends DlBaseEntity
|
|||||||
@Excel(name = "客户ID")
|
@Excel(name = "客户ID")
|
||||||
private String cusId;
|
private String cusId;
|
||||||
|
|
||||||
|
/** 客户名称 */
|
||||||
|
@Excel(name = "客户名称")
|
||||||
|
private String cusName;
|
||||||
|
|
||||||
/** 银行账号 */
|
/** 银行账号 */
|
||||||
@Excel(name = "银行账号")
|
@Excel(name = "银行账号")
|
||||||
private String bankAccount;
|
private String bankAccount;
|
||||||
|
|||||||
@ -30,6 +30,10 @@ public class CusCompany extends DlBaseEntity
|
|||||||
@TableId(type = IdType.ASSIGN_UUID)
|
@TableId(type = IdType.ASSIGN_UUID)
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
/** 客户名称 */
|
||||||
|
@Excel(name = "客户名称")
|
||||||
|
private String cusName;
|
||||||
|
|
||||||
/** 客户ID */
|
/** 客户ID */
|
||||||
@Excel(name = "客户ID")
|
@Excel(name = "客户ID")
|
||||||
private String cusId;
|
private String cusId;
|
||||||
|
|||||||
@ -36,6 +36,10 @@ public class CusContacts extends DlBaseEntity
|
|||||||
@Excel(name = "客户ID")
|
@Excel(name = "客户ID")
|
||||||
private String cusId;
|
private String cusId;
|
||||||
|
|
||||||
|
/** 客户名称 */
|
||||||
|
@Excel(name = "客户名称")
|
||||||
|
private String cusName;
|
||||||
|
|
||||||
/** 姓名 */
|
/** 姓名 */
|
||||||
@Excel(name = "姓名")
|
@Excel(name = "姓名")
|
||||||
private String name;
|
private String name;
|
||||||
|
|||||||
@ -34,6 +34,10 @@ public class CusManager extends DlBaseEntity
|
|||||||
@Excel(name = "客户ID")
|
@Excel(name = "客户ID")
|
||||||
private String cusId;
|
private String cusId;
|
||||||
|
|
||||||
|
/** 客户名称 */
|
||||||
|
@Excel(name = "客户名称")
|
||||||
|
private String cusName;
|
||||||
|
|
||||||
/** 业务员ID */
|
/** 业务员ID */
|
||||||
@Excel(name = "业务员ID")
|
@Excel(name = "业务员ID")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|||||||
@ -7,22 +7,31 @@ import lombok.NoArgsConstructor;
|
|||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class CusBankImportDTO {
|
public class CusBankImportDTO {
|
||||||
@Excel(name = "客户代码")
|
@Excel(name = "客户名称")
|
||||||
private String cusCode;
|
private String cusName;
|
||||||
@Excel(name = "银行账号")
|
@Excel(name = "税号")
|
||||||
private String bankAccount;
|
private String taxId;
|
||||||
@Excel(name = "银行名称")
|
@Excel(name = "银行名称")
|
||||||
private String bankName;
|
private String bankName;
|
||||||
@Excel(name = "币种")
|
@Excel(name = "银行账号")
|
||||||
private String currency;
|
private String bankAccount;
|
||||||
|
@Excel(name = "分支机构代码")
|
||||||
|
private String branchCode;
|
||||||
@Excel(name = "银行代码")
|
@Excel(name = "银行代码")
|
||||||
private String bankCode;
|
private String bankCode;
|
||||||
|
@Excel(name = "币种")
|
||||||
|
private String currency;
|
||||||
@Excel(name = "银行swift代码")
|
@Excel(name = "银行swift代码")
|
||||||
private String swiftCode;
|
private String swiftCode;
|
||||||
@Excel(name = "银行地址")
|
@Excel(name = "银行地址")
|
||||||
private String bankAddress;
|
private String bankAddress;
|
||||||
@Excel(name = "分支机构代码")
|
|
||||||
private String branchCode;
|
|
||||||
@Excel(name = "税号")
|
|
||||||
private String taxId;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.ruoyi.cus.service;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -18,44 +19,58 @@ import com.ruoyi.cus.vo.ViewTimeVO;
|
|||||||
* @author vinjor-m
|
* @author vinjor-m
|
||||||
* @date 2025-11-03
|
* @date 2025-11-03
|
||||||
*/
|
*/
|
||||||
public interface ICusMainService extends IService<CusMain>
|
public interface ICusMainService extends IService<CusMain> {
|
||||||
{
|
|
||||||
IPage<MainVO> queryListPage(MainVO pageReqVO, Page<CusMain> page);
|
IPage<MainVO> queryListPage(MainVO pageReqVO, Page<CusMain> page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增客户信息
|
* 新增客户信息
|
||||||
|
*
|
||||||
|
* @param cusMainVO TODO
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 15:56 2025/11/6
|
* @date 15:56 2025/11/6
|
||||||
* @param cusMainVO TODO
|
**/
|
||||||
**/
|
|
||||||
void saveNewCus(CusMainVO cusMainVO);
|
void saveNewCus(CusMainVO cusMainVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id查询客户信息
|
* 根据id查询客户信息
|
||||||
* @author vinjor-M
|
*
|
||||||
* @date 15:41 2025/11/12
|
|
||||||
* @param id 客户id
|
* @param id 客户id
|
||||||
* @return com.ruoyi.cus.vo.CusMainVO
|
* @return com.ruoyi.cus.vo.CusMainVO
|
||||||
**/
|
* @author vinjor-M
|
||||||
|
* @date 15:41 2025/11/12
|
||||||
|
**/
|
||||||
CusMainVO getDataById(String id);
|
CusMainVO getDataById(String id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查看客户信息面板数据对象
|
* 查看客户信息面板数据对象
|
||||||
* @author vinjor-M
|
*
|
||||||
* @date 10:34 2025/11/18
|
|
||||||
* @param id 数据id
|
* @param id 数据id
|
||||||
* @return com.ruoyi.cus.vo.CusViewVO
|
* @return com.ruoyi.cus.vo.CusViewVO
|
||||||
**/
|
* @author vinjor-M
|
||||||
|
* @date 10:34 2025/11/18
|
||||||
|
**/
|
||||||
CusViewVO viewData(String id);
|
CusViewVO viewData(String id);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取客户其他信息
|
* 获取客户其他信息
|
||||||
|
*
|
||||||
|
* @param cusId 客户id
|
||||||
|
* @return com.ruoyi.cus.vo.CusViewVO
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 13:14 2025/11/18
|
* @date 13:14 2025/11/18
|
||||||
* @param id 客户id
|
**/
|
||||||
* @return com.ruoyi.cus.vo.CusViewVO
|
|
||||||
**/
|
|
||||||
CusViewVO getOtherInfo(String cusId);
|
CusViewVO getOtherInfo(String cusId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过名称保存客户主表信息
|
||||||
|
*
|
||||||
|
* @param cusMainList TODO
|
||||||
|
* @return void
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:44 2025/11/20
|
||||||
|
**/
|
||||||
|
void saveOrUpdateByCusName(List<CusMain> cusMainList);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.ruoyi.cus.domain.*;
|
|||||||
import com.ruoyi.cus.dto.CusBankImportDTO;
|
import com.ruoyi.cus.dto.CusBankImportDTO;
|
||||||
import com.ruoyi.cus.dto.CusImportDTO;
|
import com.ruoyi.cus.dto.CusImportDTO;
|
||||||
import com.ruoyi.cus.service.*;
|
import com.ruoyi.cus.service.*;
|
||||||
|
import com.ruoyi.utils.SnowflakeIdGenerator;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
@ -33,6 +34,8 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
private ICusContactsService cusContactsService;
|
private ICusContactsService cusContactsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICusBankService cusBankService;
|
private ICusBankService cusBankService;
|
||||||
|
@Autowired
|
||||||
|
private SnowflakeIdGenerator snowflakeIdGenerator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入客户及联系人信息
|
* 导入客户及联系人信息
|
||||||
@ -46,13 +49,9 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
// 先打印所有sheet页名称
|
// 先打印所有sheet页名称
|
||||||
Workbook workbook = new XSSFWorkbook(file.getInputStream());
|
Workbook workbook = new XSSFWorkbook(file.getInputStream());
|
||||||
int numberOfSheets = workbook.getNumberOfSheets();
|
int numberOfSheets = workbook.getNumberOfSheets();
|
||||||
System.out.println("总共有 " + numberOfSheets + " 个sheet页");
|
|
||||||
|
|
||||||
for (int i = 0; i < numberOfSheets; i++) {
|
for (int i = 0; i < numberOfSheets; i++) {
|
||||||
Sheet sheet = workbook.getSheetAt(i);
|
Sheet sheet = workbook.getSheetAt(i);
|
||||||
System.out.println("Sheet " + i + " 名称: " + sheet.getSheetName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭workbook
|
// 关闭workbook
|
||||||
workbook.close();
|
workbook.close();
|
||||||
// 重新获取输入流用于数据读取
|
// 重新获取输入流用于数据读取
|
||||||
@ -87,13 +86,14 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
|
|
||||||
// 使用Map按客户代码分组,保留每个客户的所有联系人信息
|
// 使用Map按客户代码分组,保留每个客户的所有联系人信息
|
||||||
Map<String, List<CusImportDTO>> customerGroupMap = cusList.stream()
|
Map<String, List<CusImportDTO>> customerGroupMap = cusList.stream()
|
||||||
.collect(Collectors.groupingBy(CusImportDTO::getCusCode));
|
.collect(Collectors.groupingBy(CusImportDTO::getFullName));
|
||||||
|
|
||||||
// 准备批量插入的集合
|
// 准备批量插入的集合
|
||||||
List<CusMain> cusMainList = new ArrayList<>();
|
List<CusMain> cusMainList = new ArrayList<>();
|
||||||
List<CusCompany> cusCompanyList = new ArrayList<>();
|
List<CusCompany> cusCompanyList = new ArrayList<>();
|
||||||
List<CusManager> cusManagerList = new ArrayList<>();
|
List<CusManager> cusManagerList = new ArrayList<>();
|
||||||
List<CusContacts> cusContactsList = new ArrayList<>();
|
List<CusContacts> cusContactsList = new ArrayList<>();
|
||||||
|
List<CusBank> cusBankList = new ArrayList<>();
|
||||||
// 遍历每个客户的联系人列表,只保存一次客户信息,但保存所有联系人
|
// 遍历每个客户的联系人列表,只保存一次客户信息,但保存所有联系人
|
||||||
for (Map.Entry<String, List<CusImportDTO>> entry : customerGroupMap.entrySet()) {
|
for (Map.Entry<String, List<CusImportDTO>> entry : customerGroupMap.entrySet()) {
|
||||||
List<CusImportDTO> customerContacts = entry.getValue();
|
List<CusImportDTO> customerContacts = entry.getValue();
|
||||||
@ -103,9 +103,10 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
// 取第一个联系人记录作为客户基本信息(因为同一客户的基本信息是重复的)
|
// 取第一个联系人记录作为客户基本信息(因为同一客户的基本信息是重复的)
|
||||||
CusImportDTO customerInfo = customerContacts.get(0);
|
CusImportDTO customerInfo = customerContacts.get(0);
|
||||||
// 为客户提供UUID
|
// 为客户提供UUID
|
||||||
String customerId = UUID.randomUUID().toString();
|
String customerId = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
|
||||||
// 保存客户主表信息 CusMain
|
// 提取客户主表信息 CusMain
|
||||||
CusMain customer = new CusMain();
|
CusMain customer = new CusMain();
|
||||||
|
//绑定客户id
|
||||||
customer.setId(customerId);
|
customer.setId(customerId);
|
||||||
customer.setCusCode(customerInfo.getCusCode());
|
customer.setCusCode(customerInfo.getCusCode());
|
||||||
customer.setFullName(customerInfo.getFullName());
|
customer.setFullName(customerInfo.getFullName());
|
||||||
@ -121,8 +122,9 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
customer.setRemark(customerInfo.getCusRemark());
|
customer.setRemark(customerInfo.getCusRemark());
|
||||||
cusMainList.add(customer);
|
cusMainList.add(customer);
|
||||||
|
|
||||||
// 保存客户公司信息表 CusCompany
|
// 提取客户公司信息表 CusCompany
|
||||||
CusCompany companyInfo = new CusCompany();
|
CusCompany companyInfo = new CusCompany();
|
||||||
|
//绑定客户id
|
||||||
companyInfo.setCusId(customerId);
|
companyInfo.setCusId(customerId);
|
||||||
companyInfo.setCusFrom(customerInfo.getCusSource());
|
companyInfo.setCusFrom(customerInfo.getCusSource());
|
||||||
companyInfo.setCusLevel(customerInfo.getCusLevel());
|
companyInfo.setCusLevel(customerInfo.getCusLevel());
|
||||||
@ -132,8 +134,9 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
companyInfo.setCreateTime(new Date());
|
companyInfo.setCreateTime(new Date());
|
||||||
cusCompanyList.add(companyInfo);
|
cusCompanyList.add(companyInfo);
|
||||||
|
|
||||||
// 保存客户管理信息表 CusManager
|
// 提取客户管理信息表 CusManager
|
||||||
CusManager managementInfo = new CusManager();
|
CusManager managementInfo = new CusManager();
|
||||||
|
//绑定客户id
|
||||||
managementInfo.setCusId(customerId);
|
managementInfo.setCusId(customerId);
|
||||||
managementInfo.setUserName(customerInfo.getUserName());
|
managementInfo.setUserName(customerInfo.getUserName());
|
||||||
managementInfo.setFollowStep(customerInfo.getFollowStep());
|
managementInfo.setFollowStep(customerInfo.getFollowStep());
|
||||||
@ -144,9 +147,11 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
managementInfo.setCreateTime(new Date());
|
managementInfo.setCreateTime(new Date());
|
||||||
cusManagerList.add(managementInfo);
|
cusManagerList.add(managementInfo);
|
||||||
|
|
||||||
// 收集该客户的所有联系人信息 CusContacts
|
// 提取客户的所有联系人信息 CusContacts
|
||||||
for (CusImportDTO contact : customerContacts) {
|
for (CusImportDTO contact : customerContacts) {
|
||||||
CusContacts customerContact = new CusContacts();
|
CusContacts customerContact = new CusContacts();
|
||||||
|
customerContact.setId(snowflakeIdGenerator.generateId());
|
||||||
|
//绑定客户id
|
||||||
customerContact.setCusId(customerId);
|
customerContact.setCusId(customerId);
|
||||||
customerContact.setName(contact.getName());
|
customerContact.setName(contact.getName());
|
||||||
customerContact.setNickName(contact.getNickName());
|
customerContact.setNickName(contact.getNickName());
|
||||||
@ -159,26 +164,49 @@ public class CusImportServiceImpl implements ICusImportService {
|
|||||||
customerContact.setCreateTime(new Date());
|
customerContact.setCreateTime(new Date());
|
||||||
cusContactsList.add(customerContact);
|
cusContactsList.add(customerContact);
|
||||||
}
|
}
|
||||||
// 批量保存客户主表信息
|
|
||||||
if (!cusMainList.isEmpty()) {
|
//提取银行信息
|
||||||
cusMainService.saveBatch(cusMainList);
|
for (CusBankImportDTO bank : bankList) {
|
||||||
|
if (bank.getCusName().equals(customerInfo.getFullName())) {
|
||||||
|
CusBank bankInfo = new CusBank();
|
||||||
|
//绑定客户id
|
||||||
|
bankInfo.setCusId(customerId);
|
||||||
|
bankInfo.setBankAccount(bank.getBankAccount());
|
||||||
|
bankInfo.setBankName(bank.getBankName());
|
||||||
|
bankInfo.setCurrency(bank.getCurrency());
|
||||||
|
bankInfo.setBankCode(bank.getBankCode());
|
||||||
|
bankInfo.setSwiftCode(bank.getSwiftCode());
|
||||||
|
bankInfo.setBankAddress(bank.getBankAddress());
|
||||||
|
bankInfo.setBranchCode(bank.getBranchCode());
|
||||||
|
bankInfo.setTaxId(bank.getTaxId());
|
||||||
|
cusBankList.add(bankInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量保存客户公司信息表
|
|
||||||
if (!cusCompanyList.isEmpty()) {
|
|
||||||
cusCompanyService.saveBatch(cusCompanyList);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量保存客户管理信息表
|
|
||||||
if (!cusManagerList.isEmpty()) {
|
|
||||||
cusManagerService.saveBatch(cusManagerList);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量保存客户联系人信息
|
|
||||||
if (!cusContactsList.isEmpty()) {
|
|
||||||
cusContactsService.saveBatch(cusContactsList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 批量保存客户主表信息
|
||||||
|
if (!cusMainList.isEmpty()) {
|
||||||
|
cusMainService.saveBatch(cusMainList);
|
||||||
|
}
|
||||||
|
// 批量保存客户公司信息表
|
||||||
|
if (!cusCompanyList.isEmpty()) {
|
||||||
|
cusCompanyService.saveBatch(cusCompanyList);
|
||||||
|
}
|
||||||
|
// 批量保存客户管理信息表
|
||||||
|
if (!cusManagerList.isEmpty()) {
|
||||||
|
cusManagerService.saveBatch(cusManagerList);
|
||||||
|
}
|
||||||
|
// 批量保存客户联系人信息
|
||||||
|
if (!cusContactsList.isEmpty()) {
|
||||||
|
cusContactsService.saveBatch(cusContactsList);
|
||||||
|
}
|
||||||
|
//批量保存银行账户信息
|
||||||
|
if (!cusBankList.isEmpty()) {
|
||||||
|
cusBankService.saveBatch(cusBankList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.cus.service.impl;
|
package com.ruoyi.cus.service.impl;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
@ -266,4 +268,60 @@ public class CusMainServiceImpl extends ServiceImpl<CusMainMapper,CusMain> impl
|
|||||||
return cusViewVO;
|
return cusViewVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过名称保存客户主表信息
|
||||||
|
*
|
||||||
|
* @param cusMainList List<CusMain>
|
||||||
|
* @return void
|
||||||
|
* @author PQZ
|
||||||
|
* @date 14:44 2025/11/20
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void saveOrUpdateByCusName(List<CusMain> cusMainList) {
|
||||||
|
if (cusMainList == null || cusMainList.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 提取所有需要处理的 fullName
|
||||||
|
List<String> fullNames = cusMainList.stream()
|
||||||
|
.map(CusMain::getFullName)
|
||||||
|
.filter(StringUtils::isNotEmpty)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
// 一次性查询数据库中已存在的客户信息
|
||||||
|
Map<String, CusMain> existingCusMap = new HashMap<>();
|
||||||
|
if (!fullNames.isEmpty()) {
|
||||||
|
List<CusMain> existingCusList = this.list(
|
||||||
|
new LambdaQueryWrapper<CusMain>()
|
||||||
|
.in(CusMain::getFullName, fullNames)
|
||||||
|
);
|
||||||
|
existingCusMap = existingCusList.stream()
|
||||||
|
.collect(Collectors.toMap(CusMain::getFullName, Function.identity()));
|
||||||
|
}
|
||||||
|
// 分离需要新增和更新的客户
|
||||||
|
List<CusMain> toSaveList = new ArrayList<>();
|
||||||
|
List<CusMain> toUpdateList = new ArrayList<>();
|
||||||
|
for (CusMain cusMain : cusMainList) {
|
||||||
|
if (StringUtils.isEmpty(cusMain.getFullName())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
CusMain existingCus = existingCusMap.get(cusMain.getFullName());
|
||||||
|
if (existingCus != null) {
|
||||||
|
// 如果存在,设置ID并加入更新列表
|
||||||
|
cusMain.setId(existingCus.getId());
|
||||||
|
toUpdateList.add(cusMain);
|
||||||
|
} else {
|
||||||
|
// 如果不存在,则生成新的ID并加入保存列表
|
||||||
|
toSaveList.add(cusMain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 批量保存和更新
|
||||||
|
if (!toSaveList.isEmpty()) {
|
||||||
|
this.saveBatch(toSaveList);
|
||||||
|
}
|
||||||
|
if (!toUpdateList.isEmpty()) {
|
||||||
|
this.updateBatchById(toUpdateList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user