From dde162ffb34f2cc0ece4ca9cfcd09e2cb42ace6d Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 17 May 2024 18:13:11 +0800
Subject: [PATCH] 租户导入导出

---
 src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java |   45 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 7 deletions(-)

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..63dd68f 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
@@ -35,6 +35,7 @@
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.house.entity.HouseholdEntity;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
+import org.springblade.modules.house.excel.ExportHouseholdExcel;
 import org.springblade.modules.house.excel.ImportHouseholdExcel;
 import org.springblade.modules.house.mapper.HouseholdMapper;
 import org.springblade.modules.house.service.IHouseService;
@@ -300,9 +301,23 @@
 		return baseMapper.getHouseholdListById(household);
 	}
 
+	/**
+	 * 导出住户信息
+	 * @param household
+	 * @return
+	 */
 	@Override
-	public List<ImportHouseholdExcel> export(HouseholdVO household) {
-		List<ImportHouseholdExcel> userHouseHoldExcels = baseMapper.export(household);
+	public List<ExportHouseholdExcel> export(HouseholdVO household) {
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(HouseholdVO.class, household);
+		// 重点人员与关注人员
+		if (Objects.nonNull(household.getLabelType())) {
+			extracted(household);
+		}
+		List<ExportHouseholdExcel> userHouseHoldExcels = baseMapper.export(household,
+			commonParamSet.getIsAdministrator(),
+			commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getGridCodeList()
+		);
 		return userHouseHoldExcels;
 	}
 
@@ -313,14 +328,20 @@
 	 * @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));
 			// 判断姓名,手机号
-			if (Strings.isBlank(householdEntity.getName()) || Strings.isBlank(householdEntity.getPhoneNumber())){
+			if (Strings.isBlank(householdEntity.getName())
+				|| Strings.isBlank(householdEntity.getPhoneNumber())
+				|| Strings.isBlank(householdEntity.getHouseCode())
+			){
 				errorNum ++;
 				continue;
 			}
@@ -395,22 +416,32 @@
 			if (one==null){
 				// 新增
 				this.save(householdEntity);
+				importNum++;
 				// 处理标签
 				handleLabel(householdEntity,houseHoldExcel);
 			}else {
+				updateNum++;
 				if (isCovered){
 					// 覆盖更新
 					householdEntity.setId(one.getId());
 					// 更新
 					updateById(householdEntity);
+					importNum++;
 					// 处理标签
 					handleLabel(householdEntity,houseHoldExcel);
 				}
 			}
 		}
-		if (errorNum>0){
-			throw new ServiceException("导入完成,其中共有 " + errorNum + " 条数据由于无姓名或手机号信息未导入!");
+		StringBuilder builder = new StringBuilder("导入完成!");
+		builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,")
+			.append("成功导入 ").append(importNum).append(" 条数据。");
+		if (updateNum>0) {
+			builder.append("其中有 ").append(updateNum).append(" 条数据已存在。");
 		}
+		if (errorNum>0){
+			builder.append("共有 ").append(errorNum).append(" 条数据由于无姓名或手机号或门牌地址编码信息未导入!");
+		}
+		return builder.toString();
 	}
 
 	/**

--
Gitblit v1.9.3