From be694832da8d78bcabea26756e1d0ca08c7827dc Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Mon, 28 Oct 2024 09:45:40 +0800
Subject: [PATCH] 新增excel配置及企业数据导入
---
src/main/java/org/springblade/modules/yw/service/impl/FirmInfoServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 87 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/yw/service/impl/FirmInfoServiceImpl.java b/src/main/java/org/springblade/modules/yw/service/impl/FirmInfoServiceImpl.java
index e0cefd6..5eb89f4 100644
--- a/src/main/java/org/springblade/modules/yw/service/impl/FirmInfoServiceImpl.java
+++ b/src/main/java/org/springblade/modules/yw/service/impl/FirmInfoServiceImpl.java
@@ -1,12 +1,20 @@
package org.springblade.modules.yw.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.utils.PositionUtil;
+import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.yw.entity.FirmInfo;
+import org.springblade.modules.yw.excel.FirmInfoExcel;
import org.springblade.modules.yw.mapper.FirmInfoMapper;
import org.springblade.modules.yw.service.IFirmInfoService;
import org.springblade.modules.yw.vo.FirmInfoVO;
import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
/**
* 企业信息-接口服务层
@@ -26,4 +34,83 @@
public IPage<FirmInfoVO> selectFirmInfoPage(IPage<FirmInfoVO> page, FirmInfoVO firmInfo) {
return page.setRecords(baseMapper.selectFirmInfoPage(page,firmInfo));
}
+
+ /**
+ * 企业信息导入
+ * @param data
+ * @param isCovered
+ */
+ @Override
+ public String importFirmInfo(List<FirmInfoExcel> data, Boolean isCovered) {
+ StringBuilder builder = new StringBuilder();
+ int total = data.size();
+ int successNum = 0;
+ int errorNum = 0;
+ // 遍历数据
+ for (FirmInfoExcel firmInfoExcel : data) {
+ // 数据转换
+ FirmInfo firmInfo = Objects.requireNonNull(BeanUtil.copy(firmInfoExcel, FirmInfo.class));
+ // 经纬度转换
+ System.out.println("firmInfo = " + firmInfo.getName());
+ positionConvert(firmInfo);
+ // 判断信息是否已录入
+ FirmInfo oldFirmInfo = isSave(firmInfo);
+ // 已存在并且不更新
+ if (null!=oldFirmInfo && !isCovered){
+ successNum++;
+ continue;
+ }
+ // 已存在,需要覆盖更新
+ if (null!=oldFirmInfo && isCovered){
+ firmInfo.setId(oldFirmInfo.getId());
+ // 更新
+ boolean update = updateById(firmInfo);
+ if (update){
+ successNum++;
+ }else {
+ errorNum++;
+ }
+ continue;
+ }
+ // 保存
+ boolean save = save(firmInfo);
+ if (save) {
+ successNum++;
+ } else {
+ errorNum++;
+ }
+ }
+ // 拼接消息
+ builder.append("本次导入数据:").append(total).append(" 条")
+ .append("其中导入成功:").append(successNum).append(" 条")
+ .append("导入失败:").append(errorNum).append(" 条");
+ // 返回
+ return builder.toString();
+ }
+
+ /**
+ * 经纬度转换
+ * @param firmInfo
+ */
+ private void positionConvert(FirmInfo firmInfo) {
+ if (!Strings.isBlank(firmInfo.getLng())){
+ firmInfo.setLng(PositionUtil.tranformPos(firmInfo.getLng()).toString());
+ }
+ if (!Strings.isBlank(firmInfo.getLat())){
+ firmInfo.setLat(PositionUtil.tranformPos(firmInfo.getLat()).toString());
+ }
+ }
+
+ /**
+ * 判断企业信息是否已录入
+ * @param firmInfo
+ * @return
+ */
+ public FirmInfo isSave(FirmInfo firmInfo){
+ // 查询是否已存在
+ QueryWrapper<FirmInfo> wrapper = new QueryWrapper<>();
+ wrapper.eq("name",firmInfo.getName()).eq("is_deleted",0);
+ // 返回
+ return getOne(wrapper);
+ }
}
--
Gitblit v1.9.3