From 5bdf555469ad4cae4059f23dbb1692b9b0336350 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 15 May 2024 10:47:45 +0800
Subject: [PATCH] 住户导入调整

---
 src/main/java/org/springblade/modules/house/controller/HouseholdController.java    |    5 ++---
 src/main/java/org/springblade/modules/house/service/IHouseholdService.java         |    2 +-
 src/main/resources/application-test.yml                                            |    2 +-
 src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java |   17 ++++++++++++++---
 4 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
index 599511a..9006d60 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
@@ -231,9 +231,8 @@
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入住户", notes = "传入excel")
 	public R importUser(MultipartFile file, Integer isCovered) {
-		HouseHoldImporter houseHoldImporter = new HouseHoldImporter(householdService, isCovered==1);
-		ExcelUtil.save(file, houseHoldImporter, ImportHouseholdExcel.class);
-		return R.success("操作成功");
+		String data = householdService.importUserHouseHold(ExcelUtil.read(file, ImportHouseholdExcel.class),isCovered==1);
+		return R.data(200,data,null);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
index fdd3b66..eaea7f4 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
@@ -73,7 +73,7 @@
 
     List<ImportHouseholdExcel> export(HouseholdVO household);
 
-	void importUserHouseHold(List<ImportHouseholdExcel> data, Boolean isCovered);
+	String importUserHouseHold(List<ImportHouseholdExcel> data, Boolean isCovered);
 
     Integer statistics(Long userId,String neiCode,Integer confirmFlag);
 
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
index 51e959c..905645a 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -313,9 +313,12 @@
 	 * @param isCovered
 	 */
 	@Override
-//	@Transactional(rollbackFor = Exception.class)
-	public void importUserHouseHold(List<ImportHouseholdExcel> data, Boolean isCovered) {
+	@Transactional(rollbackFor = Exception.class)
+	public String importUserHouseHold(List<ImportHouseholdExcel> data, Boolean isCovered) {
 		IHouseService houseService = SpringUtils.getBean(IHouseService.class);
+		int totalNum = data.size();
+		int importNum = 0;
+		int updateNum = 0;
 		int errorNum = 0;
 		for (ImportHouseholdExcel houseHoldExcel : data) {
 			HouseholdEntity householdEntity = Objects.requireNonNull(BeanUtil.copy(houseHoldExcel, HouseholdEntity.class));
@@ -395,22 +398,30 @@
 			if (one==null){
 				// 新增
 				this.save(householdEntity);
+				importNum++;
 				// 处理标签
 				handleLabel(householdEntity,houseHoldExcel);
 			}else {
+				updateNum++;
 				if (isCovered){
 					// 覆盖更新
 					householdEntity.setId(one.getId());
 					// 更新
 					updateById(householdEntity);
+					importNum++;
 					// 处理标签
 					handleLabel(householdEntity,houseHoldExcel);
 				}
 			}
 		}
+		StringBuilder builder = new StringBuilder("导入完成!");
+		builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,")
+			.append("成功导入 ").append(importNum).append(" 条数据,")
+			.append("其中有 ").append(updateNum).append(" 条数据已存在。");
 		if (errorNum>0){
-			throw new ServiceException("导入完成,其中共有 " + errorNum + " 条数据由于无姓名或手机号信息未导入!");
+			builder.append("共有 ").append(errorNum).append(" 条数据由于无姓名或手机号信息未导入!");
 		}
+		return builder.toString();
 	}
 
 	/**
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 35a7d54..9623573 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -7,7 +7,7 @@
     host: 127.0.0.1
     port: 6379
     password:
-    database: 0
+    database: 10
     ssl: false
     ##redis 集群环境配置
     #cluster:

--
Gitblit v1.9.3