From 20e40be95134183a71f0cab9959aa2c86e25ef50 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Thu, 13 Feb 2025 17:47:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=95=86=E5=9F=8E=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BasicdataTripartiteMallController.java | 30 +++++++ .../excel/BasicdataTripartiteMallExcel.java | 61 ++++--------- .../BasicdataTripartiteMallImporter.java | 20 +++++ .../IBasicdataTripartiteMallService.java | 12 +++ .../BasicdataTripartiteMallServiceImpl.java | 87 +++++++++++++++++++ 5 files changed, 164 insertions(+), 46 deletions(-) create mode 100644 blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallImporter.java diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTripartiteMallController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTripartiteMallController.java index d26bd7339..27edd19f2 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataTripartiteMallController.java +++ b/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.github.xiaoymin.knife4j.annotations.ApiOperationSupport; 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.BasicdataTripartiteMallImporter; import com.logpm.basicdata.service.IBasicdataTripartiteMallService; import com.logpm.basicdata.vo.BasicdataTripartiteMallVO; 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.utils.DateUtil; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; 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 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("操作成功"); + } + + + /** * 导出数据 */ diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallExcel.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallExcel.java index 8b0d25769..21c818282 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallExcel.java +++ b/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; + + /** - * 租户号 - */ - @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) - @ExcelProperty("客户ID") - private String client; - /** + @ExcelProperty("客户名称") + private String clientName; + /* * 三方商城 */ @ColumnWidth(20) @@ -101,4 +61,13 @@ public class BasicdataTripartiteMallExcel implements Serializable { @ExcelProperty("三方编码") private String tripartiteCoding; + /** + * 三方编码 + */ + @ColumnWidth(20) + @ExcelProperty("品牌") + private String brandName; + + + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallImporter.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataTripartiteMallImporter.java new file mode 100644 index 000000000..07f5f49c3 --- /dev/null +++ b/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 { + + private final IBasicdataTripartiteMallService service; + + + + @Override + public void save(List data) { + service.importTripartiteMall(data); + } +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java index 62c43e7f3..5e5826cb2 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteMallService.java @@ -86,4 +86,16 @@ public interface IBasicdataTripartiteMallService extends BaseService exportTripartiteMallTemplate(); + + /** + * 三方商城导入 + * @param data + */ + void importTripartiteMall(List data); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteMallServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteMallServiceImpl.java index 28b5c38c1..7e8b2bbee 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteMallServiceImpl.java +++ b/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.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.basicdata.entity.BasicdataBrandEntity; import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataClientLogEntity; import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity; import com.logpm.basicdata.excel.BasicdataTripartiteMallExcel; import com.logpm.basicdata.mapper.BasicdataTripartiteMallMapper; +import com.logpm.basicdata.service.IBasicdataBrandService; import com.logpm.basicdata.service.IBasicdataClientLogService; import com.logpm.basicdata.service.IBasicdataClientService; import com.logpm.basicdata.service.IBasicdataTripartiteMallService; @@ -31,14 +33,18 @@ import com.logpm.basicdata.vo.BasicdataTripartiteMallVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; 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.secure.utils.AuthUtil; 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.StringUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -59,6 +65,8 @@ public class BasicdataTripartiteMallServiceImpl extends BaseServiceImpl selectBasicdataTripartiteMallPage(IPage page, BasicdataTripartiteMallVO basicdataTripartiteMall) { @@ -236,6 +244,85 @@ public class BasicdataTripartiteMallServiceImpl extends BaseServiceImpl exportTripartiteMallTemplate() { + List 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 data) { + List 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 basicdataClientEntityList = basicdataClientService.list(Wrappers.query().lambda() + .in(BasicdataClientEntity::getClientName, clientNames) + ); + if (basicdataClientEntityList.isEmpty()) { + throw new ServiceException(clientNames+"查询客户信息错误"); + } + Map> listMap = basicdataClientEntityList.stream().collect(Collectors.groupingBy(BasicdataClientEntity::getClientName)); + List tripartiteMallEntityList = new ArrayList<>(); + for (BasicdataTripartiteMallExcel datum : data) { + List entities = this.list(Wrappers.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 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 list = basicdataBrandService.list(Wrappers.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 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) { StringBuilder builder = new StringBuilder(); String str1 = entity.getTripartiteCoding().isEmpty() ? "空" : entity.getTripartiteCoding();