Browse Source

三方商城导入

pre-production
汤建军 1 week ago
parent
commit
20e40be951
  1. 30
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTripartiteMallController.java
  2. 61
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallExcel.java
  3. 20
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallImporter.java
  4. 12
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java
  5. 87
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteMallServiceImpl.java

30
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTripartiteMallController.java

@ -21,7 +21,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity; import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity;
import com.logpm.basicdata.excel.BasicDataClienImporter;
import com.logpm.basicdata.excel.BasicdataClientExcel;
import com.logpm.basicdata.excel.BasicdataTripartiteMallExcel; import com.logpm.basicdata.excel.BasicdataTripartiteMallExcel;
import com.logpm.basicdata.excel.BasicdataTripartiteMallImporter;
import com.logpm.basicdata.service.IBasicdataTripartiteMallService; import com.logpm.basicdata.service.IBasicdataTripartiteMallService;
import com.logpm.basicdata.vo.BasicdataTripartiteMallVO; import com.logpm.basicdata.vo.BasicdataTripartiteMallVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -37,6 +40,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -152,6 +156,32 @@ public class BasicdataTripartiteMallController extends BladeController {
} }
/**
* 导出数据
*/
@PostMapping("/exportTripartiteMallTemplate")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "导出数据", notes = "传入basicdataTripartiteMall")
public void exportTripartiteMallTemplate(HttpServletResponse response) {
List<BasicdataTripartiteMallExcel> list = basicdataTripartiteMallService.exportTripartiteMallTemplate();
ExcelUtil.export(response, "客户三方商城导入模板" + DateUtil.time(), "客户三方商城数据表", list, BasicdataTripartiteMallExcel.class);
}
/**
* 导出数据
*/
@PostMapping("/importTripartiteMall")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "导出数据", notes = "传入basicdataTripartiteMall")
public R importTripartiteMall(MultipartFile file) {
BasicdataTripartiteMallImporter tripartiteMallImporter = new BasicdataTripartiteMallImporter(basicdataTripartiteMallService );
ExcelUtil.save(file, tripartiteMallImporter, BasicdataTripartiteMallExcel.class);
return R.success("操作成功");
}
/** /**
* 导出数据 * 导出数据
*/ */

61
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallExcel.java

@ -40,55 +40,15 @@ public class BasicdataTripartiteMallExcel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 租户号 * 三方编码
*/
@ColumnWidth(20)
@ExcelProperty("租户号")
private String tenantId;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Integer isDeleted;
/**
* 预留1
*/
@ColumnWidth(20)
@ExcelProperty("预留1")
private String reserve1;
/**
* 预留2
*/
@ColumnWidth(20)
@ExcelProperty("预留2")
private String reserve2;
/**
* 预留3
*/
@ColumnWidth(20)
@ExcelProperty("预留3")
private String reserve3;
/**
* 预留4
*/
@ColumnWidth(20)
@ExcelProperty("预留4")
private String reserve4;
/**
* 预留5
*/
@ColumnWidth(20)
@ExcelProperty("预留5")
private String reserve5;
/**
* 客户ID
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("客户ID") @ExcelProperty("客户名称")
private String client; private String clientName;
/** /*
* 三方商城 * 三方商城
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ -101,4 +61,13 @@ public class BasicdataTripartiteMallExcel implements Serializable {
@ExcelProperty("三方编码") @ExcelProperty("三方编码")
private String tripartiteCoding; private String tripartiteCoding;
/**
* 三方编码
*/
@ColumnWidth(20)
@ExcelProperty("品牌")
private String brandName;
} }

20
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallImporter.java

@ -0,0 +1,20 @@
package com.logpm.basicdata.excel;
import com.logpm.basicdata.service.IBasicdataTripartiteMallService;
import lombok.RequiredArgsConstructor;
import org.springblade.core.excel.support.ExcelImporter;
import java.util.List;
@RequiredArgsConstructor
public class BasicdataTripartiteMallImporter implements ExcelImporter<BasicdataTripartiteMallExcel> {
private final IBasicdataTripartiteMallService service;
@Override
public void save(List<BasicdataTripartiteMallExcel> data) {
service.importTripartiteMall(data);
}
}

12
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java

@ -86,4 +86,16 @@ public interface IBasicdataTripartiteMallService extends BaseService<BasicdataTr
* @return * @return
*/ */
R saveTripartiteMallEntity(BasicdataTripartiteMallEntity basicdataTripartiteMall); R saveTripartiteMallEntity(BasicdataTripartiteMallEntity basicdataTripartiteMall);
/**
* 三方商城导入模板
* @return
*/
List<BasicdataTripartiteMallExcel> exportTripartiteMallTemplate();
/**
* 三方商城导入
* @param data
*/
void importTripartiteMall(List<BasicdataTripartiteMallExcel> data);
} }

87
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteMallServiceImpl.java

@ -19,11 +19,13 @@ package com.logpm.basicdata.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basicdata.entity.BasicdataBrandEntity;
import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataClientEntity;
import com.logpm.basicdata.entity.BasicdataClientLogEntity; import com.logpm.basicdata.entity.BasicdataClientLogEntity;
import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity; import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity;
import com.logpm.basicdata.excel.BasicdataTripartiteMallExcel; import com.logpm.basicdata.excel.BasicdataTripartiteMallExcel;
import com.logpm.basicdata.mapper.BasicdataTripartiteMallMapper; import com.logpm.basicdata.mapper.BasicdataTripartiteMallMapper;
import com.logpm.basicdata.service.IBasicdataBrandService;
import com.logpm.basicdata.service.IBasicdataClientLogService; import com.logpm.basicdata.service.IBasicdataClientLogService;
import com.logpm.basicdata.service.IBasicdataClientService; import com.logpm.basicdata.service.IBasicdataClientService;
import com.logpm.basicdata.service.IBasicdataTripartiteMallService; import com.logpm.basicdata.service.IBasicdataTripartiteMallService;
@ -31,14 +33,18 @@ import com.logpm.basicdata.vo.BasicdataTripartiteMallVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@ -59,6 +65,8 @@ public class BasicdataTripartiteMallServiceImpl extends BaseServiceImpl<Basicdat
private IBasicdataClientLogService basicdataClientLogService; private IBasicdataClientLogService basicdataClientLogService;
private IBasicdataBrandService basicdataBrandService;
@Override @Override
public IPage<BasicdataTripartiteMallVO> selectBasicdataTripartiteMallPage(IPage<BasicdataTripartiteMallVO> page, BasicdataTripartiteMallVO basicdataTripartiteMall) { public IPage<BasicdataTripartiteMallVO> selectBasicdataTripartiteMallPage(IPage<BasicdataTripartiteMallVO> page, BasicdataTripartiteMallVO basicdataTripartiteMall) {
@ -236,6 +244,85 @@ public class BasicdataTripartiteMallServiceImpl extends BaseServiceImpl<Basicdat
return R.success("操作成功"); return R.success("操作成功");
} }
@Override
public List<BasicdataTripartiteMallExcel> exportTripartiteMallTemplate() {
List<BasicdataTripartiteMallExcel> list = new ArrayList<>();
BasicdataTripartiteMallExcel tripartiteMallExcel = new BasicdataTripartiteMallExcel();
tripartiteMallExcel.setTripartiteMall("示例:XXX商城");
tripartiteMallExcel.setTripartiteCoding("示例:ASDFG0000");
tripartiteMallExcel.setBrandName("示例:欧派");
list.add(tripartiteMallExcel);
return list;
}
@Override
@Transactional
public void importTripartiteMall(List<BasicdataTripartiteMallExcel> data) {
List<Long> clientIds = new ArrayList<>();
boolean b = data.stream().anyMatch(a -> Objects.isNull(a.getClientName()));
String string ="";
if (b) {
string = data.stream().filter(a -> Objects.isNull(a.getClientName())).map(BasicdataTripartiteMallExcel::getTripartiteMall).collect(Collectors.joining(","));
throw new ServiceException(string+"未填写客户信息");
}
boolean c = data.stream().anyMatch(a -> Objects.isNull(a.getBrandName()));
if (c) {
string = data.stream().filter(a -> Objects.isNull(a.getBrandName())).map(BasicdataTripartiteMallExcel::getTripartiteMall).collect(Collectors.joining(","));
throw new ServiceException(string+"未填写品牌信息");
}
String clientNames = data.stream().map(BasicdataTripartiteMallExcel::getClientName).collect(Collectors.joining(","));
//查询客户信息是否合法
List<BasicdataClientEntity> basicdataClientEntityList = basicdataClientService.list(Wrappers.<BasicdataClientEntity>query().lambda()
.in(BasicdataClientEntity::getClientName, clientNames)
);
if (basicdataClientEntityList.isEmpty()) {
throw new ServiceException(clientNames+"查询客户信息错误");
}
Map<String, List<BasicdataClientEntity>> listMap = basicdataClientEntityList.stream().collect(Collectors.groupingBy(BasicdataClientEntity::getClientName));
List<BasicdataTripartiteMallEntity> tripartiteMallEntityList = new ArrayList<>();
for (BasicdataTripartiteMallExcel datum : data) {
List<BasicdataTripartiteMallEntity> entities = this.list(Wrappers.<BasicdataTripartiteMallEntity>query().lambda()
.eq(BasicdataTripartiteMallEntity::getTripartiteMall, datum.getTripartiteMall())
.eq(BasicdataTripartiteMallEntity::getTripartiteCoding, datum.getTripartiteCoding())
.eq(BasicdataTripartiteMallEntity::getBrandName, datum.getBrandName())
);
if (!entities.isEmpty()) {
clientIds.addAll(entities.stream().map(BasicdataTripartiteMallEntity::getClientId).collect(Collectors.toList()));
}else {
List<BasicdataClientEntity> basicdataClientEntities = listMap.get(datum.getClientName());
if (basicdataClientEntities.size() > 1) {
throw new ServiceException(datum.getClientName()+"客户信息错误");
}
BasicdataClientEntity basicdataClientEntity = basicdataClientEntities.get(0);
BasicdataTripartiteMallEntity basicdataTripartiteMall = BeanUtil.copyProperties(datum, BasicdataTripartiteMallEntity.class);
basicdataTripartiteMall.setClientId(basicdataClientEntity.getId());
List<BasicdataBrandEntity> list = basicdataBrandService.list(Wrappers.<BasicdataBrandEntity>query().lambda()
.eq(BasicdataBrandEntity::getBrandName, datum.getBrandName())
);
if (!list.isEmpty()) {
basicdataTripartiteMall.setBrandId(list.get(0).getId());
}else {
throw new ServiceException(datum.getClientName()+"客户信息错误");
}
tripartiteMallEntityList.add(basicdataTripartiteMall);
}
}
if (!clientIds.isEmpty()) {
List<BasicdataClientEntity> basicdataClientEntityList1 = basicdataClientService.listByIds(clientIds);
if (!basicdataClientEntityList1.isEmpty()) {
String errorClient = basicdataClientEntityList1.stream().map(BasicdataClientEntity::getClientName).collect(Collectors.joining(","));
throw new ServiceException(errorClient+"已存在相关配置");
}
}
if (!tripartiteMallEntityList.isEmpty()) {
this.saveBatch(tripartiteMallEntityList);
}
}
private String comparisonBasicdataTripartiteMall(BasicdataTripartiteMallEntity entity, BasicdataTripartiteMallEntity basicdataTripartiteMall) { private String comparisonBasicdataTripartiteMall(BasicdataTripartiteMallEntity entity, BasicdataTripartiteMallEntity basicdataTripartiteMall) {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
String str1 = entity.getTripartiteCoding().isEmpty() ? "空" : entity.getTripartiteCoding(); String str1 = entity.getTripartiteCoding().isEmpty() ? "空" : entity.getTripartiteCoding();

Loading…
Cancel
Save